Web API

Press shift + S to search API reference.

Webhooks

List webhooks

gethttps://api.airtable.com/v0/bases/{baseId}/webhooks

Lists all webhooks that are registered for a base, along with their statuses.

Read level permissions are required in order to list webhooks.

Requirements

AuthenticationPersonal access token, OAuth integration
Scope

webhook:manage

User role

Base read-only

Billing plansAll plans

Path parameters

baseId
string

Response format

webhooks
array of the below object
id
string

An identifier for the webhook (WebhookId).

areNotificationsEnabled
boolean

Whether or not notifications are enabled for the webhook.

cursorForNextPayload
number

The cursor associated with the next payload that will be generated. This cursor will increase every time a new payload is generated for this webhook.

isHookEnabled
boolean

Whether or not the webhook is enabled. Webhooks may be turned off automatically such as when the specification becomes invalid. See error codes.

lastSuccessfulNotificationTime
string | null

An identifier for the created webhook.

notificationUrl
string | null

The url registered with the webhook. May be null if none was given.

expirationTime
optional<string>

The time when the webhook expires and is disabled in the ISO format. The webhook will not expire if this is null (in the case User API keys are used)

lastNotificationResult
Webhooks notification | null
specification
object

The specification registered with the webhook.

options
Webhooks specification
Request (example)
Copy
$
curl "https://api.airtable.com/v0/bases/{baseId}/webhooks" \
-H "Authorization: Bearer YOUR_TOKEN"
200 – Response (example)
{
"webhooks": [
{
"areNotificationsEnabled": false,
"cursorForNextPayload": 1,
"expirationTime": "2023-01-20T00:00:00.000Z",
"id": "ach00000000000000",
"isHookEnabled": true,
"lastNotificationResult": null,
"lastSuccessfulNotificationTime": null,
"notificationUrl": null,
"specification": {
"options": {
"filters": {
"dataTypes": [
"tableData"
],
"recordChangeScope": "tbltp8DGLhqbUmjK1"
}
}
}
}
]
}
Request (example)
Copy
$
curl "https://api.airtable.com/v0/bases/{baseId}/webhooks" \
-H "Authorization: Bearer YOUR_TOKEN"
200 – Response (example)
{
"webhooks": [
{
"areNotificationsEnabled": true,
"cursorForNextPayload": 1,
"expirationTime": "2023-01-20T00:00:00.000Z",
"id": "ach00000000000000",
"isHookEnabled": true,
"lastNotificationResult": {
"completionTimestamp": "2022-02-01T21:25:05.663Z",
"durationMs": 2.603,
"retryNumber": 0,
"success": true
},
"lastSuccessfulNotificationTime": "2022-02-01T21:25:05.663Z",
"notificationUrl": "https://foo.com/receive-ping",
"specification": {
"options": {
"filters": {
"dataTypes": [
"tableData"
],
"recordChangeScope": "tbltp8DGLhqbUmjK1"
}
}
}
},
{
"areNotificationsEnabled": true,
"cursorForNextPayload": 1,
"expirationTime": "2023-01-25T00:00:00.000Z",
"id": "ach00000000000001",
"isHookEnabled": true,
"lastNotificationResult": {
"completionTimestamp": "2022-02-01T21:25:05.663Z",
"durationMs": 2.603,
"error": {
"message": "The HTTP request returned a 503 status code instead of 200 or 204"
},
"retryNumber": 0,
"success": false,
"willBeRetried": true
},
"lastSuccessfulNotificationTime": null,
"notificationUrl": "https://foo.com/receive-ping",
"specification": {
"options": {
"filters": {
"dataTypes": [
"tableData"
],
"recordChangeScope": "tbltp8DGLhqbUmjK1"
}
}
}
}
]
}