curl --request GET \
--url https://api.pav.bio/v1/drugs/{drug_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/drugs/{drug_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/drugs/{drug_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/drugs/{drug_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/drugs/{drug_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/drugs/{drug_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/drugs/{drug_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{
"drug_id": 5120,
"name": "duvakitug",
"kind": "originator",
"inn": "duvakitug",
"aliases": [
{
"alias": "TEV-'574",
"kind": "code"
}
],
"modality": "antibody",
"modality_subclass": "sirna",
"modality_formats": [
"bispecific"
],
"highest_phase": "Phase 3",
"program_count": 3,
"companies": [
{
"company_id": 412,
"name": "Sanofi",
"short_name": "sanofi",
"program_count": 2,
"highest_phase": "Phase 3"
}
],
"programs": [
{
"id": 18342,
"company_id": 412,
"short_name": "pfizer",
"company": "Pfizer",
"drug": "Danuglipron",
"status": "active",
"discontinued_at": null,
"drug_id": 5120,
"indication": "Type 2 Diabetes",
"phase_norm": "Phase 2",
"modality_norm": "small_molecule",
"modality_subclass": "sirna",
"modality_formats": [
"bispecific"
],
"target": "GLP-1R",
"trial_count": 3
}
]
}{
"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 drug and its programs across companies
Fetch one drug by its Pav drug_id (from a program’s drug_id): its names, most advanced phase, the companies with programs of it, and those programs. status chooses which programs count (default active). A drug_id that was merged into another drug returns that drug. Returns 404 not_found if the id is unknown.
curl --request GET \
--url https://api.pav.bio/v1/drugs/{drug_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pav.bio/v1/drugs/{drug_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/drugs/{drug_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/drugs/{drug_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/drugs/{drug_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/drugs/{drug_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pav.bio/v1/drugs/{drug_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{
"drug_id": 5120,
"name": "duvakitug",
"kind": "originator",
"inn": "duvakitug",
"aliases": [
{
"alias": "TEV-'574",
"kind": "code"
}
],
"modality": "antibody",
"modality_subclass": "sirna",
"modality_formats": [
"bispecific"
],
"highest_phase": "Phase 3",
"program_count": 3,
"companies": [
{
"company_id": 412,
"name": "Sanofi",
"short_name": "sanofi",
"program_count": 2,
"highest_phase": "Phase 3"
}
],
"programs": [
{
"id": 18342,
"company_id": 412,
"short_name": "pfizer",
"company": "Pfizer",
"drug": "Danuglipron",
"status": "active",
"discontinued_at": null,
"drug_id": 5120,
"indication": "Type 2 Diabetes",
"phase_norm": "Phase 2",
"modality_norm": "small_molecule",
"modality_subclass": "sirna",
"modality_formats": [
"bispecific"
],
"target": "GLP-1R",
"trial_count": 3
}
]
}{
"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 drug id.
5120
Query Parameters
Lifecycle states to include. Repeatable. Defaults to active. inactive: a program known only from clinical trials whose trials have all closed. discontinued: dropped from the company's pipeline.
active, inactive, discontinued "discontinued"
Response
Successful Response
Durable Pav drug identifier.
5120
Display name (the INN when there is one).
"duvakitug"
originator (the innovator product, whoever lists it), biosimilar or generic.
"originator"
International nonproprietary name, when the drug has one.
"duvakitug"
Every name the drug goes by across its companies.
Show child attributes
Show child attributes
The drug's modality in Pav's modality vocabulary (the modality_norm of all its programs). Null when not known.
"antibody"
Nucleic-acid class within rna or oligonucleotide (e.g. sirna).
"sirna"
Format facets (e.g. bispecific, antibody_drug_conjugate).
["bispecific"]
Most advanced phase across all companies' programs of the drug.
"Phase 3"
Programs of the drug across companies.
3
Companies with programs of this drug: the originator and its partners, licensees or parent, most advanced first.
Show child attributes
Show child attributes
The drug's programs across companies (one per company, indication and territory).
Show child attributes
Show child attributes