Airtable · Schema
Airtable Webhook
An Airtable webhook subscription that monitors a base for changes and sends notifications to a specified URL. Webhooks expire after 7 days and must be periodically refreshed.
ApplicationsCollaborationDataDatabasesLow-CodeProductivitySpreadsheets
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier for the webhook. |
| type | string | The type of webhook (e.g., client). |
| isHookEnabled | boolean | Whether the webhook is currently active and will process events. |
| notificationUrl | stringnull | The URL that receives POST notifications when monitored changes occur. |
| cursorForNextPayload | integer | The cursor position indicating the next unread payload. Used when polling for payloads. |
| areNotificationsEnabled | boolean | Whether HTTP notifications are currently being sent to the notification URL. |
| createdTime | string | The time when the webhook was created. |
| expirationTime | string | The time when the webhook will expire if not refreshed. Webhooks expire 7 days after creation or last refresh. |
| specification | object | The specification defining which changes the webhook monitors, including data types, field filters, and source options. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.airtable.com/webhook.json",
"title": "Airtable Webhook",
"description": "An Airtable webhook subscription that monitors a base for changes and sends notifications to a specified URL. Webhooks expire after 7 days and must be periodically refreshed.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the webhook."
},
"type": {
"type": "string",
"description": "The type of webhook (e.g., client)."
},
"isHookEnabled": {
"type": "boolean",
"description": "Whether the webhook is currently active and will process events."
},
"notificationUrl": {
"type": ["string", "null"],
"format": "uri",
"description": "The URL that receives POST notifications when monitored changes occur."
},
"cursorForNextPayload": {
"type": "integer",
"description": "The cursor position indicating the next unread payload. Used when polling for payloads."
},
"areNotificationsEnabled": {
"type": "boolean",
"description": "Whether HTTP notifications are currently being sent to the notification URL."
},
"createdTime": {
"type": "string",
"format": "date-time",
"description": "The time when the webhook was created."
},
"expirationTime": {
"type": "string",
"format": "date-time",
"description": "The time when the webhook will expire if not refreshed. Webhooks expire 7 days after creation or last refresh."
},
"specification": {
"type": "object",
"description": "The specification defining which changes the webhook monitors, including data types, field filters, and source options.",
"properties": {
"options": {
"type": "object",
"properties": {
"filters": {
"type": "object",
"properties": {
"dataTypes": {
"type": "array",
"description": "The types of data changes to monitor.",
"items": {
"type": "string",
"enum": ["tableData", "tableFields", "tableMetadata"]
}
},
"recordChangeScope": {
"type": "string",
"description": "The scope of record changes to monitor."
},
"watchDataInFieldIds": {
"type": "array",
"description": "Specific field IDs to watch for data changes.",
"items": {
"type": "string"
}
},
"watchSchemasOfFieldIds": {
"type": "array",
"description": "Specific field IDs to watch for schema changes.",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
},
"required": ["id", "type"],
"additionalProperties": false
}