Skip to main content

Consent API

Consent Management for epilot customer entities

Quick Startโ€‹

# List available operations
epilot consent

# Call an operation
epilot consent publishConsentEvent

Common Flagsโ€‹

FlagDescription
-p key=valueSet a named parameter
-d '{...}'Request body JSON
-H 'Key: Value'Custom header
-t, --token <token>Bearer token for authentication
--profile <name>Use a named profile
-s, --server <url>Override server base URL
-i, --includeInclude response headers in output
--jsonOutput raw JSON (no formatting)
-v, --verboseVerbose output (show request details)
--jsonata <expr>JSONata expression to transform response
--definition <file>Override OpenAPI spec file/URL
--guidedPrompt for all parameters interactively
--no-interactiveDisable interactive prompts

Operationsโ€‹

consent

publishConsentEventโ€‹

Publishes consent event on event bus, which appends to consent store

POST /v1/consent/publish

Request Body

Sample Call

epilot consent publishConsentEvent

With request body:

epilot consent publishConsentEvent \
-d '{
"type": "OPT_IN",
"topic": "EMAIL_MARKETING",
"source": "www.frontend.epilot.cloud",
"identifier": "exampleuser@epilot.cloud",
"meta": {
"double_opt_in": true,
"source_type": "journey",
"source_id": "0e4f2a26-14f0-4ada-9294-a7d7a0b9b214",
"ip_address": "1.1.1.1",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"
}
}'

Using stdin pipe:

cat body.json | epilot consent publishConsentEvent

With JSONata filter:

epilot consent publishConsentEvent --jsonata 'type'
Sample Response
{
"type": "OPT_IN",
"created_at": "1970-01-01T00:00:00.000Z",
"topic": "EMAIL_MARKETING",
"source": "www.frontend.epilot.cloud",
"organization_id": "123",
"identifier": "exampleuser@epilot.cloud",
"meta": {
"double_opt_in": true,
"source_type": "journey",
"source_id": "0e4f2a26-14f0-4ada-9294-a7d7a0b9b214",
"ip_address": "1.1.1.1",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"
}
}

listConsentEventsโ€‹

List opt-ins and opt-outs by customer identifier

GET /v1/consent/{identifier}

Parameters

NameInTypeRequiredDescription
identifierpathstringYes
topicquerystringNo
limitquerynumberNo
fromquerynumberNo

Sample Call

epilot consent listConsentEvents \
-p identifier=exampleuser@epilot.cloud

Using positional args for path parameters:

epilot consent listConsentEvents exampleuser@epilot.cloud

With JSONata filter:

epilot consent listConsentEvents -p identifier=exampleuser@epilot.cloud --jsonata 'events'
Sample Response
{
"events": [
{
"type": "OPT_IN",
"created_at": "1970-01-01T00:00:00.000Z",
"topic": "EMAIL_MARKETING",
"source": "www.frontend.epilot.cloud",
"organization_id": "123",
"identifier": "exampleuser@epilot.cloud",
"meta": {
"double_opt_in": true,
"source_type": "journey",
"source_id": "0e4f2a26-14f0-4ada-9294-a7d7a0b9b214",
"ip_address": "1.1.1.1",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"
}
}
],
"total": 1
}

handleOptInWithTokenโ€‹

Endpoint to handle opt-in links

GET /v1/opt-in/{token}

Parameters

NameInTypeRequiredDescription
tokenpathstringYes
langquerystringNo

Sample Call

epilot consent handleOptInWithToken \
-p token=example

Using positional args for path parameters:

epilot consent handleOptInWithToken example

With JSONata filter:

epilot consent handleOptInWithToken -p token=example --jsonata '$'