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

# List and search FDA records

> FDA regulatory records with the applicant, sponsor or recipient linked to a Pav company where possible: Orange Book products, listed patents and exclusivities; Purple Book biologic products; orphan drug designations; warning letters; and drug/device recalls. Orange and Purple Book rows are the current monthly edition; warning letters and recalls are the published feed.

Every filter is optional and filters combine with AND. `q` is a case-insensitive substring of the title, description, company name, FDA organization name, or FDA identifier; it does not match synonyms. `company_id` returns only records linked to that company, so an unlinked record (common for warning letters and recalls) never matches it; search the FDA name with `q` as well.

Dates: `date_field=document_date` (default) filters on the date FDA issued the record; exclusivities have no issue date, so use `date_field=event_date` for expiries (patent, exclusivity), e.g. `record_type=orange_book_patent&date_field=event_date&date_from=2027-01-01&sort=event_date&direction=asc`.



## OpenAPI

````yaml /openapi.json get /v1/fda
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/fda:
    get:
      tags:
        - fda
      summary: List and search FDA records
      description: >-
        FDA regulatory records with the applicant, sponsor or recipient linked
        to a Pav company where possible: Orange Book products, listed patents
        and exclusivities; Purple Book biologic products; orphan drug
        designations; warning letters; and drug/device recalls. Orange and
        Purple Book rows are the current monthly edition; warning letters and
        recalls are the published feed.


        Every filter is optional and filters combine with AND. `q` is a
        case-insensitive substring of the title, description, company name, FDA
        organization name, or FDA identifier; it does not match synonyms.
        `company_id` returns only records linked to that company, so an unlinked
        record (common for warning letters and recalls) never matches it; search
        the FDA name with `q` as well.


        Dates: `date_field=document_date` (default) filters on the date FDA
        issued the record; exclusivities have no issue date, so use
        `date_field=event_date` for expiries (patent, exclusivity), e.g.
        `record_type=orange_book_patent&date_field=event_date&date_from=2027-01-01&sort=event_date&direction=asc`.
      operationId: list_fda_records
      parameters:
        - name: q
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 200
              - type: 'null'
            description: Substring of title, description, company or FDA identifier.
            examples:
              - semaglutide
            title: Q
          description: Substring of title, description, company or FDA identifier.
        - name: company_id
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  type: integer
              - type: 'null'
            description: Records linked to any of these Pav company ids. Repeatable.
            title: Company Id
          description: Records linked to any of these Pav company ids. Repeatable.
        - name: record_type
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  enum:
                    - orange_book_product
                    - orange_book_patent
                    - orange_book_exclusivity
                    - purple_book_product
                    - orphan_designation
                    - warning_letter
                    - recall
                  type: string
              - type: 'null'
            description: Restrict to these record types. Repeatable.
            examples:
              - recall
            title: Record Type
          description: Restrict to these record types. Repeatable.
        - name: application_key
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 32
              - type: 'null'
            description: Exact FDA application, e.g. `N:209637` (NDA) or `BLA:761508`.
            examples:
              - N:209637
            title: Application Key
          description: Exact FDA application, e.g. `N:209637` (NDA) or `BLA:761508`.
        - name: product_key
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 40
              - type: 'null'
            description: Exact application + product, e.g. `N:209637:001`.
            title: Product Key
          description: Exact application + product, e.g. `N:209637:001`.
        - name: patent_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 20
              - type: 'null'
            description: Exact Orange Book listed patent number.
            title: Patent Number
          description: Exact Orange Book listed patent number.
        - name: designation_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 20
              - type: 'null'
            description: Exact OOPD orphan designation id.
            title: Designation Id
          description: Exact OOPD orphan designation id.
        - name: date_field
          in: query
          required: false
          schema:
            enum:
              - document_date
              - event_date
            type: string
            description: 'Which date `date_from` / `date_to` filter: issue or event date.'
            default: document_date
            title: Date Field
          description: 'Which date `date_from` / `date_to` filter: issue or event date.'
        - name: date_from
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: 'null'
            description: On or after this date (inclusive).
            title: Date From
          description: On or after this date (inclusive).
        - name: date_to
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: 'null'
            description: On or before this date (inclusive).
            title: Date To
          description: On or before this date (inclusive).
        - name: sort
          in: query
          required: false
          schema:
            enum:
              - document_date
              - event_date
            type: string
            description: '`document_date` (default) or `event_date`; nulls sort last.'
            default: document_date
            title: Sort
          description: '`document_date` (default) or `event_date`; nulls sort last.'
        - name: direction
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            description: '`desc` (default, newest first) or `asc`.'
            default: desc
            title: Direction
          description: '`desc` (default, newest first) or `asc`.'
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Rows per page (1-100).
            default: 25
            title: Limit
          description: Rows per page (1-100).
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 100000
            minimum: 0
            description: Zero-based row offset for paging.
            default: 0
            title: Offset
          description: Zero-based row offset for paging.
        - name: include_total
          in: query
          required: false
          schema:
            type: boolean
            description: Compute the exact total match count.
            default: false
            title: Include Total
          description: Compute the exact total match count.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FdaListResponse'
        '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:
    FdaListResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/FdaRecord'
          type: array
          title: Data
          description: Page of FDA records.
        pagination:
          $ref: '#/components/schemas/Pagination'
          description: Pagination metadata for this page.
      type: object
      required:
        - data
        - pagination
      title: FdaListResponse
    ErrorEnvelope:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
          description: Error detail. Present only on 4xx/5xx responses.
      required:
        - error
      title: ErrorEnvelope
      type: object
    FdaRecord:
      properties:
        record_key:
          type: string
          title: Record Key
          description: >-
            Pav key for this record in the current FDA edition; pass it to `GET
            /v1/fda/{record_key}`. Orange Book, Purple Book and orphan
            designation keys include the edition, so they change when FDA
            publishes a new one. For a durable handle filter by
            `application_key`, `product_key`, `patent_number` or
            `designation_id`.
          examples:
            - purple_book_product:2026-08:761508:001
        record_type:
          type: string
          enum:
            - orange_book_product
            - orange_book_patent
            - orange_book_exclusivity
            - purple_book_product
            - orphan_designation
            - warning_letter
            - recall
          title: Record Type
          description: Kind of FDA record.
          examples:
            - purple_book_product
        source:
          type: string
          title: Source
          description: FDA publication the record comes from.
          examples:
            - purple_book
        source_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Version
          description: >-
            Source edition: `YYYY-MM` for Orange and Purple Book, the load date
            for orphan designations, null for warning letters and recalls
            (published continuously).
          examples:
            - 2026-08
        fda_organization_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Fda Organization Name
          description: Applicant, sponsor or recipient name as FDA spells it.
          examples:
            - Regeneron Pharmaceuticals, Inc.
        company:
          anyOf:
            - $ref: '#/components/schemas/FdaCompany'
            - type: 'null'
          description: >-
            The Pav company this FDA organization is linked to. Null when
            unlinked: most Orange Book, Purple Book and orphan records are
            linked; most warning-letter and recall recipients (compounders,
            device and food makers) do not.
        application_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Application Key
          description: 'FDA application: `N:` (NDA), `A:` (ANDA) or `BLA:` plus the number.'
          examples:
            - BLA:761508
        product_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Product Key
          description: Application plus the FDA product number.
          examples:
            - BLA:761508:001
        designation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Designation Id
          description: OOPD orphan designation id.
          examples:
            - '1186826'
        patent_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Patent Number
          description: Orange Book listed US patent number.
          examples:
            - '10022461'
        title:
          type: string
          title: Title
          description: >-
            Display title: trade name, patent or exclusivity label, subject, or
            brand.
          examples:
            - GENGLYCOS
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: >-
            Ingredient or proper name for products, patents and exclusivities;
            the designated indication for orphan designations; the subject for
            warning letters; the product for recalls.
        document_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Document Date
          description: >-
            Date FDA issued the record: approval, patent submission,
            designation, letter issue, or recall. Always null for exclusivities;
            null for some old products.
        event_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Event Date
          description: The date `event_date_type` names, e.g. a patent expiry.
        event_date_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Event Date Type
          description: >-
            Meaning of `event_date`: `approval`, `patent_expiry`,
            `exclusivity_expiry`, `designation`, `issued`, `posted`, or
            `recall`.
          examples:
            - patent_expiry
        status:
          anyOf:
            - type: string
            - type: 'null'
          title: Status
          description: >-
            Source status: marketing status for products (`RX`, `OTC`, `DISCN`,
            ...), `listed`/`delisted` for patents, the exclusivity code for
            exclusivities, the designation status, `issued`/`closed` for warning
            letters, `active`/`terminated` for recalls.
          examples:
            - RX
        source_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Url
          description: >-
            Official FDA page for the record. Null for Orange and Purple Book
            rows.
        details:
          $ref: '#/components/schemas/FdaRecordDetails'
          description: Record-type specific source fields.
      type: object
      required:
        - record_key
        - record_type
        - source
        - title
      title: FdaRecord
    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 on relevance-ranked
            search responses and on listings requested without `include_total`.
          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
    FdaCompany:
      properties:
        company_id:
          type: integer
          title: Company Id
          description: Durable Pav company identifier.
          examples:
            - 5093
        short_name:
          type: string
          title: Short Name
          description: Company slug.
          examples:
            - regeneron
        name:
          type: string
          title: Name
          description: Company display name.
          examples:
            - Regeneron Pharmaceuticals
      type: object
      required:
        - company_id
        - short_name
        - name
      title: FdaCompany
    FdaRecordDetails:
      properties:
        ingredient:
          anyOf:
            - type: string
            - type: 'null'
          title: Ingredient
          description: Orange Book active ingredient(s) as FDA lists them.
          examples:
            - SEMAGLUTIDE
        strength:
          anyOf:
            - type: string
            - type: 'null'
          title: Strength
          description: Orange Book / Purple Book strength.
          examples:
            - 300MG/5ML (60MG/ML)
        dosage_route:
          anyOf:
            - type: string
            - type: 'null'
          title: Dosage Route
          description: Orange Book dosage form and route, `FORM;ROUTE`.
          examples:
            - TABLET;ORAL
        dosage_form:
          anyOf:
            - type: string
            - type: 'null'
          title: Dosage Form
          description: Purple Book dosage form.
          examples:
            - Injection
        route:
          anyOf:
            - type: string
            - type: 'null'
          title: Route
          description: Purple Book route of administration.
          examples:
            - Intravenous
        therapeutic_equivalence_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Therapeutic Equivalence Code
          description: >-
            Orange Book therapeutic-equivalence (TE) code; set only for
            multisource products.
          examples:
            - AB1
        reference_listed_drug:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reference Listed Drug
          description: 'Orange Book: the product is a reference listed drug (RLD).'
        reference_standard:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reference Standard
          description: 'Orange Book: the product is the reference standard (RS).'
        patent_use_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Patent Use Code
          description: Orange Book patent use code (method-of-use claim), when listed.
          examples:
            - U-4597
        pediatric_extension:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Pediatric Extension
          description: 'Orange Book patent: the expiry includes pediatric exclusivity.'
        drug_substance_claim:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Drug Substance Claim
          description: Orange Book patent claims the drug substance. Null when not flagged.
        drug_product_claim:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Drug Product Claim
          description: Orange Book patent claims the drug product. Null when not flagged.
        license_type:
          anyOf:
            - type: string
            - type: 'null'
          title: License Type
          description: >-
            Purple Book pathway: `351(a)` (reference product) or `351(k)`
            (biosimilar).
          examples:
            - 351(a)
        licensure:
          anyOf:
            - type: string
            - type: 'null'
          title: Licensure
          description: Purple Book licensure status.
          examples:
            - Licensed
        license_number:
          anyOf:
            - type: string
            - type: 'null'
          title: License Number
          description: Purple Book US license number of the holder.
          examples:
            - '1760'
        orphan_exclusivity_expiry:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Orphan Exclusivity Expiry
          description: Purple Book orphan exclusivity expiry.
        reference_product_exclusivity_expiry:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Reference Product Exclusivity Expiry
          description: Purple Book 12-year reference product exclusivity expiry.
        generic_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Generic Name
          description: 'Orphan designation: generic name as the sponsor filed it.'
          examples:
            - inosine pranobex
        marketing_approval_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Marketing Approval Date
          description: 'Orphan designation: marketing approval date, once approved.'
        exclusivity_end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Exclusivity End Date
          description: 'Orphan designation: orphan exclusivity end date.'
        approved_labeled_indication:
          anyOf:
            - type: string
            - type: 'null'
          title: Approved Labeled Indication
          description: 'Orphan designation: the approved labeled indication.'
        protected_indication:
          anyOf:
            - type: string
            - type: 'null'
          title: Protected Indication
          description: 'Orphan designation: the exclusivity-protected indication.'
        reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Reason
          description: Recall reason category.
          examples:
            - Mislabeling
        reason_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Reason Description
          description: Recall reason as FDA describes it.
        product_types:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Product Types
          description: Recall product types. Food-only recalls are excluded from this feed.
          examples:
            - - Drugs
        issuing_office:
          anyOf:
            - type: string
            - type: 'null'
          title: Issuing Office
          description: Warning letter issuing office.
          examples:
            - Center for Drug Evaluation and Research (CDER)
        fda_reference_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Fda Reference Id
          description: Warning letter FDA reference number.
          examples:
            - '738238'
        closeout_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Closeout Date
          description: Warning letter close-out date, once FDA closed it out.
      type: object
      title: FdaRecordDetails
      description: >-
        Source fields for one record. Each field applies to the record types
        named in it.
  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

````