GET /v1/programs and GET /v1/programs/{program_id}.
All examples on this page use programs. The same rules apply to every dataset.
List records
Call the list endpoint with the filters you need.object[]
One page of matching records.
string | null
Pass this back as
cursor to get the next page. Null on the last page.integer
The number of records that match, across all pages.
Filter
Each query parameter narrows the list. When you pass several parameters, a record must match all of them. To match any of several values, separate them with commas:companytakes a ticker (PFE), a company slug or the company’s exact registered name. It includes the companies that company owns. A name that matches more than one company returns a400that lists the candidates.phaseandmodalitytake Pav’s normalized values, such asphase_3andadc. An unknown value returns a400that lists the allowed values.indicationandtargettake a name, a synonym or an ontology id.
company_id, drug_id and
program_id each take one id or a comma-separated list.
Programs and drugs count only active programs unless you pass
status. Add
status=discontinued to see discontinued programs.Filter by date
from and to limit a list to a date range. Both are inclusive and take
YYYY-MM-DD. The date they apply to depends on the dataset:
Sort
sort takes a field name. Add a leading - to sort in descending order.
Page through results
A list returns 50 records by default. Setlimit to get between 1 and 200.
When there are more records, the response includes next_cursor. Pass it
back as cursor, with the same filters, to get the next page. Keep going
until next_cursor is null.
limit=1 and read
total.
Fetch one record
Pass an id from a list response to the get endpoint. An unknown id returns a404.
A get response often carries more than a list row. A program, for example,
includes its linked trials and ontology terms.
Get lighter rows
Programs and patents takeview=slim, which returns smaller rows. A slim
program has a trial_count instead of its trials and ontology terms. A slim
patent family leaves out its member list.
Missing values
A field is null, or a list is empty, when the source does not disclose the value. A filter on such a field returns only the records where it is set. See Coverage and sources.Errors
Errors return a status code and a JSON body with acode, a message and a
request_id. See Rate limits and errors for every status and
when to retry.