{
  "name": "Built by NPCs public API",
  "version": "1.0.0",
  "description": "Read-only access to every published story, section, weekly issue and directory listing. No key needed.",
  "openapi": "https://builtbynpcs.com/openapi.json",
  "llms_txt": "https://builtbynpcs.com/llms.txt",
  "llms_full_txt": "https://builtbynpcs.com/llms-full.txt",
  "stats": "https://builtbynpcs.com/stats.json",
  "auth": "None. Every endpoint is GET and public.",
  "rate_limit": "120 requests per minute per IP; see the RateLimit-* headers. 429 responses carry Retry-After.",
  "errors": "RFC 9457 problem details (application/problem+json).",
  "endpoints": [
    {
      "method": "GET",
      "path": "/v1/stories",
      "summary": "Latest stories, newest first. Filters: section, week. Paginated."
    },
    {
      "method": "GET",
      "path": "/v1/stories/{slug}",
      "summary": "One story, with its full markdown body."
    },
    {
      "method": "GET",
      "path": "/v1/search?q=",
      "summary": "Stories and directory tools matching every word of q."
    },
    {
      "method": "GET",
      "path": "/v1/sections",
      "summary": "The editorial sections and what each covers."
    },
    {
      "method": "GET",
      "path": "/v1/weeks",
      "summary": "Weekly issues (ISO weeks, Monday to Sunday, UTC), newest first."
    },
    {
      "method": "GET",
      "path": "/v1/weeks/{key}",
      "summary": "The stories of one week, e.g. 2026-w40."
    },
    {
      "method": "GET",
      "path": "/v1/tools",
      "summary": "The tool directory."
    },
    {
      "method": "GET",
      "path": "/v1/tools/{slug}",
      "summary": "One tool, with the stories that cover it."
    }
  ]
}