List blocked numbers and prefixes
const url = 'https://app.whatsetter.com/api/v1/blocked-contacts?kind=number&limit=50';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);}curl --request GET \ --url 'https://app.whatsetter.com/api/v1/blocked-contacts?kind=number&limit=50' \ --header 'Authorization: Bearer <token>'The workspace’s block rules, newest first. kind=number rules carry
the E.164 phone when the value is a real number (a masked WhatsApp
id has none); kind=prefix rules hold the dial code in value.
campaign_id is null for team-wide rules (every rule created through
the API), or the campaign slug when the dashboard scoped it. Requires
scope blocklist:manage.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Opaque cursor from the previous page’s pagination.next_cursor.
Responses
Section titled “Responses”The rules
object
object
The bare digits of the number (or a masked WhatsApp id), or the dial code.
E.164 form for kind: number when the value is a real phone; null otherwise.
null = team-wide (every rule created through the API); a campaign slug when the dashboard scoped it.
object
Example
{ "data": [ { "id": "68f1a0b1c2d3e4f5a6b7c8d9", "kind": "number", "value": "33612345678", "phone": "+33612345678", "label": "Spammer", "reason": null, "campaign_id": null, "created_at": "2026-09-15T12:00:00.000Z" }, { "id": "68f1a0b1c2d3e4f5a6b7c8da", "kind": "prefix", "value": "91", "phone": null, "label": "India", "reason": "Out of market", "campaign_id": null, "created_at": "2026-09-15T12:01:00.000Z" } ], "pagination": { "has_more": false, "next_cursor": null }}Missing, unknown or revoked API key
object
object
Examplegenerated
{ "error": { "code": "example", "message": "example" }}The key lacks the required scope
object
object
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Invalid parameter or body (also an invalid or expired cursor)
object
object
Examplegenerated
{ "error": { "code": "example", "message": "example" }}
