Webhook subscriptions
Subscribe to booking events and have Meetzi POST each event to your callback URL. Each subscription selects one event type and optionally one owned booking page.
Create a subscription
/v1/subscriptionsBearer tokenRequest body
Send JSON with Content-Type: application/json.
| Field | Type | Required | Description |
|---|---|---|---|
trigger_type | string | Yes | One of new_booking, booking_cancelled, or booking_updated. |
target_url | string (URL) | Yes | An absolute callback URL. Use an HTTPS URL for your receiver. |
booking_page_id | string (UUID) or null | No | An owned, non-deleted booking page. Omit or use null to subscribe to all pages owned by the user. An empty string is invalid. |
external_id | string or null | No | Optional identifier stored with the subscription. It is not included in the response or delivered booking payload. |
The API validates target_url as a URL. You are responsible for choosing a reachable receiver you control.
curl --request POST 'https://api.meetzi.co/v1/subscriptions' \
--header "Authorization: Bearer $MEETZI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"trigger_type": "new_booking",
"target_url": "https://example.com/webhooks/meetzi",
"booking_page_id": "33333333-3333-4333-8333-333333333333"
}'For all owned pages:
{
"trigger_type": "booking_updated",
"target_url": "https://example.com/webhooks/meetzi",
"booking_page_id": null
}Response
201 Created · Store id so you can later remove the subscription.
{
"id": "66666666-6666-4666-8666-666666666666",
"is_active": true
}| Field | Type | Description |
|---|---|---|
id | string | Subscription ID. |
is_active | boolean | Whether the subscription is active. |
If an active subscription already has the same user, event type, callback URL, and page filter, the existing subscription is returned with 201. This does not update its external_id or other stored fields. A different event type, URL, or page filter creates a separate subscription.
Errors
| Status | Meaning |
|---|---|
400 | Invalid JSON fields; message Invalid Zapier subscription request. |
401 | Missing, invalid, or revoked API key. |
404 | Booking page not found: the selected page is missing, deleted, or not owned by the user. |
500 | Authentication failure, or Failed to create Zapier subscription. |
Delete a subscription
/v1/subscriptions/{id}Bearer tokenDeactivate an active subscription owned by the connected user. The subscription record is retained, but future events no longer use it.
| Path parameter | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | The subscription ID returned by the creation endpoint. |
Send no request body.
curl --request DELETE \
'https://api.meetzi.co/v1/subscriptions/66666666-6666-4666-8666-666666666666' \
--header "Authorization: Bearer $MEETZI_API_KEY"Response
204 No Content · The response body is empty; do not parse it as JSON.
A second deletion of the same subscription returns 404, since only active subscriptions can be deactivated.
Errors
| Status | Meaning |
|---|---|
400 | The ID is not a UUID; message Invalid Zapier subscription id. |
401 | Missing, invalid, or revoked API key. |
404 | Subscription not found: missing, already inactive, or owned by someone else. |
500 | Authentication failure, or Failed to delete Zapier subscription. |
Continue with webhook delivery to understand the event body and receiver behavior.