Browse API guides
API reference
Explore the versioned request and response schemas generated from public routes.
Read as MarkdownUse the generated contract
The server-to-server base URL is https://api.lineblink.com/v1/external. The generated OpenAPI document defines supported routes, validation rules, response envelopes and required scopes. Reference operations below use the same source as route validation.
Do not send a production key from this public page. Copy an example into your trusted server environment and replace its placeholders there.
Response conventions
Dates and timestamps use ISO 8601; mutation timestamps and event occurrence times are UTC. Null means an explicitly absent value. A guest identity field may be omitted when the key lacks its sensitive-data scope.
Success envelopes keep resource names such as entry, entries, businesses and queues. List responses provide nextCursor where pagination applies. Errors provide a stable code, safe error message and requestId.
Endpoints
Send requests to https://api.lineblink.com/v1/external. Each endpoint requires a bearer API key.
Test and identify a connection
GET/me
Required scope: Any active authorized key
Returns only the authenticated connection. Plan eligibility applies.
Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"integrationType": {
"type": "string",
"enum": [
"api",
"zapier"
]
},
"tenant": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
"scopes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"waitlist:read",
"waitlist:write",
"guest:read",
"events:read",
"webhooks:read",
"webhooks:write",
"analytics:read"
]
}
},
"restrictions": {
"type": "object",
"properties": {
"businessIds": {
"type": "array",
"items": {
"type": "string"
}
},
"queueIds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"businessIds",
"queueIds"
],
"additionalProperties": false
},
"capabilities": {
"type": "object",
"properties": {
"publicApiEnabled": {
"type": "boolean"
},
"zapierEnabled": {
"type": "boolean"
},
"webhooksEnabled": {
"type": "boolean"
},
"canManageIntegrations": {
"type": "boolean"
},
"unavailableReason": {
"anyOf": [
{
"type": "string",
"enum": [
"launch_disabled",
"billing_unavailable",
"disabled_account",
"demo_account",
"subscription_required",
"upgrade_required",
"email_verification_required",
"management_forbidden"
]
},
{
"type": "null"
}
]
},
"limits": {
"type": "object",
"properties": {
"readsPerMinute": {
"type": "number"
},
"writesPerMinute": {
"type": "number"
},
"tenantReadsPerMinute": {
"type": "number"
},
"tenantWritesPerMinute": {
"type": "number"
},
"activeKeys": {
"type": "number"
},
"webhookSubscriptions": {
"type": "number"
},
"defaultKeyExpiryDays": {
"type": "number"
},
"maximumKeyExpiryDays": {
"type": "number"
}
},
"required": [
"readsPerMinute",
"writesPerMinute",
"tenantReadsPerMinute",
"tenantWritesPerMinute",
"activeKeys",
"webhookSubscriptions",
"defaultKeyExpiryDays",
"maximumKeyExpiryDays"
],
"additionalProperties": false
},
"migrationExpiresAt": {
"type": [
"string",
"null"
]
}
},
"required": [
"publicApiEnabled",
"zapierEnabled",
"webhooksEnabled",
"canManageIntegrations",
"unavailableReason",
"limits"
],
"additionalProperties": false
},
"limits": {
"type": "object",
"properties": {
"readsPerMinute": {
"type": "number"
},
"writesPerMinute": {
"type": "number"
},
"tenantReadsPerMinute": {
"type": "number"
},
"tenantWritesPerMinute": {
"type": "number"
},
"activeKeys": {
"type": "number"
},
"webhookSubscriptions": {
"type": "number"
},
"defaultKeyExpiryDays": {
"type": "number"
},
"maximumKeyExpiryDays": {
"type": "number"
}
},
"required": [
"readsPerMinute",
"writesPerMinute",
"tenantReadsPerMinute",
"tenantWritesPerMinute",
"activeKeys",
"webhookSubscriptions",
"defaultKeyExpiryDays",
"maximumKeyExpiryDays"
],
"additionalProperties": false
}
},
"required": [
"integrationType",
"tenant",
"scopes",
"restrictions",
"capabilities",
"limits"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}List available businesses
GET/waitlist/businesses
Required scope: waitlist:read
Requires waitlist:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| cursor | query | No |
| limit | query | Yes |
Parameter schemas and limits
[
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 1024
}
},
{
"name": "limit",
"in": "query",
"required": true,
"schema": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"businesses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"timeZone": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"baseDurationMinutes": {
"type": "number"
},
"isActive": {
"type": "boolean"
}
},
"required": [
"id",
"serviceName",
"baseDurationMinutes",
"isActive"
],
"additionalProperties": false
}
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"number",
"select"
]
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"label",
"type",
"required"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"name",
"slug",
"timeZone",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"businesses",
"nextCursor"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Get a business and join requirements
GET/waitlist/businesses/{businessId}
Required scope: waitlist:read
Requires waitlist:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| businessId | path | Yes |
Parameter schemas and limits
[
{
"name": "businessId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"business": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"timeZone": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"baseDurationMinutes": {
"type": "number"
},
"isActive": {
"type": "boolean"
}
},
"required": [
"id",
"serviceName",
"baseDurationMinutes",
"isActive"
],
"additionalProperties": false
}
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"number",
"select"
]
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"label",
"type",
"required"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"name",
"slug",
"timeZone",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
},
"required": [
"business"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}List business lines
GET/waitlist/queues
Required scope: waitlist:read
Requires waitlist:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| cursor | query | No |
| limit | query | Yes |
| businessId | query | Yes |
Parameter schemas and limits
[
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 1024
}
},
{
"name": "limit",
"in": "query",
"required": true,
"schema": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
{
"name": "businessId",
"in": "query",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"queues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"businessId": {
"type": "string"
},
"name": {
"type": "string"
},
"activeGuests": {
"type": "number"
},
"averageWaitMinutes": {
"type": "number"
},
"timeZone": {
"type": [
"string",
"null"
]
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"baseDurationMinutes": {
"type": "number"
},
"isActive": {
"type": "boolean"
}
},
"required": [
"id",
"serviceName",
"baseDurationMinutes",
"isActive"
],
"additionalProperties": false
}
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"number",
"select"
]
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"label",
"type",
"required"
],
"additionalProperties": false
}
},
"workingHours": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"days": {
"type": "object",
"properties": {
"mon": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"tue": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"wed": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"thu": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"fri": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sat": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sun": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
}
},
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"additionalProperties": false
}
},
"required": [
"enabled",
"start",
"end",
"days"
],
"additionalProperties": false
},
"availability": {
"type": "object",
"properties": {
"walkInsEnabled": {
"type": "boolean"
},
"walkInsPaused": {
"type": "boolean"
},
"bookingsEnabled": {
"type": "boolean"
},
"bookingsPaused": {
"type": "boolean"
},
"bookingWindow": {
"type": "string",
"const": "same_business_day"
},
"bookingSlotMinutes": {
"type": "number"
},
"bookingHours": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"days": {
"type": "object",
"properties": {
"mon": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"tue": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"wed": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"thu": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"fri": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sat": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sun": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
}
},
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"additionalProperties": false
}
},
"required": [
"enabled",
"start",
"end",
"days"
],
"additionalProperties": false
}
},
"required": [
"walkInsEnabled",
"walkInsPaused",
"bookingsEnabled",
"bookingsPaused",
"bookingWindow",
"bookingSlotMinutes",
"bookingHours"
],
"additionalProperties": false
}
},
"required": [
"id",
"businessId",
"name",
"activeGuests",
"averageWaitMinutes",
"timeZone",
"services",
"customFields",
"workingHours",
"availability"
],
"additionalProperties": false
}
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"queues",
"nextCursor"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Get line services, fields and availability
GET/waitlist/queues/{queueId}
Required scope: waitlist:read
Requires waitlist:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| queueId | path | Yes |
Parameter schemas and limits
[
{
"name": "queueId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"queue": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"businessId": {
"type": "string"
},
"name": {
"type": "string"
},
"activeGuests": {
"type": "number"
},
"averageWaitMinutes": {
"type": "number"
},
"timeZone": {
"type": [
"string",
"null"
]
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"serviceName": {
"type": "string"
},
"baseDurationMinutes": {
"type": "number"
},
"isActive": {
"type": "boolean"
}
},
"required": [
"id",
"serviceName",
"baseDurationMinutes",
"isActive"
],
"additionalProperties": false
}
},
"customFields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text",
"number",
"select"
]
},
"required": {
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"value",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"label",
"type",
"required"
],
"additionalProperties": false
}
},
"workingHours": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"days": {
"type": "object",
"properties": {
"mon": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"tue": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"wed": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"thu": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"fri": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sat": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sun": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
}
},
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"additionalProperties": false
}
},
"required": [
"enabled",
"start",
"end",
"days"
],
"additionalProperties": false
},
"availability": {
"type": "object",
"properties": {
"walkInsEnabled": {
"type": "boolean"
},
"walkInsPaused": {
"type": "boolean"
},
"bookingsEnabled": {
"type": "boolean"
},
"bookingsPaused": {
"type": "boolean"
},
"bookingWindow": {
"type": "string",
"const": "same_business_day"
},
"bookingSlotMinutes": {
"type": "number"
},
"bookingHours": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"days": {
"type": "object",
"properties": {
"mon": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"tue": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"wed": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"thu": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"fri": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sat": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
},
"sun": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"enabled",
"start",
"end"
],
"additionalProperties": false
}
},
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"additionalProperties": false
}
},
"required": [
"enabled",
"start",
"end",
"days"
],
"additionalProperties": false
}
},
"required": [
"walkInsEnabled",
"walkInsPaused",
"bookingsEnabled",
"bookingsPaused",
"bookingWindow",
"bookingSlotMinutes",
"bookingHours"
],
"additionalProperties": false
}
},
"required": [
"id",
"businessId",
"name",
"activeGuests",
"averageWaitMinutes",
"timeZone",
"services",
"customFields",
"workingHours",
"availability"
],
"additionalProperties": false
}
},
"required": [
"queue"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}List entries or find an external reference
GET/waitlist/entries
Required scope: waitlist:read
Requires waitlist:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| cursor | query | No |
| limit | query | Yes |
| queueId | query | No |
| externalReference | query | No |
| statuses | query | No |
| updatedAfter | query | No |
Parameter schemas and limits
[
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 1024
}
},
{
"name": "limit",
"in": "query",
"required": true,
"schema": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
{
"name": "queueId",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "externalReference",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "statuses",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 160
}
},
{
"name": "updatedAfter",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"queueId": {
"type": "string"
},
"businessId": {
"type": "string"
},
"externalReference": {
"type": [
"string",
"null"
]
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"quotedWaitMinutes": {
"type": "number"
},
"joinedAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"isBooking": {
"type": "boolean"
},
"scheduledFor": {
"type": [
"string",
"null"
]
},
"customData": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{0,47}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
}
]
}
},
"fullName": {
"type": "string"
},
"phoneCountryCode": {
"type": [
"string",
"null"
]
},
"phoneNumber": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"queueId",
"businessId",
"externalReference",
"version",
"status",
"quotedWaitMinutes",
"joinedAt",
"updatedAt",
"isBooking",
"scheduledFor",
"customData"
],
"additionalProperties": false
}
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"entries",
"nextCursor"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Create a guest or same-day booking
POST/waitlist/entries
Required scope: waitlist:write
Requires waitlist:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"fullName": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"phoneCountryCode": {
"type": "string",
"maxLength": 8
},
"phoneNumber": {
"type": "string",
"maxLength": 32
},
"customData": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{0,47}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
}
]
}
},
"queueId": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"serviceTypeId": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"quotedWaitMinutes": {
"type": "integer",
"minimum": 0,
"maximum": 43200
},
"externalReference": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"smsConsent": {
"type": "object",
"properties": {
"source": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"consentedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"disclosureVersion": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"source",
"consentedAt",
"disclosureVersion"
],
"additionalProperties": false
},
"isBooking": {
"type": "boolean"
},
"scheduledFor": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"fullName",
"queueId"
],
"additionalProperties": false,
"description": "Bookings require isBooking and scheduledFor together and are limited to the current business-local day. Phone fields must be supplied together. SMS requires explicit consent with a timestamp no later than now. Custom data allows at most 12 configured scalar fields."
}Response schemas and errors
{
"201": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entry": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"guestId": {
"type": "string"
},
"bookingId": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"guestId",
"bookingId"
],
"additionalProperties": false
}
},
"required": [
"entry"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Look up an entry or booking
GET/waitlist/entries/{entryId}
Required scope: waitlist:read
Requires waitlist:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| entryId | path | Yes |
Parameter schemas and limits
[
{
"name": "entryId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entry": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"queueId": {
"type": "string"
},
"businessId": {
"type": "string"
},
"externalReference": {
"type": [
"string",
"null"
]
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"quotedWaitMinutes": {
"type": "number"
},
"joinedAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"isBooking": {
"type": "boolean"
},
"scheduledFor": {
"type": [
"string",
"null"
]
},
"customData": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{0,47}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
}
]
}
},
"fullName": {
"type": "string"
},
"phoneCountryCode": {
"type": [
"string",
"null"
]
},
"phoneNumber": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"queueId",
"businessId",
"externalReference",
"version",
"status",
"quotedWaitMinutes",
"joinedAt",
"updatedAt",
"isBooking",
"scheduledFor",
"customData"
],
"additionalProperties": false
}
},
"required": [
"entry"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Update supported guest fields
PATCH/waitlist/entries/{entryId}
Required scope: waitlist:write
Requires waitlist:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| entryId | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "entryId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"fullName": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"phoneCountryCode": {
"type": "string",
"maxLength": 8
},
"phoneNumber": {
"type": "string",
"maxLength": 32
},
"customData": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{0,47}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
}
]
}
},
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"expectedVersion"
],
"additionalProperties": false
}Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entry": {
"type": "object",
"properties": {
"entryId": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"entryId",
"version"
],
"additionalProperties": false
}
},
"required": [
"entry"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Change an entry status
PATCH/waitlist/entries/{entryId}/status
Required scope: waitlist:write
Requires waitlist:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| entryId | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "entryId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"expectedStatus": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"reason": {
"type": "string",
"maxLength": 300
}
},
"required": [
"status",
"expectedStatus"
],
"additionalProperties": false
}Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entry": {
"type": "object",
"properties": {
"entryId": {
"type": "string"
},
"fromStatus": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"toStatus": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"entryId",
"fromStatus",
"toStatus"
],
"additionalProperties": false
}
},
"required": [
"entry"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Reschedule a same-day booking
POST/bookings/{entryId}/reschedule
Required scope: waitlist:write
Requires waitlist:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| entryId | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "entryId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"scheduledFor",
"expectedVersion"
],
"additionalProperties": false
}Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entry": {
"type": "object",
"properties": {
"entryId": {
"type": "string"
},
"scheduledFor": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"entryId",
"scheduledFor",
"version"
],
"additionalProperties": false
}
},
"required": [
"entry"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Cancel an active booking
POST/bookings/{entryId}/cancel
Required scope: waitlist:write
Requires waitlist:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| entryId | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "entryId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"expectedStatus": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"expectedVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"reason": {
"type": "string",
"maxLength": 300
}
},
"required": [
"expectedStatus",
"expectedVersion"
],
"additionalProperties": false
}Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"entry": {
"type": "object",
"properties": {
"entryId": {
"type": "string"
},
"fromStatus": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"toStatus": {
"type": "string",
"enum": [
"waiting",
"ready",
"confirmed",
"in_service",
"completed",
"cancelled",
"no_show"
]
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"entryId",
"fromStatus",
"toStatus"
],
"additionalProperties": false
}
},
"required": [
"entry"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Summarize retained entries joined in a UTC date range
GET/analytics/summary
Required scope: analytics:read
Requires analytics:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| businessId | query | No |
| queueId | query | No |
| from | query | Yes |
| to | query | Yes |
Parameter schemas and limits
[
{
"name": "businessId",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "queueId",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
{
"name": "from",
"in": "query",
"required": true,
"schema": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
{
"name": "to",
"in": "query",
"required": true,
"schema": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
},
"timeZone": {
"type": "string",
"const": "UTC"
},
"businessId": {
"type": [
"string",
"null"
]
},
"queueId": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "object",
"properties": {
"joins": {
"type": "number"
},
"completed": {
"type": "number"
},
"cancelled": {
"type": "number"
},
"noShows": {
"type": "number"
},
"active": {
"type": "number"
},
"avgWaitMinutes": {
"type": "number"
},
"completionRate": {
"type": "number"
}
},
"required": [
"joins",
"completed",
"cancelled",
"noShows",
"active",
"avgWaitMinutes",
"completionRate"
],
"additionalProperties": false
}
},
"required": [
"from",
"to",
"timeZone",
"businessId",
"queueId",
"summary"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Read immutable events from the seven-day recovery window
GET/events
Required scope: events:read
Requires events:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| eventType | query | No |
| businessId | query | No |
| queueId | query | No |
| cursor | query | No |
| limit | query | Yes |
Parameter schemas and limits
[
{
"name": "eventType",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
}
},
{
"name": "businessId",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "queueId",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 2048
}
},
{
"name": "limit",
"in": "query",
"required": true,
"schema": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
},
"schemaVersion": {
"type": "number",
"const": 1
},
"occurredAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"tenantId": {
"type": "string"
},
"businessId": {
"type": [
"string",
"null"
]
},
"queueId": {
"type": "string"
},
"resourceId": {
"type": "string"
},
"resourceVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"data": {
"type": "object",
"properties": {
"entryId": {
"type": "string"
},
"status": {
"type": "string"
},
"previousStatus": {
"type": [
"string",
"null"
]
},
"scheduledFor": {
"type": [
"string",
"null"
]
},
"isBooking": {
"type": "boolean"
}
},
"required": [
"entryId"
],
"additionalProperties": false
}
},
"required": [
"id",
"type",
"schemaVersion",
"occurredAt",
"tenantId",
"businessId",
"queueId",
"resourceId",
"resourceVersion",
"data"
],
"additionalProperties": false
}
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"events",
"nextCursor"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}List subscriptions owned by this credential
GET/webhook-subscriptions
Required scope: webhooks:read
Requires webhooks:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| limit | query | Yes |
| cursor | query | No |
Parameter schemas and limits
[
{
"name": "limit",
"in": "query",
"required": true,
"schema": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 256
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"subscriptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"credentialId": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"zapier",
"custom"
]
},
"destination": {
"type": "string"
},
"eventTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
}
},
"businessId": {
"type": [
"string",
"null"
]
},
"queueId": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"disabled"
]
},
"pausedReason": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"secretRotatedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"credentialId",
"kind",
"destination",
"eventTypes",
"businessId",
"queueId",
"status",
"pausedReason",
"createdAt",
"updatedAt",
"secretRotatedAt"
],
"additionalProperties": false
}
},
"nextCursor": {
"type": [
"string",
"null"
]
},
"limits": {
"type": "object",
"properties": {
"subscriptions": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"subscriptions"
],
"additionalProperties": false
}
},
"required": [
"subscriptions",
"nextCursor",
"limits"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Create a Zapier REST Hook subscription
POST/webhook-subscriptions
Required scope: webhooks:write
Requires webhooks:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"kind": {
"default": "zapier",
"type": "string",
"enum": [
"zapier",
"custom"
]
},
"targetUrl": {
"type": "string",
"maxLength": 2048
},
"eventTypes": {
"minItems": 1,
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
}
},
"businessId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"queueId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"targetUrl",
"eventTypes"
],
"additionalProperties": false
}Response schemas and errors
{
"201": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"subscription": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"credentialId": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"zapier",
"custom"
]
},
"destination": {
"type": "string"
},
"eventTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
}
},
"businessId": {
"type": [
"string",
"null"
]
},
"queueId": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"disabled"
]
},
"pausedReason": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"secretRotatedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"credentialId",
"kind",
"destination",
"eventTypes",
"businessId",
"queueId",
"status",
"pausedReason",
"createdAt",
"updatedAt",
"secretRotatedAt"
],
"additionalProperties": false
},
"signingSecret": {
"type": "string"
}
},
"required": [
"subscription",
"signingSecret"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Pause, explicitly resume, or change event subscriptions
PATCH/webhook-subscriptions/{id}
Required scope: webhooks:write
Idempotency-Key is required when resuming or changing event types. A pause remains available after plan or credential access ends. Resume starts after a new event watermark and never replays the disabled period.
| Name | Location | Required |
|---|---|---|
| id | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Request body schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"active",
"paused"
]
},
"eventTypes": {
"minItems": 1,
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
}
}
},
"additionalProperties": false
}Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"subscription": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"credentialId": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"zapier",
"custom"
]
},
"destination": {
"type": "string"
},
"eventTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"waitlist.entry.created",
"waitlist.entry.status_changed",
"waitlist.entry.updated",
"booking.created",
"booking.rescheduled",
"booking.cancelled"
]
}
},
"businessId": {
"type": [
"string",
"null"
]
},
"queueId": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"disabled"
]
},
"pausedReason": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"secretRotatedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"credentialId",
"kind",
"destination",
"eventTypes",
"businessId",
"queueId",
"status",
"pausedReason",
"createdAt",
"updatedAt",
"secretRotatedAt"
],
"additionalProperties": false
}
},
"required": [
"subscription"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Disconnect a subscription
DELETE/webhook-subscriptions/{id}
Required scope: webhooks:write
Requires webhooks:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| id | path | Yes |
Parameter schemas and limits
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"deleted": {
"type": "boolean",
"const": true
}
},
"required": [
"deleted"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Inspect redacted delivery attempts
GET/webhook-subscriptions/{id}/deliveries
Required scope: webhooks:read
Requires webhooks:read. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| id | path | Yes |
| limit | query | Yes |
| cursor | query | No |
Parameter schemas and limits
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "limit",
"in": "query",
"required": true,
"schema": {
"default": 100,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string",
"maxLength": 256
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"deliveries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"eventId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"delivering",
"delivered",
"failed",
"cancelled"
]
},
"attemptCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"nextAttemptAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"lastStatus": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"lastError": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"id",
"eventId",
"status",
"attemptCount",
"nextAttemptAt",
"lastStatus",
"lastError",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"deliveries",
"nextCursor"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Queue a synthetic test without guest notifications
POST/webhook-subscriptions/{id}/test
Required scope: webhooks:write
Requires webhooks:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| id | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Response schemas and errors
{
"202": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"deliveryId": {
"type": "string"
}
},
"required": [
"deliveryId"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Replay an eligible delivery with the same event ID
POST/webhook-subscriptions/{id}/deliveries/{deliveryId}/retry
Required scope: webhooks:write
Requires webhooks:write. Resource restrictions and plan eligibility apply to every request.
| Name | Location | Required |
|---|---|---|
| id | path | Yes |
| deliveryId | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "deliveryId",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Response schemas and errors
{
"202": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"queued": {
"type": "boolean",
"const": true
}
},
"required": [
"queued"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}Rotate the signing secret with a 24-hour verification overlap
POST/webhook-subscriptions/{id}/rotate-secret
Required scope: webhooks:write
Zapier subscriptions return ZAPIER_RECONNECT_REQUIRED: disable and re-enable the Zap so its stored signing secret is replaced. Standalone rotation is reserved for controlled custom endpoints, which remain disabled.
| Name | Location | Required |
|---|---|---|
| id | path | Yes |
| Idempotency-Key | header | Yes |
Parameter schemas and limits
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
{
"name": "Idempotency-Key",
"in": "header",
"required": true,
"description": "Reuse the same value and request body for retries of one logical action.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[!-~]+$"
}
}
]Response schemas and errors
{
"200": {
"description": "Successful response",
"headers": {
"X-Request-Id": {
"description": "Support request identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"signingSecret": {
"type": "string"
},
"previousSecretExpiresAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
}
},
"required": [
"signingSecret",
"previousSecretExpiresAt"
],
"additionalProperties": false
}
}
}
},
"400": {
"description": "Invalid request or unsupported operation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"401": {
"description": "Missing, invalid, expired, or revoked API key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"402": {
"description": "A plan upgrade, payment, or guest allowance is required.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"403": {
"description": "Insufficient scope, resource access, or account eligibility.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"404": {
"description": "Resource not found or not accessible.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"409": {
"description": "Concurrent change or conflicting idempotency key. Fetch the current state before a new action.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"429": {
"description": "Rate limit exceeded. Wait for Retry-After seconds.",
"headers": {
"Retry-After": {
"description": "Seconds to wait before retrying.",
"schema": {
"type": "integer",
"minimum": 1
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
},
"503": {
"description": "Writes or delivery are temporarily unavailable. Retry only after recovery.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"code": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"error",
"code",
"requestId"
],
"additionalProperties": false
}
}
}
}
}