API Documentation
← All tools
GET/api/v1/tools/regulatory/catalysts

Regulatory Catalysts

regulatory

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/tools

Authentication

Include your API key in the x-api-key header.

Required: provide at least one of: sponsor, indication, drugNames, lei, ticker

Parameters

Query parameters

ParameterTypeRequiredDescription
sponsorstringNoSponsor / 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).
indicationstringNoDisease / indication keyword (resolved to disease ids + direct subtypes). An unresolvable value yields an empty events list (HTTP 200).
drugNamesstringNoComma-separated drug names or ids (each resolved to drugs, max 100).
windowDaysintegerNoWindow in days (1-3650, default 365): looks FORWARD for patent/exclusivity expiries and BACK for recent approvals.
Range: 1 to 3650
limitintegerNoMaximum number of events returned after dedupe/sort (1-500, default 100).
Range: 1 to 500
leistringNo20-character LEI; expands the full corporate family (parent_of + resolved_to, up to 6 hops). Mutually exclusive with sponsor / ticker.
tickerstringNoSEC 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

List responseCATALYSTS

Payload: data.events — Catalyst Events

Counts: data.counts

Common row fields

FieldDescription
trade_nameTrade Name
typeType
event_dateDate
days_to_eventDays
drug_nameDrug
patent_noPatent
exclusivity_codeExclusivity
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