Skip to main content
POST
/
bases
/
{databaseId}
/
webhooks
Create webhook
curl --request POST \
  --url https://tables.fillout.com/api/v1/bases/{databaseId}/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "https://your-server.com/webhooks/fillout",
  "events": [
    "record.created",
    "record.updated",
    "record.deleted"
  ],
  "tableId": "tbl_abc123"
}
'
{
"id": 123,
"secret": "<string>"
}
Creates a new webhook subscription for the specified database. The webhook will receive HTTP POST notifications when the subscribed events occur.

Event Types

Subscribe to any combination of these events:
EventDescription
record.createdTriggered when new records are added
record.updatedTriggered when existing records are modified
record.deletedTriggered when records are deleted
table.createdTriggered when new tables are added
table.updatedTriggered when table properties change
table.deletedTriggered when tables are deleted
field.createdTriggered when new fields are added
field.updatedTriggered when field properties change
field.deletedTriggered when fields are deleted

Filtering by Table

Use the optional tableId parameter to receive events only for a specific table:
{
  "url": "https://your-server.com/webhook",
  "events": ["record.created", "record.updated"],
  "tableId": "tbl_abc123"
}
Omit tableId to receive events from all tables in the database.

Example: Subscribe to Record Changes

curl -X POST "https://tables.fillout.com/api/v1/bases/{databaseId}/webhooks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.com/webhooks/fillout",
    "events": ["record.created", "record.updated", "record.deleted"]
  }'
Response:
{
  "id": 123,
  "secret": "a1b2c3d4e5f6..."
}
Store the secret securely - it is only returned once on creation and cannot be retrieved later. You’ll need this secret to verify webhook signatures.

Authorizations

Authorization
string
header
required

Enter your Fillout API key. Format: Bearer <api_key>

Path Parameters

databaseId
string
required

The unique identifier of the database

Body

application/json
url
string<uri>
required

The URL to receive webhook POST requests

Maximum string length: 2048
events
enum<string>[]
required

Array of event types to subscribe to

Minimum array length: 1

The type of database event that triggers the webhook

Available options:
record.created,
record.updated,
record.deleted,
table.created,
table.updated,
table.deleted,
field.created,
field.updated,
field.deleted
tableId
string

Optional table ID to filter events. Omit to receive events from all tables.

Response

Webhook created successfully

id
integer
required

Unique identifier for the webhook

secret
string
required

The webhook secret for HMAC signature verification. Store this securely - it is only returned once on creation.