← Back to PKPDBuilder

PKPDBuilder API

The PK/PD Layer of the Internet — Now Programmable

v1

Free, open access to pharmacokinetic and pharmacodynamic data for 130+ drugs. No API key required. No rate limits (yet). Just clean JSON.

Base URL: https://www.pkpdbuilder.com/api/v1

⚡ Quick start: curl https://www.pkpdbuilder.com/api/v1/drugs?limit=5

What Can You Build?

Research Tools

Query PK parameters for literature reviews, meta-analyses, or cross-drug comparisons.

Clinical Decision Support

Integrate real PK data into dosing calculators, TDM tools, or clinical dashboards.

Educational Apps

Build interactive teaching tools for pharmacology and pharmacokinetics courses.

AI/LLM Pipelines

Feed structured drug data into AI models for pharmacometric analysis or drug development.

Endpoints

GET/api/v1/drugs

List all drugs with PK/PD parameters. Supports pagination and filtering.

Parameters

pageinteger(default: 1)Page number
limitinteger(default: 50)Results per page (max 200)
therapeutic_areastringFilter by therapeutic area (e.g., "Oncology")
drug_classstringFilter by drug class (e.g., "mAb")
routestringFilter by route (e.g., "Oral", "IV", "SC")
model_typestringFilter by model type (e.g., "PopPK", "PK/PD")
fieldsstringComma-separated: basic, parameters, links

Example

curl "https://www.pkpdbuilder.com/api/v1/drugs?therapeutic_area=Oncology&limit=5"

Response

{
  "data": [
    {
      "slug": "keytruda",
      "name": "Keytruda (Pembrolizumab) PK Simulator",
      "drug_class": "mAb",
      "therapeutic_area": "Oncology",
      "model_type": "PopPK",
      "route": "IV",
      "indication": "Various solid tumors",
      "parameters": {
        "pharmacokinetic": {
          "CL": "0.202 L/day",
          "Vc": "3.53 L",
          "Vp": "4.2 L",
          "Q": "0.72 L/day"
        }
      },
      "links": {
        "detail_page": "https://www.pkpdbuilder.com/apps/keytruda",
        "simulator": "https://husain1015.shinyapps.io/...",
        "api": "https://www.pkpdbuilder.com/api/v1/drugs/keytruda"
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 5,
    "total": 24,
    "total_pages": 5,
    "has_next": true
  }
}
GET/api/v1/drugs/:slug

Get detailed information for a specific drug, including PK/PD parameters, model info, and related drugs.

Parameters

slugstringDrug URL slug (e.g., "keytruda", "ozempic", "vancomycin")

Example

curl https://www.pkpdbuilder.com/api/v1/drugs/ozempic

Response

{
  "data": {
    "slug": "ozempic",
    "name": "Ozempic (Semaglutide) PK Simulator",
    "drug_class": "GLP-1 RA",
    "therapeutic_area": "Endocrine",
    "model_type": "PopPK",
    "route": "SC",
    "indication": "Type 2 Diabetes",
    "parameters": {
      "pharmacokinetic": {
        "CL_F": "0.0365 L/h",
        "Vc_F": "7.38 L",
        "ka": "0.00714 h⁻¹",
        "half_life": "~165 h"
      }
    },
    "related_drugs": [
      { "slug": "wegovy", "name": "Wegovy..." },
      { "slug": "mounjaro", "name": "Mounjaro..." }
    ]
  }
}
GET/api/v1/drugs/search

Search drugs by name, indication, drug class, therapeutic area, or molecular target.

Parameters

qstringSearch query (required)
limitinteger(default: 20)Max results (max 100)

Example

curl "https://www.pkpdbuilder.com/api/v1/drugs/search?q=antibody"

Response

{
  "query": "antibody",
  "results": [ ... ],
  "total": 15
}
GET/api/v1/stats

Platform-wide statistics — total simulators, coverage by therapeutic area, drug class, route, and model type.

Example

curl https://www.pkpdbuilder.com/api/v1/stats

Response

{
  "data": {
    "total_simulators": 130,
    "therapeutic_areas": [
      { "name": "Oncology", "count": 24 },
      { "name": "Immunology", "count": 18 },
      ...
    ],
    "drug_classes": [ ... ],
    "recently_added": [ ... ]
  }
}
GET/api/v1/therapeutic-areas

List all therapeutic areas with drug counts and associated drug classes.

Example

curl https://www.pkpdbuilder.com/api/v1/therapeutic-areas

Response

{
  "data": [
    {
      "name": "Oncology",
      "drug_count": 24,
      "drug_classes": ["mAb", "Small Molecule", "ADC", ...],
      "links": {
        "browse": "https://www.pkpdbuilder.com/therapeutic-area/oncology",
        "api_filter": "https://www.pkpdbuilder.com/api/v1/drugs?therapeutic_area=Oncology"
      }
    }
  ]
}
GET/api/v1/drug-classes

List all drug classes with drug counts, therapeutic areas, and individual drugs.

Example

curl https://www.pkpdbuilder.com/api/v1/drug-classes

Response

{
  "data": [
    {
      "name": "mAb",
      "drug_count": 18,
      "therapeutic_areas": ["Oncology", "Immunology"],
      "drugs": [
        { "slug": "keytruda", "name": "Keytruda..." },
        ...
      ]
    }
  ]
}

Response Format

All responses are JSON with the following structure:

  • data — The requested resource(s)
  • pagination — Page info (for list endpoints)
  • meta — API version and documentation link
  • error — Error message (on failure)

PK parameters are organized into categories: pharmacokinetic (CL, V, ka, t½), pharmacodynamic (EC50, Emax, IC50), and population (IIV, covariates).

CORS & Rate Limits

CORS

All endpoints support CORS with Access-Control-Allow-Origin: *. Call from any domain, including browser-based apps.

Rate Limits

No rate limits currently. Responses are cached for 5 minutes. Please be reasonable — if you need bulk data, use pagination.

Code Examples

Python
import requests

# Get all oncology drugs
response = requests.get(
    "https://www.pkpdbuilder.com/api/v1/drugs",
    params={"therapeutic_area": "Oncology", "limit": 100}
)
drugs = response.json()["data"]

for drug in drugs:
    pk = drug.get("parameters", {}).get("pharmacokinetic", {})
    print(f"{drug['name']}: CL={pk.get('CL', 'N/A')}, t½={pk.get('half_life', 'N/A')}")
R
library(httr2)
library(jsonlite)

# Search for GLP-1 receptor agonists
resp <- request("https://www.pkpdbuilder.com/api/v1/drugs/search") |>
  req_url_query(q = "GLP-1") |>
  req_perform() |>
  resp_body_json()

# Extract PK parameters
for (drug in resp$results) {
  cat(drug$name, "\n")
  if (!is.null(drug$parameters$pharmacokinetic)) {
    print(drug$parameters$pharmacokinetic)
  }
}
JavaScript
// Fetch drug data for a clinical dashboard
const response = await fetch(
  'https://www.pkpdbuilder.com/api/v1/drugs/vancomycin'
);
const { data } = await response.json();

console.log(data.name);           // "Vancomycin TDM Simulator"
console.log(data.parameters);      // { pharmacokinetic: { CL: "...", ... } }
console.log(data.links.simulator); // Direct link to interactive simulator

AI / LLM Integration

PKPDBuilder is designed to be an AI-first data source. Our API is ideal for:

  • Feeding structured PK data into LLM-based pharmacometric tools
  • Building RAG pipelines for drug information retrieval
  • Powering AI agents that answer PK/PD questions with real data
  • Cross-referencing published PK parameters in automated analyses

Also see: /llms.txt for AI crawler-friendly content.

Attribution & License

This API is free for research, education, and non-commercial use. All PK/PD parameters are extracted from published peer-reviewed manuscripts. If you use this data in publications, please cite PKPDBuilder: PKPDBuilder (https://www.pkpdbuilder.com) — Interactive PK/PD Drug Simulators