Skip to main content

Ingest table webhook payload

Public ingest endpoint for table records. Authenticate with the table webhook token, not a developer API key.

POST/api/webhooks/tables/{table_id}/ingest
Scope webhook token (x-autotouch-token header or token query param)Updated September 27, 2026

This page documents the canonical HTTP contract. Switch to the CLI example when you want the operator workflow.

Authenticates with the table webhook token, not a developer API key. Send it in the x-autotouch-token header, or as token, webhook_token, or x-autotouch-token query parameter. The header wins. Query tokens can be retained in logs and provider settings, so treat these URLs as secrets.

The body may be a JSON array of objects, an object with a records array, an object with one record, or a single record object. Every complete incoming record is stored in the table’s webhook_payload JSON column. Existing matching column keys are mapped; missing keys may create columns except for event-stream tables. Empty request bodies, invalid JSON, non-object payloads/records, or zero records return 400; an empty object is accepted as a record. Invalid, deleting, or missing tables are acknowledged with 202 and an ignored result.

Path parameters

  • table_idrequired

    string

    Target table ID.

Query parameters

  • token · optional

    string

    Token fallback accepted from query string when the header is unavailable. The x-autotouch-token header takes precedence.

  • webhook_token · optional

    string

    Alias token query parameter.

  • x-autotouch-token · optional

    string

    Query parameter with the same name as the preferred token header.

Body parameters

  • records · optional

    array<object>

    Optional array of record objects. Each item must be an object; the array must not be empty.

  • record · optional

    object

    Alternative single record object.

  • <top-level object> · optional

    object

    Alternative single record object. A top-level JSON array is also accepted.

Errors

StatusMeaning
400Empty/invalid JSON, non-object payload, or empty records list.
401Missing or invalid webhook token.
403Webhook token is not configured.
404Webhook is not configured or enabled for this table.
409Duplicate settings are invalid or table rows are busy; retry after resolving the condition.
500Could not create the webhook payload column.
202Webhook ignored when table is missing/deleting/deleted.

Docs