Overview
The Dashboard API allows authenticated users to manage their portfolio data including profile information, repositories, education, and work experience.
All dashboard endpoints require authentication. Include your Clerk JWT token in the Authorization header.
Get User Data
Retrieve all data for the authenticated user.
Bearer token from Clerk authentication
Response
Status of the request: success or error
Human-readable message describing the result
User data object containing profile, repos, education, and experience Show User object properties
Unique user ID from Clerk
Unique username for portfolio URL
Short tagline or headline
JSON object containing social media links
ID of the currently active template
Array of repository objects
Array of education objects
Array of experience objects
Example Request
curl -X GET https://api.gitfolio.in/api/v1/dashboard \
-H "Authorization: Bearer your_clerk_token"
Example Response
{
"status" : "success" ,
"message" : "Data fetched successfully" ,
"data" : {
"id" : "user_123abc" ,
"username" : "johndoe" ,
"firstname" : "John" ,
"lastname" : "Doe" ,
"email" : "[email protected] " ,
"profileImg" : "https://example.com/avatar.jpg" ,
"bio" : "Full-stack developer passionate about open source" ,
"tagline" : "Building the future, one commit at a time" ,
"location" : "San Francisco, CA" ,
"skills" : [ "JavaScript" , "TypeScript" , "React" , "Node.js" ],
"accountType" : "PREMIUM" ,
"repos" : [],
"educations" : [],
"experiences" : []
}
}
Update User Profile
Update profile information for the authenticated user.
POST /api/v1/dashboard/user/update
Request Body
Unique username for portfolio URL
Short tagline or headline
JSON object with social media links (e.g., Twitter, LinkedIn)
Example Request
curl -X POST https://api.gitfolio.in/api/v1/dashboard/user/update \
-H "Authorization: Bearer your_clerk_token" \
-H "Content-Type: application/json" \
-d '{
"bio": "Full-stack developer and open source enthusiast",
"tagline": "Building great products",
"location": "San Francisco, CA",
"skills": ["JavaScript", "React", "Node.js"]
}'
Example Response
{
"status" : "success" ,
"message" : "Data updated successfully"
}
Repository Management
Create or Update Repository
Add a new repository or update an existing one.
POST /api/v1/dashboard/user/repo/update
Request Body
Repository ID (optional - if provided, updates existing repo)
JSON object with language percentages
URL to repository thumbnail image
Whether the repo is pinned (default: false)
Whether to include in portfolio (default: true)
Example Request
curl -X POST https://api.gitfolio.in/api/v1/dashboard/user/repo/update \
-H "Authorization: Bearer your_clerk_token" \
-H "Content-Type: application/json" \
-d '{
"name": "awesome-project",
"description": "An awesome open source project",
"topics": ["javascript", "react", "nodejs"],
"languages": {"JavaScript": 75, "CSS": 20, "HTML": 5},
"stars": 150,
"forks": 25,
"repoLink": "https://github.com/johndoe/awesome-project",
"liveLink": "https://awesome-project.com",
"isPinned": true
}'
Delete Repository
Remove a repository from the portfolio.
DELETE /api/v1/dashboard/user/repo/delete/:repoId
Path Parameters
The UUID of the repository to delete
Example Request
curl -X DELETE https://api.gitfolio.in/api/v1/dashboard/user/repo/delete/abc-123-def \
-H "Authorization: Bearer your_clerk_token"
Education Management
Create or Update Education
Add or update an education entry.
POST /api/v1/dashboard/user/education/update
Request Body
Education ID (optional - if provided, updates existing entry)
Degree or certification title
School or institution name
Additional details about the education
Start date (e.g., “2018-09” or “September 2018”)
End date (optional for ongoing education)
Example Request
curl -X POST https://api.gitfolio.in/api/v1/dashboard/user/education/update \
-H "Authorization: Bearer your_clerk_token" \
-H "Content-Type: application/json" \
-d '{
"title": "Bachelor of Science in Computer Science",
"institution": "Stanford University",
"description": "Focus on software engineering and AI",
"start_date": "2018-09",
"end_date": "2022-06"
}'
Delete Education
Remove an education entry.
DELETE /api/v1/dashboard/user/education/delete/:educationId
Path Parameters
The UUID of the education entry to delete
Experience Management
Create or Update Experience
Add or update a work experience entry.
POST /api/v1/dashboard/user/experience/update
Request Body
Experience ID (optional - if provided, updates existing entry)
Job description and responsibilities
Start date (e.g., “2020-01” or “January 2020”)
End date (optional for current position)
Example Request
curl -X POST https://api.gitfolio.in/api/v1/dashboard/user/experience/update \
-H "Authorization: Bearer your_clerk_token" \
-H "Content-Type: application/json" \
-d '{
"company": "Tech Corp",
"role": "Senior Software Engineer",
"description": "Led development of microservices architecture",
"start_date": "2020-01",
"end_date": "2023-06"
}'
Delete Experience
Remove a work experience entry.
DELETE /api/v1/dashboard/user/experience/delete/:experienceId
Path Parameters
The UUID of the experience entry to delete
Get User Payments
Retrieve payment history for the authenticated user.
GET /api/v1/dashboard/user/payments
Response
Array of payment objects Show Payment object properties
Currency code (INR or USD)
Payment status: PENDING, SUCCESS, or FAILED
ISO 8601 timestamp of payment creation
Example Response
{
"status" : "success" ,
"message" : "Payments fetched successfully" ,
"data" : [
{
"id" : "pay_123" ,
"amount" : 499 ,
"currency" : "INR" ,
"status" : "SUCCESS" ,
"orderId" : "order_abc123" ,
"paymentId" : "pay_xyz789" ,
"templateId" : "template_456" ,
"createdAt" : "2024-01-15T10:30:00Z"
}
]
}
Error Responses
400 Bad Request
{
"status" : "error" ,
"message" : "userId is required"
}
401 Unauthorized
{
"message" : "Missing or invalid token"
}
404 Not Found
{
"status" : "error" ,
"message" : "Data not found"
}
500 Internal Server Error
{
"status" : "error" ,
"message" : "Something went wrong"
}