/api/v1/tools/regulatory/catalystsRegulatory Catalysts
Dated regulatory catalyst timeline for a sponsor, indication or drug list: FUTURE patent expirations and exclusivity expirations (with human-readable exclusivity code descriptions) plus RECENT approvals, each event carrying days_to_event (negative = past), direct sponsor objects, the full direct->ultimate sponsors_chain with canonical LEI/ROR ids, and the entity's next_patent_expiry / next_exclusivity_expiry. Window: windowDays looks FORWARD for expiries (today..today+windowDays) and BACK for approvals (today-windowDays..today). Provide AT MOST ONE of sponsor / lei / ticker (combinations are rejected with HTTP 500; lei and ticker expand the full corporate family via parent_of + resolved_to, up to 6 hops), and at least one filter of sponsor / indication / drugNames / lei / ticker is required (HTTP 400 otherwise). An unresolvable sponsor/indication/drug value is NOT an error: the call returns HTTP 200 with an empty events list - verify the exact name. Events are deduplicated by drug+type+date, sorted ascending by event_date and capped at limit (default 100); data.counts splits the RETURNED events by type. Each event's approval_id is an INTERNAL graph key (regulatory_approval/<key>) - it is NOT the public approval_id and must not be fed to the regulatory-approvals tools.
When to use it
- upcoming patent / exclusivity expirations for a sponsor
- catalyst timeline (recent approvals + expiries) for an indication
- dated events for a list of drugs
Getting started
Base URL
https://app.caelrith.com/api/v1/toolsAuthentication
Include your API key in the x-api-key header.
Required: provide at least one of: sponsor, indication, drugNames, lei, ticker
Parameters
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| sponsor | string | No | Sponsor / organization name (resolved in the graph). Provide AT MOST ONE of sponsor / lei / ticker - combinations are rejected with HTTP 500. An unresolvable name yields an empty events list (HTTP 200). |
| indication | string | No | Disease / indication keyword (resolved to disease ids + direct subtypes). An unresolvable value yields an empty events list (HTTP 200). |
| drugNames | string | No | Comma-separated drug names or ids (each resolved to drugs, max 100). |
| windowDays | integer | No | Window in days (1-3650, default 365): looks FORWARD for patent/exclusivity expiries and BACK for recent approvals. Range: 1 to 3650 |
| limit | integer | No | Maximum number of events returned after dedupe/sort (1-500, default 100). Range: 1 to 500 |
| lei | string | No | 20-character LEI; expands the full corporate family (parent_of + resolved_to, up to 6 hops). Mutually exclusive with sponsor / ticker. |
| ticker | string | No | SEC ticker symbol; maps to the SEC entity then expands the corporate family like lei. Mutually exclusive with sponsor / lei. |
Example request
curl -H "x-api-key: YOUR_API_KEY" \ "https://app.caelrith.com/api/v1/tools/regulatory/catalysts?sponsor=your_sponsor"
Response envelope
Successful responses wrap the payload in a success flag.
{
"success": true,
"data": { /* payload */ },
"meta": { /* pagination, totals */ }
}Response shape
Payload: data.events — Catalyst Events
Counts: data.counts
Common row fields
| Field | Description |
|---|---|
| trade_name | Trade Name |
| type | Type |
| event_date | Date |
| days_to_event | Days |
| drug_name | Drug |
| patent_no | Patent |
| exclusivity_code | Exclusivity |
| exclusivity_description | — |
Empty results: No matching rows (HTTP 200) (also the response when a sponsor / indication / drugNames value cannot be resolved to any graph entity - HTTP 200 with an empty events list, never an error)
Dated catalyst events within +/- windowDays of today: FUTURE patent and exclusivity expiries plus RECENT approvals (approvals look back windowDays; expiries look forward). events are deduplicated by drug+type+date, sorted ascending by event_date and capped at limit (default 100) - the EXACT TOTAL line is the returned (capped) event count, never a graph total. data.counts splits the RETURNED events by type. Each event carries direct sponsor objects plus the direct->ultimate sponsors_chain with canonical LEI/ROR ids. An event's approval_id is an INTERNAL graph key (regulatory_approval/<key>) - it is NOT the public approval_id and must not be fed to the regulatory-approvals tools. Providing more than one of sponsor / lei / ticker is rejected server-side; an unresolvable filter value returns an empty events list (HTTP 200) - verify the exact name and check the echoed filters.
Catalog version 0.0.0-generated · generated from the API source