Skip to main content

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.
GET /api/v1/dashboard

Headers

Authorization
string
required
Bearer token from Clerk authentication

Response

status
string
Status of the request: success or error
message
string
Human-readable message describing the result
data
object
User data object containing profile, repos, education, and experience

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

username
string
Unique username for portfolio URL
firstname
string
User’s first name
lastname
string
User’s last name
bio
string
User biography
tagline
string
Short tagline or headline
location
string
User’s location
website
string
Personal website URL
GitHub profile URL
skills
string[]
Array of skill names
socialAccounts
object
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

id
string
Repository ID (optional - if provided, updates existing repo)
name
string
required
Repository name
description
string
Repository description
topics
string[]
Array of topic tags
languages
object
JSON object with language percentages
stars
number
Number of stars
forks
number
Number of forks
URL to the repository
URL to live deployment
thumbnail
string
URL to repository thumbnail image
isPinned
boolean
Whether the repo is pinned (default: false)
isIncluded
boolean
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

repoId
string
required
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

id
string
Education ID (optional - if provided, updates existing entry)
title
string
required
Degree or certification title
institution
string
required
School or institution name
description
string
Additional details about the education
URL to institution logo
start_date
string
required
Start date (e.g., “2018-09” or “September 2018”)
end_date
string
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

educationId
string
required
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

id
string
Experience ID (optional - if provided, updates existing entry)
company
string
required
Company name
role
string
required
Job title or role
description
string
Job description and responsibilities
logo
string
URL to company logo
start_date
string
required
Start date (e.g., “2020-01” or “January 2020”)
end_date
string
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

experienceId
string
required
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

status
string
success or error
message
string
Human-readable message
data
array
Array of payment objects

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"
}

Build docs developers (and LLMs) love