> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pav.bio/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a program

> One program with its trials and ontology terms. A merged id returns the surviving program.



## OpenAPI

````yaml /openapi.json get /v1/programs/{program_id}
openapi: 3.1.0
info:
  title: Pav Enterprise API
  description: >-
    Read-only API over Pav's biopharma data: programs, drugs, companies, trials,
    deals, patents, FDA records and changes. Send `Authorization: Bearer
    <api_key>`. Lists return `{data, next_cursor, total}`; errors return
    `{error: {code, message, request_id}}`. Parameter rules:
    [Conventions](https://docs.pav.bio/conventions).
  version: 2.0.0
servers:
  - url: https://api.pav.bio
    description: Production
security: []
tags:
  - name: search
    description: Find the id of a company, drug, program, target or indication.
    x-group: Search
  - name: programs
    description: 'Drug programs: one drug in one indication at one company.'
    x-group: Programs
  - name: drugs
    description: >-
      One drug product across every company that develops it, under all its
      names, with its programs.
    x-group: Drugs
  - name: companies
    description: Biopharma companies, their owners and their trials.
    x-group: Companies
  - name: trials
    description: ClinicalTrials.gov trials linked to programs and companies.
    x-group: Trials
  - name: deals
    description: M&A, licensing and collaboration deals with terms and sources.
    x-group: Deals
  - name: patents
    description: US patent families with owners, members and term.
    x-group: Patents
  - name: fda
    description: FDA records, one endpoint per record type.
    x-group: FDA
  - name: changes
    description: Program and trial changes, newest first.
    x-group: Changes
  - name: stats
    description: Dataset counts.
    x-group: Stats
paths:
  /v1/programs/{program_id}:
    get:
      tags:
        - programs
      summary: Get a program
      description: >-
        One program with its trials and ontology terms. A merged id returns the
        surviving program.
      operationId: get_program
      parameters:
        - name: program_id
          in: path
          required: true
          schema:
            type: integer
            description: Program id.
            examples:
              - 18342
            title: Program Id
          description: Program id.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Program'
        '400':
          description: Invalid parameter (`validation_error`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Missing or invalid API key (`unauthorized`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '404':
          description: Unknown id or route (`not_found`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Rate limit exceeded (`rate_limited`); honor `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
      security:
        - EnterpriseApiKey: []
components:
  schemas:
    Program:
      properties:
        program_id:
          type: integer
          title: Program Id
          description: Program id. Stable; kept when a program is discontinued.
          examples:
            - 18342
        status:
          type: string
          title: Status
          description: >-
            `active`, `inactive` (known only from trials, all closed) or
            `discontinued`. An approved drug stays `active` after it leaves the
            company's pipeline page.
          default: active
          examples:
            - active
        discontinued_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Discontinued At
          description: When a `discontinued` program stopped; null otherwise.
          examples:
            - null
        basis:
          type: string
          enum:
            - company_pipeline
            - regulatory_approval
            - clinical_trial_registry
          title: Basis
          description: >-
            How Pav knows of the program: `company_pipeline`,
            `regulatory_approval` (an approved use the pipeline does not list;
            `source_url` is the label) or `clinical_trial_registry`.
          default: company_pipeline
          examples:
            - company_pipeline
        company_id:
          type: integer
          title: Company Id
          description: Pav company identifier that owns this program.
          examples:
            - 412
        short_name:
          type: string
          title: Short Name
          description: Company slug, a stable readable identifier.
          examples:
            - pfizer
        company:
          type: string
          title: Company
          description: Display name of the company that owns this program.
          examples:
            - Pfizer
        drug:
          type: string
          title: Drug
          description: Drug or asset name for the program.
          examples:
            - Danuglipron
        drug_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Drug Id
          description: >-
            Drug id shared by every company's programs of the same product. Null
            when the program names no product.
          examples:
            - 5120
        aliases:
          items:
            type: string
          type: array
          title: Aliases
          description: 'Other names of the drug: INN, codes, brands.'
          examples:
            - - duvakitug
              - TEV-'574
        indication:
          anyOf:
            - type: string
            - type: 'null'
          title: Indication
          description: Indication the program targets, as published by the company.
          examples:
            - Type 2 Diabetes
        phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Phase
          description: Development phase as published by the company (raw label).
          examples:
            - Phase 2
        phase_norm:
          anyOf:
            - type: string
            - type: 'null'
          title: Phase Norm
          description: >-
            Phase in Pav's vocabulary: the developer's phase for this
            indication, raised to `Approved` by a US or EU approval that covers
            it. Without one, the most advanced registered trial of the drug in
            the indication, then a dated public source. A trial never raises a
            developer's phase.
          examples:
            - Phase 2
        modality:
          anyOf:
            - type: string
            - type: 'null'
          title: Modality
          description: Drug modality as published by the company (raw label).
          examples:
            - Small molecule
        modality_norm:
          anyOf:
            - type: string
            - type: 'null'
          title: Modality Norm
          description: Modality in Pav's vocabulary; one per drug.
          examples:
            - small_molecule
        modality_subclass:
          anyOf:
            - type: string
            - type: 'null'
          title: Modality Subclass
          description: >-
            Nucleic-acid class: `sirna`, `mrna`, `sarna`, `rna_editing`, `aso`,
            `aptamer`.
          examples:
            - sirna
        modality_formats:
          items:
            type: string
          type: array
          title: Modality Formats
          description: >-
            Formats: `bispecific` (includes tri- and multispecifics),
            `antibody_drug_conjugate`, `peptide_drug_conjugate`,
            `antibody_oligonucleotide_conjugate`, `antibody_peptide_conjugate`.
          examples:
            - - bispecific
        target:
          anyOf:
            - type: string
            - type: 'null'
          title: Target
          description: Molecular target as published. Null when none is published.
          examples:
            - GLP-1R
        mechanism_of_action:
          anyOf:
            - type: string
            - type: 'null'
          title: Mechanism Of Action
          description: Mechanism of action for the asset.
          examples:
            - GLP-1 receptor agonist
        territory:
          anyOf:
            - type: string
            - type: 'null'
          title: Territory
          description: Territory/region the program applies to, when disclosed.
          examples:
            - United States
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Free-text program description, when published.
          examples:
            - Oral GLP-1 receptor agonist for type 2 diabetes and obesity.
        notes:
          anyOf:
            - type: string
            - type: 'null'
          title: Notes
          description: Additional program notes from the source.
          examples:
            - Phase 2b dose-finding study ongoing.
        partners:
          items: {}
          type: array
          title: Partners
          description: >-
            Partners the company lists; if none, other companies holding the
            same drug.
          examples:
            - - Teva Pharmaceuticals
        clinical_trials:
          items:
            $ref: '#/components/schemas/ClinicalTrial'
          type: array
          title: Clinical Trials
          description: Clinical trials linked to this program.
        indication_terms:
          items:
            $ref: '#/components/schemas/IndicationTerm'
          type: array
          title: Indication Terms
          description: Ontology (MONDO) terms mapped from the program's indication.
        target_terms:
          items:
            $ref: '#/components/schemas/TargetTerm'
          type: array
          title: Target Terms
          description: Ontology (NCIT/HGNC) terms mapped from the program's target.
        source_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Url
          description: URL of the company page the program was read from.
          examples:
            - https://www.pfizer.com/science/drug-product-pipeline
        source_checked_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Source Checked At
          description: When Pav last read the source page (UTC).
          examples:
            - '2026-06-19T04:12:00Z'
        last_updated:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Updated
          description: >-
            When the program's latest event happened (a phase change, readout,
            filing, approval). `from`/`to` and `sort=last_updated` use it.
          examples:
            - '2026-09-12T00:00:00Z'
      type: object
      required:
        - program_id
        - company_id
        - short_name
        - company
        - drug
      title: Program
    ErrorEnvelope:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
          description: Error detail. Present only on 4xx/5xx responses.
      required:
        - error
      title: ErrorEnvelope
      type: object
    ClinicalTrial:
      properties:
        nct_id:
          type: string
          title: Nct Id
          description: ClinicalTrials.gov registry identifier (NCT number).
          examples:
            - NCT04368728
        nct_url:
          type: string
          title: Nct Url
          description: ClinicalTrials.gov URL for the trial record.
          examples:
            - https://clinicaltrials.gov/study/NCT04368728
        nct_phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Nct Phase
          description: Trial phase as reported by ClinicalTrials.gov.
          examples:
            - Phase 3
        nct_sponsor:
          anyOf:
            - type: string
            - type: 'null'
          title: Nct Sponsor
          description: Lead sponsor of the trial as reported by ClinicalTrials.gov.
          examples:
            - Pfizer
        nct_conditions:
          anyOf:
            - type: string
            - type: 'null'
          title: Nct Conditions
          description: Pipe-delimited conditions/indications studied in the trial.
          examples:
            - COVID-19|SARS-CoV-2 Infection
        nct_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Nct Status
          description: Overall recruitment/operational status of the trial.
          examples:
            - Completed
      type: object
      required:
        - nct_id
        - nct_url
      title: ClinicalTrial
    IndicationTerm:
      properties:
        ontology:
          type: string
          title: Ontology
          description: Ontology of the indication term (e.g. MONDO).
          examples:
            - MONDO
        term_id:
          type: string
          title: Term Id
          description: Ontology term identifier.
          examples:
            - MONDO:0005148
        term_label:
          type: string
          title: Term Label
          description: Human-readable ontology term label.
          examples:
            - type 2 diabetes mellitus
        source_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Text
          description: Indication text the term was mapped from.
          examples:
            - Type 2 Diabetes
      type: object
      required:
        - ontology
        - term_id
        - term_label
      title: IndicationTerm
    TargetTerm:
      properties:
        ontology:
          type: string
          title: Ontology
          description: Ontology of the target term (NCIT or HGNC).
          examples:
            - NCIT
            - HGNC
        term_id:
          type: string
          title: Term Id
          description: Ontology term identifier.
          examples:
            - NCIT:C1110
            - hgnc:9602
        term_label:
          type: string
          title: Term Label
          description: Human-readable ontology term label.
          examples:
            - Ganglioside GD2
        source_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Text
          description: Target text the term was mapped from.
          examples:
            - GD2
        gene_symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Gene Symbol
          description: >-
            HGNC symbol for a human gene target; null otherwise. Group targets
            by it: one gene can appear under several term ids.
          examples:
            - PDCD1
            - CD274
      type: object
      required:
        - ontology
        - term_id
        - term_label
      title: TargetTerm
    ErrorBody:
      properties:
        code:
          description: >-
            Stable, machine-readable error code (e.g. `unauthorized`,
            `not_found`, `validation_error`, `error`).
          examples:
            - not_found
          title: Code
          type: string
        message:
          description: Human-readable explanation of the error.
          examples:
            - program 999999 not found
          title: Message
          type: string
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Correlation id echoed in the `X-Request-ID` response header. Quote
            it when contacting Pav support about a failed request.
          examples:
            - 3f2b9c1d8a7e4f6b9c0d1e2f3a4b5c6d
          title: Request Id
      required:
        - code
        - message
      title: ErrorBody
      type: object
  securitySchemes:
    EnterpriseApiKey:
      type: http
      description: >-
        Use a personal or organization Pav API key from Pav developer settings.
        Send it as Authorization: Bearer <api_key>.
      scheme: bearer
      bearerFormat: Pav API key

````