Skip to main content
Every list endpoint takes an optional free-text q and a set of structured filters. How q behaves depends on the dataset.

Two kinds of q

Deal, patent and FDA search do not expand synonyms or aliases. Search each drug name, code name, target alias or spelling you care about, for example tirzepatide and LY3298176. Short queries carry less meaning. For relevance search, prefer a phrase such as KRAS G12C inhibitor over KRAS, or use the target=KRAS filter.

Filters combine with AND

  • Different filters combine with AND.
  • Repeating one filter matches any of its values: phase=Phase 2&phase=Phase 3.
  • q and filters combine with AND: filters narrow the ranked results.

Accepted filter values

List the modalities, and program counts for each phase and modality, with GET /v1/stats:
Example response (trimmed): GET /v1/stats
Filters on partially populated fields (target, modality) return only programs where the field is set. A program with no published target never matches target=KRAS, even if it is a KRAS program. When recall matters, run q as well and merge. See Coverage and sources.
Exact filters (indication=Obesity) match one spelling. Companies publish the same indication many ways: Obesity, Metabolic (Obesity), Obesity / Metabolic Disease. Use q to collect every phrasing, then filter the results in your code. Each program also carries indication_terms (MONDO) and target_terms (NCIT) where mapped; group by term_id to merge phrasings.

Typeahead

GET /v1/programs/autocomplete?q=tirzep returns up to 25 suggested programs (company, drug, indication) for a search box. It accepts the phase, modality, company, drug, indication and target filters.
Example response (trimmed)