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

# List changes

> Return the changes of a monitored base. Filter by event, table, user, date range, and more. Changes are returned by occurrence date in descending order.



## OpenAPI

````yaml /openapi.json get /monitoring-config/{id}/changes
openapi: 3.0.4
info:
  title: Simplified Webhooks Backend
  version: '1.0'
  description: >-
    API for Airtable webhooks, usage (record & storage counts), and
    change-monitoring audit logs.
  contact:
    name: API Support
    url: https://www.simplified-webhooks.com/contact-us
    email: contact@simplified-webhooks.com
  x-generated: backend/scripts/generate-openapi.ts — do not edit by hand
servers:
  - url: https://api.simplified-webhooks.com
    description: Main server
security: []
tags:
  - name: Webhooks
    description: Receive Airtable change notifications at your own HTTPS URL.
  - name: Usage
    description: Daily record counts and attachment storage for your Airtable bases.
  - name: Audit Log
    description: >-
      Log record and schema changes into a Changes table in your own Airtable
      Monitoring Base.
  - name: Airtable Helpers
    description: Look up base, table, and field ids from your connected Airtable account.
paths:
  /monitoring-config/{id}/changes:
    get:
      tags:
        - Audit Log
      summary: List changes
      description: >-
        Return the changes of a monitored base. Filter by event, table, user,
        date range, and more. Changes are returned by occurrence date in
        descending order.
      operationId: listMonitoringChanges
      parameters:
        - schema:
            type: string
            format: uuid
            description: The monitoring config id.
            example: 8f1d6b2c-3a4e-4c5d-9e6f-0a1b2c3d4e5f
          required: true
          description: The monitoring config id.
          name: id
          in: path
        - schema:
            type: string
            enum:
              - record_create
              - record_update
              - record_delete
              - table_create
              - table_update
              - table_delete
              - column_create
              - column_update
              - column_delete
            description: Only this event type (e.g. record_update).
          required: false
          description: Only this event type (e.g. record_update).
          name: eventType
          in: query
        - schema:
            type: string
            enum:
              - record
              - schema
            description: Only record events or only schema events.
          required: false
          description: Only record events or only schema events.
          name: eventCategory
          in: query
        - schema:
            type: string
            minLength: 1
            description: Only changes for this Airtable table.
          required: false
          description: Only changes for this Airtable table.
          name: tableId
          in: query
        - schema:
            type: string
            minLength: 1
            description: Only changes for this record (or field id for column events).
          required: false
          description: Only changes for this record (or field id for column events).
          name: recordId
          in: query
        - schema:
            type: string
            enum:
              - client
              - automation
              - formSubmission
              - formPageSubmission
              - publicApi
              - publicApiCall
              - system
              - sync
              - anonymousUser
              - unknown
            description: Only changes from this Airtable source (client, automation, …).
          required: false
          description: Only changes from this Airtable source (client, automation, …).
          name: source
          in: query
        - schema:
            type: string
            minLength: 1
            description: Only changes by this user email.
          required: false
          description: Only changes by this user email.
          name: userEmail
          in: query
        - schema:
            type: string
            minLength: 1
            description: Only updates that touched this field id.
          required: false
          description: Only updates that touched this field id.
          name: changedField
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: >-
              Include changes on or after the start of this calendar day
              (YYYY-MM-DD), interpreted in `timezone` (default UTC).
          required: false
          description: >-
            Include changes on or after the start of this calendar day
            (YYYY-MM-DD), interpreted in `timezone` (default UTC).
          name: from
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: >-
              Include changes on or before the end of this calendar day
              (YYYY-MM-DD), interpreted in `timezone` (default UTC).
          required: false
          description: >-
            Include changes on or before the end of this calendar day
            (YYYY-MM-DD), interpreted in `timezone` (default UTC).
          name: to
          in: query
        - schema:
            type: string
            default: utc
            description: >-
              Timezone for interpreting `from`/`to` calendar days. `'utc'` or an
              IANA id (e.g. `Europe/Berlin`). Default `utc`.
            example: Europe/Berlin
          required: false
          description: >-
            Timezone for interpreting `from`/`to` calendar days. `'utc'` or an
            IANA id (e.g. `Europe/Berlin`). Default `utc`.
          name: timezone
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
            description: Page size (1–100). Default 50.
          required: false
          description: Page size (1–100). Default 50.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 1
            description: >-
              Page cursor from a previous `nextCursor`. Omit on the first
              request.
          required: false
          description: Page cursor from a previous `nextCursor`. Omit on the first request.
          name: cursor
          in: query
      responses:
        '200':
          description: A page of change entries.
          content:
            application/json:
              schema:
                type: object
                properties:
                  configId:
                    type: string
                  monitoringBaseId:
                    type: string
                  monitoringTableId:
                    type: string
                  records:
                    type: array
                    items:
                      type: object
                      properties: {}
                      additionalProperties:
                        nullable: true
                  nextCursor:
                    type: string
                    nullable: true
                required:
                  - configId
                  - monitoringBaseId
                  - monitoringTableId
                  - records
                  - nextCursor
                additionalProperties: false
        '400':
          description: Bad request due to invalid input.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized, authentication token is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Monitoring config not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Could not read changes from Airtable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      required:
        - message
      additionalProperties: false
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: sk_...
      description: >-
        Your Simplified Webhooks API key, sent as a bearer token:
        `Authorization: Bearer sk_...`. Create API keys in your [profile
        settings](https://www.simplified-webhooks.com/profile-settings).

````