Skip to content
Webhook Subscriptions

List webhook subscriptions

GET
/webhook_subscriptions
const url = 'https://api.kirimdev.com/v1/webhook_subscriptions?status=active&limit=25&cursor=eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQ';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}

List webhook subscriptions in this organization, newest first. Omit status to return all states, or filter to one lifecycle state; paginate with the opaque cursor returned by the previous page.

status

Filter by subscription lifecycle state. Omit to return all states.

string
Allowed values: active paused disabled all
Example
active

Filter by subscription lifecycle state. Omit to return all states.

limit

Number of items to return. Defaults to 25; minimum 1 and maximum 100.

string
default: 25 /^\d+$/
Example
25

Number of items to return. Defaults to 25; minimum 1 and maximum 100.

cursor

Opaque continuation token from the previous response’s next_cursor. Pass it unchanged and keep all other filters the same.

string
>= 1 characters
Example
eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQ

Opaque continuation token from the previous response’s next_cursor. Pass it unchanged and keep all other filters the same.

Subscription list

Media type application/json
object
data
required

Items in this page, ordered as documented by the operation.

Array<object>
object
id
required
string
object
required
string
Allowed values: webhook_subscription
url
required
string format: uri
description
required
string | null
events
required
Array<string>
phone_number_ids
required

Optional whitelist of Meta business_phone_number_id values. When null (default), the subscription fires for events from every WhatsApp account in the organization. When an array, only for events originating from these accounts. Org-level events (e.g. customer.*) IGNORE this filter and always fire.

Array<string> | null
status
required
string
Allowed values: active paused disabled
disabled_reason
required

Why the subscription is CURRENTLY disabled. Cleared when you re-enable it.

string | null
last_disabled_at
required

When the subscription last entered the disabled state. Never cleared, so it still reports a past auto-disable after you have re-enabled.

string | null format: date-time
last_disabled_reason
required
string | null
consecutive_failures
required
integer
secrets
required
Array<object>
object
id
required
string
created_at
required
string format: date-time
expires_at
required
string | null format: date-time
created_at
required
string format: date-time
updated_at
required
string format: date-time
initial_secret
string
has_more
required

Whether another page is available.

boolean
next_cursor
required

Pass this value unchanged as cursor to fetch the next page. null marks the final page.

string | null
request_id
required

Unique request identifier to include when contacting support.

string
Example
{
"data": [
{
"id": "wbs_01HXYZABCDEFGHJKMNPQRSTVWX",
"object": "webhook_subscription",
"phone_number_ids": [
"1234567890"
],
"status": "active",
"secrets": [
{
"id": "sec_01HXYZABCDEFGHJKMNPQRSTVWX"
}
]
}
],
"has_more": false,
"next_cursor": null,
"request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"
}

Validation failure

Media type application/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found conflict rate_limit_error api_error
code
required
string
message
required

Human-readable explanation of the error.

string
param

Request field associated with the error, when applicable.

string
request_id
required

Unique request identifier to include when contacting support.

string
Examples
Example default

A field value is invalid.

{
"error": {
"type": "invalid_request_error",
"code": "invalid_field_value",
"message": "A field value is invalid.",
"request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"
}
}

Authentication failure

Media type application/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found conflict rate_limit_error api_error
code
required
string
message
required

Human-readable explanation of the error.

string
param

Request field associated with the error, when applicable.

string
request_id
required

Unique request identifier to include when contacting support.

string
Examples
Example default

The provided API key is invalid.

{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "The provided API key is invalid.",
"request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"
}
}

Rate limit exceeded

Media type application/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found conflict rate_limit_error api_error
code
required
string
message
required

Human-readable explanation of the error.

string
param

Request field associated with the error, when applicable.

string
request_id
required

Unique request identifier to include when contacting support.

string
Examples
Example default

Rate limit exceeded.

{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded.",
"request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"
}
}

Internal server error

Media type application/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found conflict rate_limit_error api_error
code
required
string
message
required

Human-readable explanation of the error.

string
param

Request field associated with the error, when applicable.

string
request_id
required

Unique request identifier to include when contacting support.

string
Examples
Example default

An unexpected error occurred.

{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "An unexpected error occurred.",
"request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"
}
}