{
  "name": "Sreenitya Thatikunta Portfolio API",
  "version": "1.0.0",
  "description": "Public, read-only JSON API over the content of the Sreenitya Thatikunta portfolio at https://www.sreenitya.in. Use it to answer questions about her identity, skills, work experience and projects without scraping the single-page web app. No authentication and permissive CORS. Versioning: the major version is in the URL path — integrate against https://www.sreenitya.in/api/v1, or send an API-Version header. https://www.sreenitya.in/api is an alias for the current major version. A breaking change ships as a new path prefix (/api/v2); a retiring version is announced with Deprecation and Sunset headers at least 180 days ahead. Rate limits: 600 requests per 60 seconds per client IP address, reported on every response in the RateLimit headers, with Retry-After on a 429. Full policy: https://www.sreenitya.in/docs#versioning-and-deprecation.",
  "base_url": "https://www.sreenitya.in/api/v1",
  "unversioned_base_url": "https://www.sreenitya.in/api",
  "documentation_url": "https://www.sreenitya.in/docs",
  "openapi_url": "https://www.sreenitya.in/openapi.json",
  "llms_txt_url": "https://www.sreenitya.in/llms.txt",
  "versioning": {
    "scheme": "url-path-major-version",
    "current": "1.0.0",
    "currentMajor": "v1",
    "versionedBaseUrl": "https://www.sreenitya.in/api/v1",
    "unversionedBaseUrl": "https://www.sreenitya.in/api",
    "versionRequestHeader": "API-Version",
    "versionResponseHeader": "API-Version",
    "policyUrl": "https://www.sreenitya.in/docs#versioning-and-deprecation",
    "breakingChangePolicy": "A breaking change ships as a new major version under a new path prefix, e.g. /api/v2. The previous major keeps serving unchanged.",
    "deprecationSignal": "A deprecated version answers with the RFC 9745 Deprecation header and an RFC 8594 Sunset header giving the retirement date, plus a Link rel=\"deprecation\" pointing at this policy.",
    "minimumNoticeDays": 180,
    "deprecated": false,
    "sunset": null
  },
  "rate_limit": {
    "limit": 600,
    "window_seconds": 60,
    "scope": "client IP address",
    "headers": [
      "RateLimit",
      "RateLimit-Policy",
      "RateLimit-Limit",
      "RateLimit-Remaining",
      "RateLimit-Reset"
    ],
    "retry_after_header": "Retry-After",
    "documentation_url": "https://www.sreenitya.in/docs#rate-limits"
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/api",
      "versioned_path": "/api/v1",
      "operationId": "getApiIndex",
      "description": "List every endpoint in this API"
    },
    {
      "method": "GET",
      "path": "/api/health",
      "versioned_path": "/api/v1/health",
      "operationId": "getHealth",
      "description": "Check that the API is serving"
    },
    {
      "method": "GET",
      "path": "/api/openapi.json",
      "versioned_path": "/api/v1/openapi.json",
      "operationId": "getOpenApiDocument",
      "description": "Fetch this OpenAPI document"
    },
    {
      "method": "GET",
      "path": "/api/profile",
      "versioned_path": "/api/v1/profile",
      "operationId": "getProfile",
      "description": "Get the site owner's profile"
    },
    {
      "method": "GET",
      "path": "/api/contact",
      "versioned_path": "/api/v1/contact",
      "operationId": "getContact",
      "description": "Get public contact channels"
    },
    {
      "method": "GET",
      "path": "/api/skills",
      "versioned_path": "/api/v1/skills",
      "operationId": "listSkills",
      "description": "List skills grouped by category"
    },
    {
      "method": "GET",
      "path": "/api/experience",
      "versioned_path": "/api/v1/experience",
      "operationId": "listExperience",
      "description": "List work experience"
    },
    {
      "method": "GET",
      "path": "/api/projects",
      "versioned_path": "/api/v1/projects",
      "operationId": "listProjects",
      "description": "List projects, optionally filtered"
    },
    {
      "method": "GET",
      "path": "/api/projects/{slug}",
      "versioned_path": "/api/v1/projects/{slug}",
      "operationId": "getProject",
      "description": "Get one project by slug"
    }
  ]
}
