Prerequisites
- A Pav API key in
PAV_API_KEY. See Quickstart. - Python 3.9+ and
pip install requests.
Approach
- Search by meaning.
qfinds programs whose text describes the mechanism, including ones with no structuredtarget. - Add exact target matches. The
targetfilter catches programs that state the target but word their description differently. - Merge by program
id, then filter. Relevance search returns weaker matches further down the list; keep only programs that name the target. - Rank by phase and read the linked trials.
Script
landscape.py
Example output (September 2026)
drug per company for
an asset-level view.
Extend it
- Nearest competitors of one asset.
GET /v1/programs/{id}/similar-programsreturns the programs most similar to a given program. Run it on the leading assets to catch programs your query terms missed. - Trial detail. Each program lists
clinical_trials[]withnct_id, phase, status and sponsor. FetchGET /v1/trials/{nct_id}for enrollment, dates and primary outcomes. - By indication. Replace the searches with
q="obesity"plusindication=Obesity, and group byindication_terms[].term_idto merge phrasings such as “Obesity” and “Metabolic (Obesity)”. - Deals and patents around the landscape. Pass each company’s
company_idto/v1/dealsand/v1/patents.