consent
DELETE
https://hermeticor.com /v1/topics/{id} Parameters
idstringpathrequiredCode samples
cURL
curl -X DELETE "https://hermeticor.com/v1/topics/{id}" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"ok": true
}Schema
okbooleanrequired4XX Default Response
Example
{
"error": {
"code": "string",
"message": "string",
"details": {}
}
}Schema
errorobjectrequiredShow child parameters
codestringrequiredmessagestringrequireddetailsobjectPATCH
https://hermeticor.com /v1/topics/{id} Parameters
idstringpathrequiredRequest body
application/json
namestringdescriptionstringdefaultOptInbooleanvisibleInPreferenceCenterbooleangroupIdstringpositioninteger{
"name": "string",
"description": "string",
"defaultOptIn": true,
"visibleInPreferenceCenter": true,
"groupId": "string",
"position": 0
}Code samples
cURL
curl -X PATCH "https://hermeticor.com/v1/topics/{id}" \
-H "Authorization: Bearer $HERMETICOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string","description":"string","defaultOptIn":true,"visibleInPreferenceCenter":true,"groupId":"string","position":0}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"id": "string",
"channel": "email",
"key": "string",
"name": "string",
"description": "string",
"defaultOptIn": true,
"visibleInPreferenceCenter": true,
"groupId": "string",
"position": 0,
"createdAt": "2024-01-01T00:00:00Z",
"subscriberCount": 0
}Schema
idstringrequiredchannelstringrequiredkeystringrequirednamestringrequireddescriptionstringrequireddefaultOptInbooleanrequiredvisibleInPreferenceCenterbooleanrequiredgroupIdstringpositionintegercreatedAtstringrequiredsubscriberCountintegerGET
https://hermeticor.com /v1/profiles/{id}/consent Parameters
limitintegerqueryPage size; omitted returns the whole list
cursorstringqueryOpaque: the
nextCursor of the previous pageidstringpathrequiredCode samples
cURL
curl -X GET "https://hermeticor.com/v1/profiles/{id}/consent" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"items": [
{
"profileId": "string",
"channel": "email",
"purpose": "marketing",
"topicId": "string",
"status": "granted",
"recordId": "string",
"expiresAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
],
"nextCursor": "string"
}Schema
itemsItemsItem16[]requiredShow child parameters
profileIdstringrequiredchannelstringrequiredpurposestringrequiredtopicIdstringrequiredstatusstringrequiredrecordIdstringrequiredexpiresAtstringrequiredupdatedAtstringrequirednextCursorstringrequiredPOST
https://hermeticor.com /v1/profiles/{id}/consent Parameters
idstringpathrequiredRequest body
application/json
channelstringrequiredpurposestringrequiredtopicIdstringstatusstringrequiredlegalBasisstringsourcestringrequiredsourceRefstringdisclosureTextstringdisclosureVersionstringipstringuserAgentstringproofobjectexpiresAtstringrevocationScopestring{
"channel": "email",
"purpose": "marketing",
"topicId": "string",
"status": "granted",
"legalBasis": "consent",
"source": "form",
"sourceRef": "string",
"disclosureText": "string",
"disclosureVersion": "string",
"ip": "string",
"userAgent": "string",
"proof": {},
"expiresAt": "2024-01-01T00:00:00Z",
"revocationScope": "topic"
}Code samples
cURL
curl -X POST "https://hermeticor.com/v1/profiles/{id}/consent" \
-H "Authorization: Bearer $HERMETICOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"channel":"email","purpose":"marketing","topicId":"string","status":"granted","legalBasis":"consent","source":"form","sourceRef":"string","disclosureText":"string","disclosureVersion":"string","ip":"string","userAgent":"string","proof":{},"expiresAt":"2024-01-01T00:00:00Z","revocationScope":"topic"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"record": {
"id": "string",
"profileId": "string",
"channel": "email",
"purpose": "marketing",
"topicId": "string",
"status": "granted",
"legalBasis": "consent",
"source": "form",
"sourceRef": "string",
"disclosureText": "string",
"disclosureVersion": "string",
"expiresAt": "2024-01-01T00:00:00Z",
"revocationScope": "topic",
"at": "2024-01-01T00:00:00Z"
}
}Option 1
recordobjectrequiredShow child parameters
idstringrequiredprofileIdstringrequiredchannelstringrequiredpurposestringrequiredtopicIdstringrequiredstatusstringrequiredlegalBasisstringrequiredsourcestringrequiredsourceRefstringrequireddisclosureTextstringrequireddisclosureVersionstringrequiredexpiresAtstringrequiredrevocationScopestringrequiredatstringrequired{
"record": {
"id": "string",
"profileId": "string",
"channel": "email",
"purpose": "marketing",
"topicId": "string",
"status": "granted",
"legalBasis": "consent",
"source": "form",
"sourceRef": "string",
"disclosureText": "string",
"disclosureVersion": "string",
"expiresAt": "2024-01-01T00:00:00Z",
"revocationScope": "topic",
"at": "2024-01-01T00:00:00Z"
}
}Option 2
ignoredstringrequired{
"ignored": "revoked_previously"
}GET
https://hermeticor.com /v1/profiles/{id}/contact-prefs Snooze, preferred channel and per-channel frequency; all enforced by the eligibility gate
Parameters
idstringpathrequiredCode samples
cURL
curl -X GET "https://hermeticor.com/v1/profiles/{id}/contact-prefs" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"profileId": "string",
"snoozedUntil": "2024-01-01T00:00:00Z",
"preferredChannel": "email",
"emailFrequency": "all",
"smsFrequency": "all",
"adsOptOut": false,
"trackingOptOut": false
}Schema
profileIdstringrequiredsnoozedUntilstringrequiredpreferredChannelstringrequiredemailFrequencystringrequiredsmsFrequencystringrequiredadsOptOutbooleanrequiredtrackingOptOutbooleanrequiredPUT
https://hermeticor.com /v1/profiles/{id}/contact-prefs Parameters
idstringpathrequiredRequest body
application/json
snoozedUntilstringpreferredChannelstringemailFrequencystringsmsFrequencystringadsOptOutbooleantrackingOptOutboolean{
"snoozedUntil": "2024-01-01T00:00:00Z",
"preferredChannel": "email",
"emailFrequency": "all",
"smsFrequency": "all",
"adsOptOut": true,
"trackingOptOut": true
}Code samples
cURL
curl -X PUT "https://hermeticor.com/v1/profiles/{id}/contact-prefs" \
-H "Authorization: Bearer $HERMETICOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"snoozedUntil":"2024-01-01T00:00:00Z","preferredChannel":"email","emailFrequency":"all","smsFrequency":"all","adsOptOut":true,"trackingOptOut":true}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
GET
https://hermeticor.com /v1/optouts Everyone currently opted out, by channel and topic
Parameters
channelstringquerytopicIdstringquerylimitintegerqueryoffsetintegerqueryCode samples
cURL
curl -X GET "https://hermeticor.com/v1/optouts" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"items": [
{
"profileId": "string",
"channel": "email",
"purpose": "string",
"topicId": "string",
"revokedAt": "2024-01-01T00:00:00Z"
}
],
"total": 0
}Schema
itemsobject[]requiredShow child parameters
profileIdstringrequiredchannelstringrequiredpurposestringrequiredtopicIdstringrequiredrevokedAtstringrequiredtotalintegerrequiredUpdated