Skip to main content
DELETE

Unblock a contact

Method: DELETE | Endpoint: /v1/contacts/{contact_id}/block Description: Undo a block: sends to the contact are accepted again, and their messages count as unread and start workflows as before. An opt-out is not affected: if the contact has opted out, sends still return 422 contact_opted_out. Authentication: API key in the Authorization header: Authorization: Bearer ib_pk_<64 hex>. Create keys in the dashboard under Settings → API access.

Request Body

None. The path parameter contact_id is the contact’s ID (a UUID). Unblocking a contact that isn’t blocked answers 200 unchanged. No webhook fires.

Responses

200 OK The contact, with blocked: false and blocked_at: null.
401 Unauthorized
Other message values: Authorization Bearer token required, API key required (use Authorization: Bearer ib_pk_…), Invalid API key format, Customer account not found. 403 Forbidden
Your iBubbl account is suspended or cancelled (message is then Account is cancelled). Every API-key endpoint returns this. 404 Not Found
Also returned for a malformed ID, a deleted contact, and a contact that belongs to another account.

Authorizations

Authorization
string
header
required

Bearer API key. Format: Authorization: Bearer ib_pk_<64 hex> (70 characters). Generate keys from Dashboard → Settings → API Access.

Path Parameters

contact_id
string
required

Response

The contact, now unblocked.

id
string
required

Unique contact identifier (UUID).

phone
string
required

Contact's phone number as first seen. Usually E.164; a contact first created by an inbound SMS can carry the sender's bare national form (e.g. 4155551234). Upserting any form of the same number returns this contact.

opted_out
boolean
required

True if this person has opted out: a STOP reply, a rep in the dashboard, a Do Not Disturb in your connected GoHighLevel account, or POST /v1/contacts/{id}/opt-out. When true, every send to this contact returns 422 contact_opted_out. An opt-out can't be undone, and it belongs to the number: a contact deleted and created again is still opted out.

created_at
string
required

ISO 8601 UTC timestamp the contact was created.

first_name
string | null
last_name
string | null
email
string | null
city
string | null
state
string | null
timezone
string | null

IANA timezone used for this contact's sending hours, or null if not set yet. When it is null and the number is a US or Canadian one, iBubbl infers the zone from the area code and saves it here when the contact's first message is processed; otherwise your account's timezone is used. Once set, an upsert never replaces it, so pass timezone on the first upsert, before you send, or change it with PATCH.

tags
string[]

The contact's tag names, sorted case-insensitively.

opted_out_at
string | null

ISO 8601 UTC timestamp of the opt-out, or null.

blocked
boolean
default:false

True if you blocked this contact (dashboard or POST /v1/contacts/{id}/block). Sends to them return 422 contact_blocked until you unblock them. Unlike an opt-out, a block is yours to undo, and it fires no webhook.

blocked_at
string | null

ISO 8601 UTC timestamp of the block, or null.