Skip to main content
POST
Record a consent decision

Authorizations

Authorization
string
header
required

Dashboard JWT token from Clerk

Body

application/json
identity_kind
enum<string>
required

Identity namespace that identity_value belongs to.

Available options:
anonymous_id,
user_id,
contact_id
identity_value
string
required

The identity the decision applies to (contact id, authenticated user id, or anonymous device id).

Required string length: 1 - 200
action
enum<string>
required

Consent verb. rtbf (right-to-be-forgotten) revokes all purposes and triggers downstream erasure propagation.

Available options:
grant,
revoke,
rtbf
purpose
string

Processing purpose the decision scopes to (e.g. marketing_email). Required for grant/revoke; omit for rtbf, which revokes every purpose.

Required string length: 1 - 120
lawful_basis
enum<string>

GDPR Article 6 lawful basis, recorded for audit.

Available options:
consent,
contract,
legal_obligation,
vital_interests,
public_task,
legitimate_interests

Version tag of the consent copy the subject agreed to.

proof_url
string

HTTPS or gs:// pointer to captured proof of consent.

source
string

Origin of the decision (e.g. cookie_banner, preference_center).

occurred_at
string<date-time>

When the subject made the decision. Defaults to receipt time.

idempotency_key
string

De-dupes a replayed banner submission; a repeat returns the original row flagged deduped=true.

Response

200 - application/json

The recorded (or de-duplicated) consent ledger entry.

data
object
required
meta
object
required