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

> Detected changes, newest first. `entity=program` (default): programs added (`insert`), changed (`update`) or dropped (`delete`); retracted changes are hidden unless `include_invalidated=true`. `entity=trial`: ClinicalTrials.gov changes by `kind`, with `old_value` and `new_value`, from 2026-06-15. `since` bounds `detected_at`.



## OpenAPI

````yaml /openapi.json get /v1/changes
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/changes:
    get:
      tags:
        - changes
      summary: List changes
      description: >-
        Detected changes, newest first. `entity=program` (default): programs
        added (`insert`), changed (`update`) or dropped (`delete`); retracted
        changes are hidden unless `include_invalidated=true`. `entity=trial`:
        ClinicalTrials.gov changes by `kind`, with `old_value` and `new_value`,
        from 2026-06-15. `since` bounds `detected_at`.
      operationId: list_changes
      parameters:
        - name: entity
          in: query
          required: false
          schema:
            enum:
              - program
              - trial
            type: string
            description: '`program` (default) or `trial`.'
            default: program
            title: Entity
          description: '`program` (default) or `trial`.'
        - name: company_id
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: >-
              Company ids, comma-separated. Includes the companies each one
              owns.
            examples:
              - '412'
            title: Company Id
          description: Company ids, comma-separated. Includes the companies each one owns.
        - name: program_id
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: Program ids, comma-separated (`entity=program`).
            examples:
              - '18342'
            title: Program Id
          description: Program ids, comma-separated (`entity=program`).
        - name: nct_id
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: NCT ids, comma-separated (`entity=trial`).
            examples:
              - NCT05366478
            title: Nct Id
          description: NCT ids, comma-separated (`entity=trial`).
        - name: change_type
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: '`insert`, `update`, `delete`; comma-separated.'
            examples:
              - update
            title: Change Type
          description: '`insert`, `update`, `delete`; comma-separated.'
        - name: kind
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: >-
              What changed (`entity=trial`): `trial`, `status`, `phase`,
              `start_date`, `primary_completion_date`, `completion_date`,
              `results_posted`, `enrollment`, `why_stopped`; comma-separated.
            examples:
              - status
            title: Kind
          description: >-
            What changed (`entity=trial`): `trial`, `status`, `phase`,
            `start_date`, `primary_completion_date`, `completion_date`,
            `results_posted`, `enrollment`, `why_stopped`; comma-separated.
        - name: since
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date-time
              - type: 'null'
            description: Changes detected at or after this time (ISO 8601).
            examples:
              - '2026-09-01T00:00:00Z'
            title: Since
          description: Changes detected at or after this time (ISO 8601).
        - name: include_invalidated
          in: query
          required: false
          schema:
            type: boolean
            description: Include retracted changes (`entity=program`).
            default: false
            title: Include Invalidated
          description: Include retracted changes (`entity=program`).
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            description: Rows per page (1-200).
            examples:
              - 50
            default: 50
            title: Limit
          description: Rows per page (1-200).
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 2000
              - type: 'null'
            description: '`next_cursor` from the previous page.'
            title: Cursor
          description: '`next_cursor` from the previous page.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeListResponse'
        '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:
    ChangeListResponse:
      properties:
        data:
          anyOf:
            - items:
                $ref: '#/components/schemas/ChangeEvent'
              type: array
            - items:
                $ref: '#/components/schemas/TrialChangeEvent'
              type: array
          title: Data
          description: >-
            Changes, newest first: `ChangeEvent` rows, or `TrialChangeEvent`
            rows with `entity=trial`.
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
          description: >-
            Pass as `cursor` to get the next page. Null on the last page. See
            [Conventions](https://docs.pav.bio/conventions).
          examples:
            - eyJyIjoicHJvZ3JhbXMiLCJzIjoiY29tcGFueSJ9
        total:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total
          description: Rows matching the filters. Null for relevance-ranked `q` results.
          examples:
            - 1284
      type: object
      required:
        - data
      title: ChangeListResponse
      description: >-
        A page of program changes (`entity=program`) or trial changes
        (`entity=trial`).
    ErrorEnvelope:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
          description: Error detail. Present only on 4xx/5xx responses.
      required:
        - error
      title: ErrorEnvelope
      type: object
    ChangeEvent:
      properties:
        id:
          type: integer
          title: Id
          description: Change-event identifier.
          examples:
            - 90211
        program_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Program Id
          description: The changed program's id.
          examples:
            - 9083
        company_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Company Id
          description: Pav company identifier the change belongs to.
          examples:
            - 412
        short_name:
          type: string
          title: Short Name
          description: Slug of the company that owns the changed program.
          examples:
            - pfizer
        company:
          anyOf:
            - type: string
            - type: 'null'
          title: Company
          description: Company display name.
          examples:
            - Pfizer
        drug:
          type: string
          title: Drug
          description: Drug/asset name of the changed program.
          examples:
            - Danuglipron
        indication:
          anyOf:
            - type: string
            - type: 'null'
          title: Indication
          description: Indication of the changed program.
          examples:
            - Type 2 Diabetes
        territory:
          anyOf:
            - type: string
            - type: 'null'
          title: Territory
          description: Territory of the changed program, when disclosed.
          examples:
            - United States
        change_type:
          type: string
          title: Change Type
          description: >-
            `insert` (program added), `update` (phase or details changed), or
            `delete` (program left the company's pipeline).
          examples:
            - update
        prev_phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Prev Phase
          description: Phase before the change (raw label).
          examples:
            - Phase 1
        new_phase:
          anyOf:
            - type: string
            - type: 'null'
          title: New Phase
          description: Phase after the change (raw label).
          examples:
            - Phase 2
        invalidated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Invalidated At
          description: >-
            When this change was retracted after a correction. Null unless
            `include_invalidated=true` surfaces a retracted change.
          examples:
            - '2026-06-20T04:12:00Z'
        invalidation_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Invalidation Reason
          description: Reason the change was invalidated, if any.
          examples:
            - source correction
        detected_at:
          type: string
          format: date-time
          title: Detected At
          description: When the change was first detected (UTC).
          examples:
            - '2026-06-19T04:12:00Z'
      type: object
      required:
        - id
        - short_name
        - drug
        - change_type
        - detected_at
      title: ChangeEvent
    TrialChangeEvent:
      properties:
        id:
          type: integer
          title: Id
          description: Change-event identifier.
          examples:
            - 48213
        entity:
          type: string
          const: trial
          title: Entity
          description: Always `trial` for this feed.
          default: trial
        nct_id:
          type: string
          title: Nct Id
          description: ClinicalTrials.gov identifier of the changed trial.
          examples:
            - NCT05366478
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
          description: Trial title, for convenience.
          examples:
            - A Study of Tulisokibart in Ulcerative Colitis
        kind:
          type: string
          enum:
            - trial
            - status
            - phase
            - start_date
            - primary_completion_date
            - completion_date
            - results_posted
            - enrollment
            - why_stopped
          title: Kind
          description: >-
            What changed: `trial` (added or removed), `status`, `phase`,
            `start_date`, `primary_completion_date`, `completion_date`,
            `results_posted`, `enrollment`, `why_stopped`.
          examples:
            - status
        change_type:
          type: string
          enum:
            - insert
            - update
            - delete
          title: Change Type
          description: >-
            `insert` (value first set, or a new trial), `update` (value
            changed), or `delete` (value removed, or the trial left the
            registry).
          examples:
            - update
        old_value:
          anyOf:
            - type: string
            - type: 'null'
          title: Old Value
          description: >-
            Value before the change, as the registry states it. Phases are
            joined with `|`; dates are `YYYY-MM-DD` or `YYYY-MM`.
          examples:
            - RECRUITING
        new_value:
          anyOf:
            - type: string
            - type: 'null'
          title: New Value
          description: Value after the change, in the same form as `old_value`.
          examples:
            - ACTIVE_NOT_RECRUITING
        change_date:
          type: string
          format: date
          title: Change Date
          description: Date the registry published the update.
          examples:
            - '2026-09-24'
        detected_at:
          type: string
          format: date-time
          title: Detected At
          description: When Pav recorded the change (UTC). The feed is ordered by it.
          examples:
            - '2026-09-25T14:31:12Z'
      type: object
      required:
        - id
        - nct_id
        - kind
        - change_type
        - change_date
        - detected_at
      title: TrialChangeEvent
    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

````