{
  "name": "Aletheca API",
  "version": "v1",
  "documentation": "https://aletheca.com/developers",
  "description": "Freedom of Information Act requests, their dispositions, and the documents they return. Reads are open and unauthenticated; originating requests needs a partner key.",
  "license": "https://creativecommons.org/publicdomain/zero/1.0/",
  "resources": [
    {
      "method": "GET",
      "path": "/api/v1/requests",
      "summary": "Every filed request, filtered.",
      "auth": "none",
      "params": [
        "agency",
        "disposition",
        "tag",
        "q",
        "sort",
        "limit",
        "cursor"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/requests/{id}",
      "summary": "One request with its cost, correspondence and documents.",
      "auth": "none",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/requests/{id}/events",
      "summary": "The full public ledger for one request.",
      "auth": "none",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/events",
      "summary": "The firehose — every public event, newest first.",
      "auth": "none",
      "params": [
        "since",
        "category",
        "type",
        "limit"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/documents",
      "summary": "Released documents with pages, exemptions and OCR state.",
      "auth": "none",
      "params": [
        "q",
        "exemption",
        "agency"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/agencies",
      "summary": "The register — 1,343 federal and state bodies with statute, deadline and intake routes.",
      "auth": "none",
      "params": [
        "jurisdiction",
        "state",
        "category",
        "parent",
        "q",
        "scorecards",
        "limit",
        "cursor"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/agencies/{slug}",
      "summary": "One body: register entry, components, and a scorecard where Aletheca has filed.",
      "auth": "none",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/laws",
      "summary": "All 57 public-records statutes with deadlines, appeal paths and fee-waiver standards.",
      "auth": "none",
      "params": [
        "jurisdiction",
        "q",
        "limit",
        "cursor"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/laws/{id}",
      "summary": "One statute in full, with the bodies that answer to it.",
      "auth": "none",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/coverage",
      "summary": "What Aletheca can file against, with the confidence of each layer.",
      "auth": "none",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/docket",
      "summary": "Open proposals with votes, funding and quorum.",
      "auth": "none",
      "params": [
        "status",
        "campaign",
        "sort"
      ]
    },
    {
      "method": "GET",
      "path": "/api/v1/dispositions",
      "summary": "The controlled vocabulary, with tones and clock semantics.",
      "auth": "none",
      "params": []
    },
    {
      "method": "POST",
      "path": "/api/v1/proposals",
      "summary": "Put a drafted request on the Docket, attributed to your site.",
      "auth": "key",
      "params": []
    },
    {
      "method": "POST",
      "path": "/api/v1/requests",
      "summary": "Commission a request immediately. Returns a payment intent unless prepaid.",
      "auth": "key",
      "params": []
    },
    {
      "method": "POST",
      "path": "/api/v1/checkouts",
      "summary": "A hosted checkout session for a commission or a contribution.",
      "auth": "key",
      "params": []
    },
    {
      "method": "POST",
      "path": "/api/v1/contributions",
      "summary": "Contribute to an existing proposal on behalf of your user.",
      "auth": "key+user",
      "params": []
    },
    {
      "method": "POST",
      "path": "/api/v1/campaigns",
      "summary": "Group requests into a campaign with a shared funding target.",
      "auth": "key",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/estimates",
      "summary": "Price a request before showing it to a user: channel, class, add-ons.",
      "auth": "key",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/partner",
      "summary": "Your integration: share rate, surfaces, originated requests.",
      "auth": "key",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/partner/ledger",
      "summary": "Accrued revenue share, per request, with payout state.",
      "auth": "key",
      "params": []
    },
    {
      "method": "GET",
      "path": "/api/v1/partner/webhooks",
      "summary": "Your webhook endpoints and their delivery health.",
      "auth": "key",
      "params": []
    },
    {
      "method": "POST",
      "path": "/api/v1/partner/webhooks",
      "summary": "Register an endpoint and the event types it wants.",
      "auth": "key",
      "params": []
    }
  ],
  "holdings": {
    "register_bodies": 1343,
    "statutes": 57,
    "counties_covered": 3168,
    "county_offices_reachable": 41184,
    "coverage_note": "https://aletheca.com/api/v1/coverage"
  },
  "webhook_events": [
    "proposal.created",
    "proposal.funded",
    "proposal.refused",
    "request.filed",
    "request.perfected",
    "request.disposition_changed",
    "request.overdue",
    "request.event",
    "document.published",
    "payout.accrued"
  ],
  "mcp": "https://aletheca.com/mcp",
  "embed": "https://aletheca.com/embed/v1.js"
}