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

# Register a webhook

> Start receiving Airtable change notifications at your HTTPS URL. Pick an `event` type (new records, updates, schema changes, etc.).



## OpenAPI

````yaml /openapi.json post /webhooks/register
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:
  /webhooks/register:
    post:
      tags:
        - Webhooks
      summary: Register a webhook
      description: >-
        Start receiving Airtable change notifications at your HTTPS URL. Pick an
        `event` type (new records, updates, schema changes, etc.).
      operationId: registerNewWebhook
      requestBody:
        required: true
        description: Registration body — shape depends on `event`.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/RecordCreateRegistration'
                - $ref: '#/components/schemas/RecordUpdateRegistration'
                - $ref: '#/components/schemas/RecordDeleteRegistration'
                - $ref: '#/components/schemas/TableCreateRegistration'
                - $ref: '#/components/schemas/TableUpdateRegistration'
                - $ref: '#/components/schemas/TableDeleteRegistration'
                - $ref: '#/components/schemas/ColumnCreateRegistration'
                - $ref: '#/components/schemas/ColumnUpdateRegistration'
                - $ref: '#/components/schemas/ColumnDeleteRegistration'
                - $ref: '#/components/schemas/BaseRecordsChangeRegistration'
                - $ref: '#/components/schemas/BaseSchemaChangeRegistration'
              discriminator:
                propertyName: event
                mapping:
                  record_create:
                    $ref: '#/components/schemas/RecordCreateRegistration'
                  record_update:
                    $ref: '#/components/schemas/RecordUpdateRegistration'
                  record_delete:
                    $ref: '#/components/schemas/RecordDeleteRegistration'
                  table_create:
                    $ref: '#/components/schemas/TableCreateRegistration'
                  table_update:
                    $ref: '#/components/schemas/TableUpdateRegistration'
                  table_delete:
                    $ref: '#/components/schemas/TableDeleteRegistration'
                  column_create:
                    $ref: '#/components/schemas/ColumnCreateRegistration'
                  column_update:
                    $ref: '#/components/schemas/ColumnUpdateRegistration'
                  column_delete:
                    $ref: '#/components/schemas/ColumnDeleteRegistration'
                  base_records_change:
                    $ref: '#/components/schemas/BaseRecordsChangeRegistration'
                  base_schema_change:
                    $ref: '#/components/schemas/BaseSchemaChangeRegistration'
            examples:
              watch_new_records:
                summary: Watch New Records
                value:
                  baseId: appkGlXEiufQLn1Qd
                  tableId: tblMHdKX6vN1Eci9x
                  event: record_create
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_updated_records:
                summary: Watch Updated Records
                value:
                  baseId: appkGlXEiufQLn1Qd
                  tableId: tblMHdKX6vN1Eci9x
                  event: record_update
                  columnId:
                    - fldAqLqTAgpBIv6HF
                    - fldAnotherColumnId
                  coalesceUpdates: false
                  webhookUrl: https://hook.eu2.make.com/your-unique-hook-id
              watch_deleted_records:
                summary: Watch Deleted Records
                value:
                  baseId: appkGlXEiufQLn1Qd
                  tableId: tblMHdKX6vN1Eci9x
                  event: record_delete
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_new_tables:
                summary: Watch New Tables
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: table_create
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_updated_tables:
                summary: Watch Updated Tables
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: table_update
                  tableId:
                    - tblMHdKX6vN1Eci9x
                    - tblAnotherTableId
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_deleted_tables:
                summary: Watch Deleted Tables
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: table_delete
                  tableId:
                    - tblMHdKX6vN1Eci9x
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_new_columns:
                summary: Watch New Columns
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: column_create
                  tableId:
                    - tblMHdKX6vN1Eci9x
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_updated_columns:
                summary: Watch Updated Columns
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: column_update
                  tableId:
                    - tblMHdKX6vN1Eci9x
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_deleted_columns:
                summary: Watch Deleted Columns
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: column_delete
                  tableId:
                    - tblMHdKX6vN1Eci9x
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_base_record_changes:
                summary: Watch Base Record Changes
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: base_records_change
                  coalesceUpdates: true
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              watch_base_schema_changes:
                summary: Watch Base Schema Changes
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: base_schema_change
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
      responses:
        '200':
          description: Webhook registered.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  webhookId:
                    type: string
                required:
                  - message
                  - webhookId
                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'
      security:
        - apiKey: []
components:
  schemas:
    RecordCreateRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
        event:
          type: string
          enum:
            - record_create
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - tableId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch New Records
    RecordUpdateRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
        event:
          type: string
          enum:
            - record_update
        columnId:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
        coalesceUpdates:
          type: boolean
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - tableId
        - event
        - columnId
        - webhookUrl
      additionalProperties: false
      title: Watch Updated Records
    RecordDeleteRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
        event:
          type: string
          enum:
            - record_delete
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - tableId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Deleted Records
    TableCreateRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - table_create
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch New Tables
    TableUpdateRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - table_update
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
            - nullable: true
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Updated Tables
    TableDeleteRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - table_delete
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
            - nullable: true
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Deleted Tables
    ColumnCreateRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - column_create
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
            - nullable: true
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch New Columns
    ColumnUpdateRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - column_update
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
            - nullable: true
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Updated Columns
    ColumnDeleteRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - column_delete
        tableId:
          anyOf:
            - type: string
            - type: array
              items:
                type: string
            - nullable: true
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Deleted Columns
    BaseRecordsChangeRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - base_records_change
        coalesceUpdates:
          type: boolean
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Base Record Changes
    BaseSchemaChangeRegistration:
      type: object
      properties:
        baseId:
          type: string
          minLength: 1
        event:
          type: string
          enum:
            - base_schema_change
        webhookUrl:
          type: string
          minLength: 1
      required:
        - baseId
        - event
        - webhookUrl
      additionalProperties: false
      title: Watch Base Schema Changes
    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).

````