> ## 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.

# Look up drugs by name

> Find drugs by any of their names: INN, research code or brand (`duvakitug`, `TEV-574`, `Leqvio`). Case, spaces, hyphens and trademark signs are ignored, but the name must be complete. Each drug lists every company with programs of it (originator, partners, licensees) and its most advanced phase. Without `q`, lists drugs by phase; `multi_company=true` keeps drugs held by more than one company.



## OpenAPI

````yaml /openapi.json get /v1/drugs
openapi: 3.1.0
info:
  title: Pav Enterprise API
  description: >-
    Read-only `/v1` API over Pav's biopharma dataset: drug programs, companies,
    clinical trials, deals, patent families, FDA records, a change feed, and
    dataset stats.


    Authenticate every request with a Pav API key as a bearer token:
    `Authorization: Bearer <api_key>`. Mint a key in [Pav developer
    settings](https://app.pav.bio/settings/developer).


    All endpoints are `GET` and return JSON. List endpoints return a `{ data,
    pagination }` envelope. Pass `q=` to run relevance-ranked search that
    matches meaning as well as exact words; omit it for a filtered, paginated
    listing. Errors return `{ error: { code, message, request_id } }`.
  version: 1.2.0
servers:
  - url: https://api.pav.bio
    description: Production
  - url: /
    description: This server
security: []
tags:
  - name: programs
    description: >-
      Search and filter drug pipeline assets by company, indication, target,
      modality, phase, or free text. Includes get-by-id, similar-programs, and
      facet autocomplete.
  - name: companies
    description: >-
      Tracked biopharma companies and their pipeline ownership. List a company's
      programs and change history.
  - name: trials
    description: >-
      Search clinical trials — ClinicalTrials.gov records plus Pav
      program/company links. Relevance-ranked search when `q=` is set; filtered
      browse otherwise.
  - name: deals
    description: >-
      Biopharma deals (M&A, licensing, collaborations, options, joint ventures)
      from SEC filings and press releases, with lifecycle state, headline
      economics, and source documents.
  - name: patents
    description: >-
      US patent families from USPTO with owners linked to Pav companies, member
      applications, ownership history, and statutory term.
  - name: fda
    description: >-
      FDA records with applicants linked to Pav companies: Orange Book products,
      patents and exclusivities, Purple Book biologics, orphan designations,
      warning letters, and recalls.
  - name: changes
    description: >-
      Detected pipeline movement events per company — added and removed assets
      and phase changes — with before/after phase and detection time.
  - name: stats
    description: High-level dataset counts and facet coverage.
paths:
  /v1/drugs:
    get:
      tags:
        - drugs
      summary: Look up drugs by name
      description: >-
        Find drugs by any of their names: INN, research code or brand
        (`duvakitug`, `TEV-574`, `Leqvio`). Case, spaces, hyphens and trademark
        signs are ignored, but the name must be complete. Each drug lists every
        company with programs of it (originator, partners, licensees) and its
        most advanced phase. Without `q`, lists drugs by phase;
        `multi_company=true` keeps drugs held by more than one company.
      operationId: list_drugs
      parameters:
        - name: q
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: Drug name, code or brand. Repeatable (any may match).
            examples:
              - duvakitug
            title: Q
          description: Drug name, code or brand. Repeatable (any may match).
        - name: company_id
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: 'null'
            description: >-
              Drugs with programs at these Pav company ids (and, by default, the
              companies they own). Repeatable.
            examples:
              - 412
            title: Company Id
          description: >-
            Drugs with programs at these Pav company ids (and, by default, the
            companies they own). Repeatable.
        - name: include_subsidiaries
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Include the records of companies the given company owns (acquired
              companies and subsidiaries). Set `false` for the company's own
              records only.
            examples:
              - true
            default: true
            title: Include Subsidiaries
          description: >-
            Include the records of companies the given company owns (acquired
            companies and subsidiaries). Set `false` for the company's own
            records only.
        - name: multi_company
          in: query
          required: false
          schema:
            type: boolean
            description: Only drugs with programs at more than one company.
            examples:
              - true
            default: false
            title: Multi Company
          description: Only drugs with programs at more than one company.
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: '#/components/schemas/ProgramStatus'
              - type: 'null'
            description: >-
              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.
            examples:
              - discontinued
            title: Status
          description: >-
            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.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 500
            minimum: 1
            description: Maximum drugs to return (1-500).
            examples:
              - 50
            default: 50
            title: Limit
          description: Maximum drugs to return (1-500).
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 100000
            minimum: 0
            description: Zero-based row offset.
            examples:
              - 0
            default: 0
            title: Offset
          description: Zero-based row offset.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DrugListResponse'
        '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'
        '422':
          description: Invalid parameter (`validation_error`).
          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:
    ProgramStatus:
      type: string
      enum:
        - active
        - inactive
        - discontinued
      title: ProgramStatus
    DrugListResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/Drug'
          type: array
          title: Data
          description: Page of drugs.
        pagination:
          $ref: '#/components/schemas/Pagination'
          description: Pagination metadata for this page.
      type: object
      required:
        - data
        - pagination
      title: DrugListResponse
    ErrorEnvelope:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
          description: Error detail. Present only on 4xx/5xx responses.
      required:
        - error
      title: ErrorEnvelope
      type: object
    Drug:
      properties:
        drug_id:
          type: integer
          title: Drug Id
          description: Durable Pav drug identifier.
          examples:
            - 5120
        name:
          type: string
          title: Name
          description: Display name (the INN when there is one).
          examples:
            - duvakitug
        inn:
          anyOf:
            - type: string
            - type: 'null'
          title: Inn
          description: International nonproprietary name, when the drug has one.
          examples:
            - duvakitug
        kind:
          type: string
          title: Kind
          description: >-
            `originator` (the innovator product, whoever lists it), `biosimilar`
            or `generic`.
          examples:
            - originator
        aliases:
          items:
            $ref: '#/components/schemas/DrugAlias'
          type: array
          title: Aliases
          description: Every name the drug goes by across its companies.
        modality:
          anyOf:
            - type: string
            - type: 'null'
          title: Modality
          description: >-
            The drug's modality in Pav's modality vocabulary (the
            `modality_norm` of all its programs). Null when not known.
          examples:
            - antibody
        modality_subclass:
          anyOf:
            - type: string
            - type: 'null'
          title: Modality Subclass
          description: Nucleic-acid class within `rna` or `oligonucleotide` (e.g. `sirna`).
          examples:
            - sirna
        modality_formats:
          items:
            type: string
          type: array
          title: Modality Formats
          description: Format facets (e.g. `bispecific`, `antibody_drug_conjugate`).
          examples:
            - - bispecific
        highest_phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Highest Phase
          description: Most advanced phase across all companies' programs of the drug.
          examples:
            - Phase 3
        program_count:
          type: integer
          title: Program Count
          description: Programs of the drug across companies.
          default: 0
          examples:
            - 3
        companies:
          items:
            $ref: '#/components/schemas/DrugCompany'
          type: array
          title: Companies
          description: >-
            Companies with programs of this drug: the originator and its
            partners, licensees or parent, most advanced first.
      type: object
      required:
        - drug_id
        - name
        - kind
      title: Drug
    Pagination:
      properties:
        limit:
          type: integer
          title: Limit
          description: Maximum number of rows returned for this request.
          examples:
            - 100
        offset:
          type: integer
          title: Offset
          description: Zero-based row offset applied before returning results.
          examples:
            - 0
        total:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total
          description: >-
            Total matching rows across all pages. Null unless the request set
            `include_total=true` on an endpoint that supports it.
          examples:
            - 590355
      type: object
      required:
        - limit
        - offset
      title: Pagination
    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
    DrugAlias:
      properties:
        alias:
          type: string
          title: Alias
          description: A name of the drug as written by a company.
          examples:
            - TEV-'574
        kind:
          type: string
          title: Kind
          description: >-
            `inn` (nonproprietary name), `code` (research code), `brand` or
            `name`.
          examples:
            - code
      type: object
      required:
        - alias
        - kind
      title: DrugAlias
    DrugCompany:
      properties:
        company_id:
          type: integer
          title: Company Id
          description: Pav company id.
          examples:
            - 412
        name:
          type: string
          title: Name
          description: Company display name.
          examples:
            - Sanofi
        short_name:
          type: string
          title: Short Name
          description: Company slug.
          examples:
            - sanofi
        program_count:
          type: integer
          title: Program Count
          description: >-
            Programs of this drug the company lists (one per indication or
            territory).
          examples:
            - 2
        highest_phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Highest Phase
          description: Most advanced phase among this company's programs of the drug.
          examples:
            - Phase 3
      type: object
      required:
        - company_id
        - name
        - short_name
        - program_count
      title: DrugCompany
  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

````