FDA PDUFA dates a company put in an SEC filing — accuracy-tested, and served to your agent per call over x402.
A PDUFA date is the day the FDA is scheduled to decide on a drug — a binary, market-moving event. Biotech Catalyst Sentinel watches both US 8-K filings and foreign-issuer 6-K filings the moment they're published, uses an LLM to extract the decision date, and keeps only dates whose exact wording is quoted verbatim from the filing. The result is a clean, machine-readable feed of upcoming catalysts and their change history — two paid endpoints, plus a free, independently auditable accuracy track record.
And what it doesn't cover. A PDUFA date is public only because a company chose to announce it — the FDA doesn't publish goal dates in advance. Reading SEC filings means we see the issuers who disclose, which skews to small- and mid-caps where one decision is material, and misses large-cap sponsors who never file an 8-K about a single drug. Our measured coverage is published, unflattered, right next to the accuracy numbers on the track record page — we'd rather you read it there than discover it later.
Every record links to the exact SEC filing it came from. No press-release telephone game, no aggregated guesses.
Tracks both US 8-K filers and foreign issuers that disclose PDUFA dates via 6-K — two filing types, one feed, straight from EDGAR.
Most trackers only note approvals. We capture FDA Complete Response Letters — rejections, the outcome a short position lives or dies on — from the company's own filing and the FDA's records, and put them on the public scorecard next to the approvals.
openFDA's main drug dataset omits many CBER-regulated biologics (gene and cell therapies, blood factors). We recover approvals from the FDA Purple Book — which narrows, but does not close, the gap on the newest, highest-stakes modalities.
A date is published only if its source quote appears word-for-word in the filing text. Anything uncertain is held back and never shipped — it waits in a review queue instead of reaching the feed.
Each catalyst is one entity with an event timeline. When the FDA pushes a date back or a decision lands, the record updates and keeps the change on file — so your agent acts on the current date, not a superseded one.
JSON only, no account, no signup, no subscription. Discoverable and payable autonomously via the x402 standard.
Being right is the entire product. One wrong date on a binary event and an agent operator silently churns forever — so accuracy is measured, published, and free to check before you ever pay.
A 2023–2025 historical backtest plus every live decision since, including captured rejections — self-updating as new decisions resolve. Currently matched FDA decisions.
Two paid routes. The scoreboard, one company's coverage, the service description, and the attestation checks are free. Base URL https://api.biotechcatalystsentinel.com
# Without payment you get the x402 challenge: curl https://api.biotechcatalystsentinel.com/v1/catalysts/upcoming # → HTTP 402 Payment Required (accepts: Base or Solana USDC, $0.02) # Response after payment. The row is the free fictional sample # (GET /v1/catalysts/upcoming/sample) — not a live date: { "data": [{ "drug_name": "SAMPLIMAB", "company": "Sample Therapeutics, Inc.", "ticker": "XSMPL", "indication": "sample indication (moderate-to-severe examplitis)", "pdufa_date": "2026-11-15", "stage": "set", "confidence": "high", "source_url": "https://www.sec.gov/Archives/edgar/..." }], "meta": { "total": 1 } }
# One fictional event from GET /v1/events/sample. A decision may carry new_date: { "data": [{ "event_type": "decision_outcome", "drug_name": "SAMPLIMAB", "ticker": "XSMPL", "new_date": "2026-06-12", "outcome": "crl", "source_url": "https://www.sec.gov/Archives/edgar/..." }], "meta": { "total": 1 } }
Agents can auto-discover pricing and schema at /.well-known/x402.
Built on x402, the open HTTP micropayment standard. Any x402-aware client handles the 402 → pay → retry handshake for you — your agent just makes a GET and gets data back.
# Python — an x402 client signs & settles automatically from x402 import x402ClientSync from x402.http.clients.requests import x402_requests # ...register your Base or Solana signer, then: resp = session.get("https://api.biotechcatalystsentinel.com/v1/catalysts/upcoming") print(resp.json()["data"]) # settled in USDC; ~$0.02
Payer pays only the stablecoin — gas is handled by the facilitator. Works with any x402 client (Python, JS x402-fetch, etc.).