Marks the contact’s active granted record of one consent type as revoked and sets revoked_at.
The request succeeds even when there is nothing to revoke. Records are never deleted, so the history
stays in GET /api/compliance/consent/{contactId}.
Revoking consent does not add the number to the suppression list. To stop all outreach to a
number, the contact must opt out, or you import the number with
POST /api/compliance/suppressions/import (source: customer_list).
Side effects. Updates at most one consent record. Evicts the contact’s cached consent check and
history. Writes an audit entry (revoke_consent).
Idempotency. Safe to retry. A repeat finds no active grant, changes nothing and still returns success: true.
Access
full. Signed-in users need the owner or admin role.Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the
dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once,
at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.
Operations restricted to admins or owners reject keys without the full scope with 403, and say so in
their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret —
that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds.
See Authentication.
The consent type to revoke.
voice_call: phone calls.email: commercial email.data_processing: storing and processing personal data.