Skip to main content

Introduction

The GitFolio API is a REST API that allows you to programmatically manage developer portfolios, including profile data, repositories, education, experience, and premium templates.

Base URL

All API requests should be made to:
https://api.gitfolio.in/api/v1
For local development:
http://localhost:3000/api/v1

API Versioning

The current API version is v1. The version is included in the URL path for all endpoints.

Request Format

All requests should:
  • Use HTTPS in production
  • Include Content-Type: application/json header for POST requests
  • Include Authorization: Bearer <token> header for authenticated endpoints

Response Format

All API responses follow a consistent format:
{
  "status": "success" | "error",
  "message": "Description of the result",
  "data": {} // Optional, included when returning data
}

Success Response

{
  "status": "success",
  "message": "Data fetched successfully",
  "data": {
    // Response data
  }
}

Error Response

{
  "status": "error",
  "message": "Error description"
}

HTTP Status Codes

The API uses standard HTTP status codes:
CodeDescription
200Success
201Created
400Bad Request - Invalid parameters
401Unauthorized - Missing or invalid authentication
403Forbidden - Valid auth but insufficient permissions
404Not Found - Resource doesn’t exist
500Internal Server Error

Rate Limiting

Currently, the GitFolio API does not enforce rate limits. However, we recommend:
  • Maximum 100 requests per minute per user
  • Implement exponential backoff for failed requests
  • Cache responses when appropriate
Rate limiting may be implemented in future versions.

CORS Policy

The API supports CORS for the following origins:
  • https://gitfolio.in
  • https://www.gitfolio.in
  • https://*.gitfolio.in (all subdomains)
  • http://localhost:3000 (development)
  • http://localhost:4000 (development)
Allowed methods: GET, POST, PUT, DELETE, OPTIONS

Authentication

Most endpoints require authentication using Clerk. See the Authentication page for details.

Public Endpoints

The following endpoints are publicly accessible without authentication:
  • GET /api/v1/renderer/:username - Get public portfolio data
  • GET /api/v1/renderer/image/:username - Get portfolio image data
  • GET /api/health - Health check

Pagination

Currently, the API does not implement pagination. All results are returned in a single response.

Next Steps

Authentication

Learn how to authenticate API requests

Dashboard API

Manage user profiles and portfolio data

Onboarding

Import GitHub data for new users

Payments

Handle premium template purchases

Build docs developers (and LLMs) love