> ## 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 new webhook

> This endpoint allows for the registration of a new webhook for specific events.



## 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 & 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:
  /webhooks/register:
    post:
      tags:
        - Webhooks
      summary: Register a new webhook
      description: >-
        This endpoint allows for the registration of a new webhook for specific
        events.
      operationId: registerNewWebhook
      requestBody:
        description: Webhook registration details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRegistration'
            examples:
              record_create:
                summary: Example for a record create event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  tableId: tblMHdKX6vN1Eci9x
                  event: record_create
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              record_update:
                summary: Example for a record update event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  tableId: tblMHdKX6vN1Eci9x
                  event: record_update
                  columnId:
                    - fldAqLqTAgpBIv6HF
                    - fldAnotherColumnId
                  coalesceUpdates: false
                  webhookUrl: https://hook.eu2.make.com/your-unique-hook-id
              record_delete:
                summary: Example for a record delete event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  tableId: tblMHdKX6vN1Eci9x
                  event: record_delete
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              table_create:
                summary: Example for a table create event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: table_create
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              table_update:
                summary: Example for a table update event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: table_update
                  tableId:
                    - tblMHdKX6vN1Eci9x
                    - tblAnotherTableId
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              table_delete:
                summary: Example for a table delete event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: table_delete
                  tableId:
                    - tblMHdKX6vN1Eci9x
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              column_create:
                summary: Example for a column create event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: column_create
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              column_update:
                summary: Example for a column update event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: column_update
                  tableId:
                    - tblMHdKX6vN1Eci9x
                    - tblAnotherTableId
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              column_delete:
                summary: Example for a column delete event
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: column_delete
                  tableId:
                    - tblMHdKX6vN1Eci9x
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              base_records_change:
                summary: Example for base-wide record changes
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: base_records_change
                  coalesceUpdates: true
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
              base_schema_change:
                summary: Example for base-wide schema changes
                value:
                  baseId: appkGlXEiufQLn1Qd
                  event: base_schema_change
                  webhookUrl: https://hook.eu1.make.com/your-unique-hook-id
      responses:
        '200':
          description: Webhook registered successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: >-
                      Successfully registered new webhook for event:
                      record_create.
                  webhookId:
                    type: string
                    format: uuid
                    example: 20c775ff-666c-42d7-b4db-26e4af4e43c7
        '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'
        '403':
          description: Forbidden, access is denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    WebhookRegistration:
      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'
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          example: 'Missing required fields: [tableId, event]'
    RecordCreateRegistration:
      type: object
      title: Watch New Records
      required:
        - baseId
        - tableId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        tableId:
          type: string
          description: The ID of the Airtable table.
          example: tblMHdKX6vN1Eci9x
        event:
          type: string
          enum:
            - record_create
          description: Always "record_create".
          example: record_create
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    RecordUpdateRegistration:
      type: object
      title: Watch Updated Records
      required:
        - baseId
        - tableId
        - event
        - columnId
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        tableId:
          type: string
          description: The ID of the Airtable table.
          example: tblMHdKX6vN1Eci9x
        event:
          type: string
          enum:
            - record_update
          description: Always "record_update".
          example: record_update
        columnId:
          type: array
          items:
            type: string
          description: An array of column IDs to watch for updates.
          example:
            - fldAqLqTAgpBIv6HF
            - fldAnotherColumnId
        coalesceUpdates:
          type: boolean
          description: >-
            If true, rapid updates to the same record will be grouped together
            into a single webhook payload.
          example: false
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu2.make.com/your-unique-hook-id
    RecordDeleteRegistration:
      type: object
      title: Watch Deleted Records
      required:
        - baseId
        - tableId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        tableId:
          type: string
          description: The ID of the Airtable table.
          example: tblMHdKX6vN1Eci9x
        event:
          type: string
          enum:
            - record_delete
          description: Always "record_delete".
          example: record_delete
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    TableCreateRegistration:
      type: object
      title: Watch New Tables
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - table_create
          description: Always "table_create". Watches the entire base for new tables.
          example: table_create
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    TableUpdateRegistration:
      type: object
      title: Watch Updated Tables
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - table_update
          description: Always "table_update".
          example: table_update
        tableId:
          type: array
          items:
            type: string
          description: >-
            Optional array of table IDs to watch. Omit or pass null/empty array
            to watch all tables.
          example:
            - tblMHdKX6vN1Eci9x
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    TableDeleteRegistration:
      type: object
      title: Watch Deleted Tables
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - table_delete
          description: Always "table_delete".
          example: table_delete
        tableId:
          type: array
          items:
            type: string
          description: >-
            Optional array of table IDs to watch. Omit or pass null/empty array
            to watch all tables.
          example:
            - tblMHdKX6vN1Eci9x
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    ColumnCreateRegistration:
      type: object
      title: Watch New Columns
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - column_create
          description: Always "column_create".
          example: column_create
        tableId:
          type: array
          items:
            type: string
          description: >-
            Optional array of table IDs to watch. Omit or pass null/empty array
            to watch all tables.
          example:
            - tblMHdKX6vN1Eci9x
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    ColumnUpdateRegistration:
      type: object
      title: Watch Updated Columns
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - column_update
          description: Always "column_update".
          example: column_update
        tableId:
          type: array
          items:
            type: string
          description: >-
            Optional array of table IDs to watch. Omit or pass null/empty array
            to watch all tables.
          example:
            - tblMHdKX6vN1Eci9x
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    ColumnDeleteRegistration:
      type: object
      title: Watch Deleted Columns
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - column_delete
          description: Always "column_delete".
          example: column_delete
        tableId:
          type: array
          items:
            type: string
          description: >-
            Optional array of table IDs to watch. Omit or pass null/empty array
            to watch all tables.
          example:
            - tblMHdKX6vN1Eci9x
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    BaseRecordsChangeRegistration:
      type: object
      title: Watch Base Record Changes
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - base_records_change
          description: >
            Always "base_records_change". Watches new, updated, and deleted
            records in every table of the base.

            Outgoing payloads still use granular event types (`create`,
            `update`, `delete`) — not `base_records_change`.
          example: base_records_change
        coalesceUpdates:
          type: boolean
          description: >-
            If true, rapid updates to the same record are grouped into a single
            webhook payload.
          example: false
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
    BaseSchemaChangeRegistration:
      type: object
      title: Watch Base Schema Changes
      required:
        - baseId
        - event
        - webhookUrl
      properties:
        baseId:
          type: string
          description: The ID of the Airtable base.
          example: appkGlXEiufQLn1Qd
        event:
          type: string
          enum:
            - base_schema_change
          description: >
            Always "base_schema_change". Watches all table and column create,
            update, and delete events in the base.

            Outgoing payloads use granular schema event types (e.g.
            `table_create`, `column_update`).
          example: base_schema_change
        webhookUrl:
          type: string
          format: uri
          description: The URL to which the webhook notifications will be sent.
          example: https://hook.eu1.make.com/your-unique-hook-id
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API key for authentication.

````