API Reference

Complete API documentation for Portfolio OS

API Reference

Complete API documentation for Portfolio OS including REST endpoints, GraphQL APIs, and third-party integrations.

API Overview

Portfolio OS provides multiple API layers:

Base URLs

EnvironmentSite APIDashboard APIDocs API
Developmenthttp://localhost:3000/apihttp://localhost:3001/apihttp://localhost:3002/api
Productionhttps://yourdomain.com/apihttps://dashboard.yourdomain.com/apihttps://docs.yourdomain.com/api

Common Patterns

Error Handling

All APIs follow consistent error format:

{
  "error": "Error message",
  "code": "ERROR_CODE",
  "details": {
    "field": "Additional context"
  },
  "statusCode": 400
}

Response Format

Standard success response:

{
  "data": { /* Response data */ },
  "meta": {
    "timestamp": "2025-10-08T12:00:00Z",
    "requestId": "req_123"
  }
}

Authentication

API requests use standard authentication:

// Client-side
const response = await fetch('/api/endpoint', {
  headers: {
    'Authorization': 'Bearer <token>',
    'Content-Type': 'application/json'
  }
})

// Server-side
import { auth } from '@/lib/auth'

export async function GET(request: Request) {
  const session = await auth(request)
  if (!session) {
    return new Response('Unauthorized', { status: 401 })
  }
  // Handle request
}

Rate Limiting

APIs implement rate limiting to prevent abuse:

EndpointRate LimitWindow
/api/contact5 requests1 hour
/api/posts100 requests15 minutes
/api/media/*50 requests15 minutes

Versioning

APIs use URL-based versioning:

/api/v1/posts      # Version 1
/api/v2/posts      # Version 2 (when available)

Current version: v1 (default, no version prefix needed)

Next Steps

Explore specific API documentation: