{"schema_version":"1","protocol":"http-json","name":"RxAccess Registry API","description":"Read-only JSON API for the RxAccess patient assistance program (PAP) registry: manufacturer\/charity\/state medication assistance programs, the medications they cover, and a dated change log. Not a pharmacy, not medical advice, not a Model Context Protocol server \u2014 this describes a plain HTTP API for agent and tool-builder consumption.","website":"https:\/\/www.rxaccess.org\/","documentation_url":"https:\/\/www.rxaccess.org\/api","license":"CC BY 4.0","license_url":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/","attribution_required":"RxAccess - rxaccess.org","auth":{"type":"header_api_key","header":"X-Api-Key","required":true,"cost":"free by application for approved uses, including commercial and organizational uses","request_url":"https:\/\/www.rxaccess.org\/request-api-key"},"cors":"open (Access-Control-Allow-Origin: *)","rate_limits":"API reads are limited to 120 per minute per IP and 120 per minute per valid key. Exceeding a limit returns HTTP 429. Successful API read responses send Cache-Control: private, no-store. This public manifest is cached separately for up to 3600 seconds. Use \/api\/v1\/changes to check updates; source-check schedules vary.","coverage_stats":{"programs_total":224,"programs_verified":195,"programs_unverified":29,"manufacturers_total":340,"drugs_total":1484,"drugs_verified":1423,"drug_programs_total":1579,"matched_to_program_total":536,"universe_total":5801,"universe_verified":510,"universe_program_known":443,"universe_checked_not_listed":134,"universe_maker_no_list":125,"universe_maker_no_program":536,"universe_generic_no_pap":2444,"universe_not_yet_verified":1609},"endpoints":[{"id":"programs","method":"GET","path":"\/api\/v1\/programs","url":"https:\/\/www.rxaccess.org\/api\/v1\/programs","description":"Every patient assistance program tracked, with eligibility tracks and a publish_gate verification status per row."},{"id":"program","method":"GET","path":"\/api\/v1\/programs\/{slug}","url":"https:\/\/www.rxaccess.org\/api\/v1\/programs\/{slug}","description":"One program by slug."},{"id":"medications","method":"GET","path":"\/api\/v1\/medications","url":"https:\/\/www.rxaccess.org\/api\/v1\/medications","description":"Every medication in the canonical universe (rich + universe-only rows), each carrying a coverage_tier."},{"id":"medication","method":"GET","path":"\/api\/v1\/medications\/{slug}","url":"https:\/\/www.rxaccess.org\/api\/v1\/medications\/{slug}","description":"One medication by slug, with its matched programs."},{"id":"changes","method":"GET","path":"\/api\/v1\/changes","url":"https:\/\/www.rxaccess.org\/api\/v1\/changes","description":"The dated program-change log."},{"id":"meta","method":"GET","path":"\/api\/v1\/meta","url":"https:\/\/www.rxaccess.org\/api\/v1\/meta","description":"Coverage stats and the endpoint map, for a first-call integrator discovery request."}],"response_envelope":{"shape":"{\"data\": ..., \"meta\": {\"as_of\", \"license\", \"attribution_required\", \"docs\"}}","row_grading":"Each program\/medication row carries its own publish_gate object ({status, verified}) \u2014 an integrator can tell a verified row from an unverified one without scraping the site."},"honest_limitations":["This manifest describes the read-only HTTP API only; it is not an MCP server and speaks no MCP transport.","Every \/api\/v1\/* read route requires a free API key (X-Api-Key header) \u2014 there is no unauthenticated access.","Coverage counts above are live at request time and will differ from any cached copy of this file.","RxAccess publishes program rules, not medical advice; nothing in this API determines a patient's eligibility for any program."]}