Skip to main content
POST
Block an address from outbound contact

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
identity_type
enum<string>
required

What kind of address this is. "phone" is stored in international format, "email" is lowercased, and "whatsapp_user_id" is the WhatsApp id of a contact whose phone number is hidden.

Available options:
phone,
email,
whatsapp_user_id
identity_value
string
required

The address itself — e.g. "+962790007001" or "[email protected]".

Required string length: 1 - 320
reason
string

Why this address is being blocked. Stored for your own auditing.

Maximum string length: 500
expires_at
string<date-time> | null

When the block should lift automatically, as an ISO 8601 timestamp. Must be in the future. Omit for a permanent block.

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)))$

Response

Default Response

id
string
required
identity_type
string
required

"phone", "email" or "whatsapp_user_id".

identity_value
string
required

The address, as we stored it after normalizing.

channel
string | null
required

The channel this entry covers. Null means every channel — that is what entries added through this API always are. A specific channel appears when someone opted out of that channel alone.

reason
string
required

Why the address was blocked.

source
string | null
required

Where the entry came from. "api" is one you added. Anything else was recorded when the person opted out themselves, and is not removable by default.

created_at
string<date-time>
required
expires_at
string<date-time> | null
required

When the block lifts automatically. Null means it never does.