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

# Enable monitoring for a base

> Auto-provisions a Monitoring Base (with a Changes table) in the given workspace and persists the config. Change events are written into that Airtable base, not returned by this API.



## OpenAPI

````yaml /openapi.json post /monitoring-config
openapi: 3.0.4
info:
  title: Simplified Webhooks Backend
  version: '1.0'
  description: >-
    API for Airtable webhooks, usage (record & attachment-storage counting), and
    change-monitoring audit logs.
  contact:
    name: API Support
    url: https://www.simplified-webhooks.com/contact-us
    email: contact@simplified-webhooks.com
servers:
  - url: https://api.simplified-webhooks.com
    description: Main server
security: []
tags:
  - name: Webhooks
    description: Register, update, and delete delivery webhooks for Airtable changes.
  - name: Usage
    description: >-
      Track daily record counts and attachment storage per Airtable base, and
      read the snapshot time-series.
  - name: Audit Log
    description: >-
      Configure change monitoring that logs every record & schema change into a
      Changes table in your own Airtable base.
paths:
  /monitoring-config:
    post:
      tags:
        - Audit Log
      summary: Enable monitoring for a base
      description: >-
        Auto-provisions a Monitoring Base (with a Changes table) in the given
        workspace and persists the config. Change events are written into that
        Airtable base, not returned by this API.
      operationId: createMonitoringConfig
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonitoringConfigCreate'
      responses:
        '201':
          description: Monitoring enabled.
          content:
            application/json:
              schema:
                type: object
                properties:
                  config:
                    $ref: '#/components/schemas/MonitoringConfig'
        '400':
          description: >-
            Bad request, or the OAuth connection is missing write scopes (error
            code `oauth_reconnect_required`).
          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'
        '409':
          description: This base is already monitored.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    MonitoringConfigCreate:
      type: object
      required:
        - baseId
        - baseName
        - workspaceId
      properties:
        baseId:
          type: string
          example: appkGlXEiufQLn1Qd
        baseName:
          type: string
          example: Sales CRM
        workspaceId:
          type: string
          example: wspXXXXXXXXXXXXXX
        scope:
          $ref: '#/components/schemas/MonitoringScope'
        timezone:
          type: string
          description: >-
            Timezone for the Changes table's date column ('utc' or an IANA id).
            Defaults to 'utc'.
          example: Europe/Berlin
    MonitoringConfig:
      type: object
      title: Monitoring Config
      properties:
        id:
          type: string
          format: uuid
        baseId:
          type: string
          description: The watched (source) Airtable base id.
          example: appkGlXEiufQLn1Qd
        baseName:
          type: string
          example: Sales CRM
        workspaceId:
          type: string
          example: wspXXXXXXXXXXXXXX
        monitoringBaseId:
          type: string
          description: The auto-provisioned Airtable base that holds the Changes table.
        monitoringBaseName:
          type: string
        monitoringTableId:
          type: string
        monitoringTableName:
          type: string
        scope:
          $ref: '#/components/schemas/MonitoringScope'
        timezone:
          type: string
          description: >-
            Timezone for the Changes table's "Occurred At" column ('utc' or an
            IANA id).
          example: utc
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          example: 'Missing required fields: [tableId, event]'
    MonitoringScope:
      type: string
      enum:
        - all
        - schema_only
        - records_only
      description: >-
        Which changes are logged — all, schema changes only, or record changes
        only.
      example: all
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API key for authentication.

````