curl --request GET \
--url https://api.pav.bio/v1/programs/{program_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/programs/{program_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pav.bio/v1/programs/{program_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pav.bio/v1/programs/{program_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pav.bio/v1/programs/{program_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pav.bio/v1/programs/{program_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/programs/{program_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 18342,
"company_id": 412,
"short_name": "pfizer",
"company": "Pfizer",
"drug": "Danuglipron",
"status": "active",
"indication": "Type 2 Diabetes",
"phase": "Phase 2",
"phase_norm": "Phase 2",
"modality": "Small molecule",
"modality_norm": "small_molecule",
"target": "GLP-1R",
"mechanism_of_action": "GLP-1 receptor agonist",
"territory": "United States",
"description": "Oral GLP-1 receptor agonist for type 2 diabetes and obesity.",
"notes": "Phase 2b dose-finding study ongoing.",
"partners": [
"<unknown>"
],
"clinical_trials": [
{
"nct_id": "NCT04368728",
"nct_url": "https://clinicaltrials.gov/study/NCT04368728",
"nct_phase": "Phase 3",
"nct_sponsor": "Pfizer",
"nct_conditions": "COVID-19|SARS-CoV-2 Infection",
"nct_status": "Completed"
}
],
"indication_terms": [
{
"ontology": "MONDO",
"term_id": "MONDO:0005148",
"term_label": "type 2 diabetes mellitus",
"source_text": "Type 2 Diabetes"
}
],
"target_terms": [
{
"ontology": "NCIT",
"term_id": "NCIT:C1110",
"term_label": "Ganglioside GD2",
"source_text": "GD2"
}
],
"source_url": "https://www.pfizer.com/science/drug-product-pipeline",
"source_checked_at": "2026-06-19T04:12:00Z"
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}Get a program by id
Fetch a single pipeline program by its durable Pav id, including linked clinical trials, ontology terms, and source provenance. Returns 404 not_found if the id is unknown.
curl --request GET \
--url https://api.pav.bio/v1/programs/{program_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/programs/{program_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pav.bio/v1/programs/{program_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pav.bio/v1/programs/{program_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pav.bio/v1/programs/{program_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pav.bio/v1/programs/{program_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/programs/{program_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 18342,
"company_id": 412,
"short_name": "pfizer",
"company": "Pfizer",
"drug": "Danuglipron",
"status": "active",
"indication": "Type 2 Diabetes",
"phase": "Phase 2",
"phase_norm": "Phase 2",
"modality": "Small molecule",
"modality_norm": "small_molecule",
"target": "GLP-1R",
"mechanism_of_action": "GLP-1 receptor agonist",
"territory": "United States",
"description": "Oral GLP-1 receptor agonist for type 2 diabetes and obesity.",
"notes": "Phase 2b dose-finding study ongoing.",
"partners": [
"<unknown>"
],
"clinical_trials": [
{
"nct_id": "NCT04368728",
"nct_url": "https://clinicaltrials.gov/study/NCT04368728",
"nct_phase": "Phase 3",
"nct_sponsor": "Pfizer",
"nct_conditions": "COVID-19|SARS-CoV-2 Infection",
"nct_status": "Completed"
}
],
"indication_terms": [
{
"ontology": "MONDO",
"term_id": "MONDO:0005148",
"term_label": "type 2 diabetes mellitus",
"source_text": "Type 2 Diabetes"
}
],
"target_terms": [
{
"ontology": "NCIT",
"term_id": "NCIT:C1110",
"term_label": "Ganglioside GD2",
"source_text": "GD2"
}
],
"source_url": "https://www.pfizer.com/science/drug-product-pipeline",
"source_checked_at": "2026-06-19T04:12:00Z"
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}{
"error": {
"code": "not_found",
"message": "program 999999 not found",
"request_id": "3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d"
}
}Authorizations
Use a personal or organization Pav API key from Pav developer settings. Send it as Authorization: Bearer <api_key>.
Path Parameters
Durable Pav program id.
18342
Response
Successful Response
Durable Pav program identifier. Stable over time and kept when a program is discontinued, so a stored id keeps working.
18342
Pav company identifier that owns this program.
412
Company slug, a stable readable identifier.
"pfizer"
Display name of the company that owns this program.
"Pfizer"
Drug or asset name for the program.
"Danuglipron"
Lifecycle state of the program: active while the company still publishes it, or discontinued once it drops off the pipeline. List and search endpoints return only active programs; a single-program lookup by id still returns a discontinued one.
"active"
Indication the program targets, as published by the company.
"Type 2 Diabetes"
Development phase as published by the company (raw label).
"Phase 2"
Phase normalized to Pav's phase vocabulary (e.g. Phase 2).
"Phase 2"
Drug modality as published by the company (raw label).
"Small molecule"
Modality normalized to Pav's modality vocabulary. Null when the modality is not known.
"small_molecule"
Molecular target of the asset. Coverage is partial — many programs have no published target and this field is null for them.
"GLP-1R"
Mechanism of action for the asset.
"GLP-1 receptor agonist"
Territory/region the program applies to, when disclosed.
"United States"
Free-text program description, when published.
"Oral GLP-1 receptor agonist for type 2 diabetes and obesity."
Additional program notes from the source.
"Phase 2b dose-finding study ongoing."
Collaboration/partnership entries associated with the program.
Clinical trials linked to this program.
Show child attributes
Show child attributes
Ontology (MONDO) terms mapped from the program's indication.
Show child attributes
Show child attributes
Ontology (NCIT/HGNC) terms mapped from the program's target.
Show child attributes
Show child attributes
URL of the company page the program was read from.
"https://www.pfizer.com/science/drug-product-pipeline"
When Pav last read the source page (UTC).
"2026-06-19T04:12:00Z"