/api/v1/regulatoryRegulatory Approvals Search
Paginated search and listing of harmonised regulatory approval RECORDS (FDA Orange Book, FDA Purple Book, EMA). Supports full-text search plus exact, partial-match and linked-id filters, all AND-combined. Returns transformed records with resolved sponsors (direct entities; full sponsors_chain), drugs with ChEMBL ids, indications, regulatory flags, patents and exclusivity entries. Each record's 'approval_id' - public SOURCE:number form, e.g. FDA_ORANGE:020610 / EMA:EU/1/20/1528 - is the identifier the Regulatory Approvals Record, Label and History tools expect; the internal _key is no longer returned, so never use it. Use for applicant / trade name / ingredient lookups and orphan or marketing-status filters; use regulatory.profile for a curated single-drug profile and regulatory.landscape for aggregated multi-drug views.
When to use it
- list approvals for an applicant, trade name or ingredient
- filter approvals by source (FDA/EMA), marketing status or orphan designation
- approvals linked to a sponsor, drug (ChEMBL) or disease (CURIE) id
- inspect patents and exclusivity entries behind an applicant's approvals
Getting started
Base URL
https://app.caelrith.com/api/v1/toolsAuthentication
Include your API key in the x-api-key header.
Parameters
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| search | string | No | Full-text search across trade name, applicant and ingredient (language-analyzed). Prefer the exact/partial filters below for precise matches. |
| source | string | No | Approval source registry to filter by. 'EMA' and 'EMA Union Register' are equivalent ('EMA' is normalized server-side). Allowed values: FDA_ORANGE, FDA_PURPLE, EMA, EMA Union Register |
| applicant | string | No | Case-insensitive partial match against the applicant company name. Does NOT expand to a corporate family - subsidiaries must be queried separately or via a resolved sponsor id. |
| trade_name | string | No | Case-insensitive partial match against the trade (brand) name. Get one via the Regulatory Approvals Record tool. |
| ingredient | string | No | Case-insensitive partial match against the active ingredient(s). |
| sponsor_id | string | No | Sponsor entity id; exact membership filter against the record's linked sponsor ids. |
| drug_id | string | No | ChEMBL-style drug id (e.g. CHEMBL1201599); exact membership filter against the record's linked drug ids. |
| disease_id | string | No | Disease ontology CURIE (e.g. MONDO:0004975); exact membership filter against the record's linked disease ids. Get CURIEs from the Disease Autocomplete tool. |
| status | string | No | Exact match against the record's marketing status (e.g. Rx, OTC, Disc). |
| is_orphan | boolean | No | Filter by orphan-drug designation. CAVEAT: the server coerces the query string to boolean, so 'false' is treated as true - this filter can only SELECT orphans, never exclude them (do not use it for 'non-orphan' searches). |
| page | number | No | Page number (default 1). Range: 1 to ∞ |
| limit | number | No | Results per page (1-100, default 20). Range: 1 to 100 |
| sort | string | No | Sort field: approval_date (default) or updated_at. Allowed values: approval_date, updated_at |
| order | string | No | Sort direction (default desc). Allowed values: asc, desc |
Example request
curl -H "x-api-key: YOUR_API_KEY" \ "https://app.caelrith.com/api/v1/regulatory"
Response envelope
This endpoint returns an implicit 2xx response - there is no success flag in the body.
{
"data": { /* payload */ },
"meta": { /* pagination, totals */ }
}
// No "success" flag on this endpoint - any 2xx JSON is a success.Response shape
Payload: data — Approvals
Exact total: meta.totalItems
Pagination: server-side via page and limit
Common row fields
| Field | Description |
|---|---|
| approval_id | Approval ID |
| trade_name | Trade Name |
| applicant_raw | Applicant |
| source | Source |
| approval_date | Approval Date |
| marketing_status | Status |
Empty results: No matching rows (HTTP 200)
Rows are product listings; approval_id is the PUBLIC identifier (FDA_ORANGE:020610 / FDA_PURPLE:BLA125514 / EMA:EU/1/20/1528) - feed it verbatim to the Regulatory Approvals Record, Label and History tools (the old internal _key is no longer returned). 'applicant_raw' is the raw applicant string; 'sponsors' rows are filtered to DIRECT entities (full hierarchy in 'sponsors_chain'), 'drugs' carry chembl_id values and 'indications' are resolved names. Linked-id filters match EXACTLY (sponsor_id = organizations/<key>, drug_id = ChEMBL id, disease_id = ontology CURIE e.g. EFO:0003767) - a wrong or differently formatted id returns an empty list, not an error. meta.totalItems is the exact total for the filters - quote it, never a page length.
Catalog version 0.0.0-generated · generated from the API source