consent

Embed
Preview of the card
<a href="https://hermeticor.com/docs/ref-consent"><img src="https://hermeticor.com/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/da934e58-dc9c-402a-aa1a-af47ac300ca4/social-card.svg?v=3e7ae33eec8b" alt="consent" width="600" height="315"></a>
GEThttps://hermeticor.com/v1/suppressions

Parameters

channelstringquery
email | sms | whatsapp | push | postcard
activestringquery
true | false
qstringquery
reasonstringquery
unsubscribe | hard_bounce | complaint | stop_keyword | manual | invalid | dnc
domainstringquery
createdFromstringquery
createdTostringquery
limitintegerquery
= 50
cursorstringquery

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/suppressions" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "channel": "email",
      "valueNormalized": "string",
      "scope": "global",
      "topicId": "string",
      "purpose": "marketing",
      "reason": "unsubscribe",
      "sourceRef": "string",
      "liftedAt": "2024-01-01T00:00:00Z",
      "liftedBy": "string",
      "liftReason": "string",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsItemsItem17[]required
Show child parameters
idstringrequired
channelstringrequired
email | sms | whatsapp | push | postcard
valueNormalizedstringrequired
scopestringrequired
global | topic | purpose
topicIdstringrequired
purposestringrequired
marketing | prospecting | transactional | operational
reasonstringrequired
unsubscribe | hard_bounce | complaint | stop_keyword | manual | invalid | dnc
sourceRefstringrequired
liftedAtstringrequired
liftedBystringrequired
liftReasonstringrequired
createdAtstringrequired
nextCursorstringrequired
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · GET /v1/suppressions

POSThttps://hermeticor.com/v1/suppressions

Request body

application/json
channelstringrequired
email | sms | whatsapp | push | postcard
valuestringrequired
scopestring
global | topic | purpose = global
topicIdstring
purposestring
marketing | prospecting | transactional | operational
reasonstringrequired
unsubscribe | hard_bounce | complaint | stop_keyword | manual | invalid | dnc
sourceRefstring
{
  "channel": "email",
  "value": "string",
  "scope": "global",
  "topicId": "string",
  "purpose": "marketing",
  "reason": "unsubscribe",
  "sourceRef": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/suppressions" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"channel":"email","value":"string","scope":"global","topicId":"string","purpose":"marketing","reason":"unsubscribe","sourceRef":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

201 Default Response
Example
{
  "id": "string",
  "channel": "email",
  "valueNormalized": "string",
  "scope": "global",
  "topicId": "string",
  "purpose": "marketing",
  "reason": "unsubscribe",
  "sourceRef": "string",
  "liftedAt": "2024-01-01T00:00:00Z",
  "liftedBy": "string",
  "liftReason": "string",
  "createdAt": "2024-01-01T00:00:00Z"
}
Schema
idstringrequired
channelstringrequired
email | sms | whatsapp | push | postcard
valueNormalizedstringrequired
scopestringrequired
global | topic | purpose
topicIdstringrequired
purposestringrequired
marketing | prospecting | transactional | operational
reasonstringrequired
unsubscribe | hard_bounce | complaint | stop_keyword | manual | invalid | dnc
sourceRefstringrequired
liftedAtstringrequired
liftedBystringrequired
liftReasonstringrequired
createdAtstringrequired
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

POSThttps://hermeticor.com/v1/suppressions/import

Bulk suppression / unsubscribe import (multipart: file = CSV or JSON of emails/phones, mode = preview | commit, reason?, scope?, topicId?, purpose?, defaultCountry?). Preview writes nothing.

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/suppressions/import" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "dryRun": true,
  "total": 0,
  "added": 0,
  "alreadySuppressed": 0,
  "duplicatesInFile": 0,
  "invalid": 0,
  "errors": [
    {
      "row": 0,
      "value": "string",
      "error": "string"
    }
  ],
  "truncated": true
}
Schema
dryRunbooleanrequired
totalintegerrequired
addedintegerrequired
alreadySuppressedintegerrequired
duplicatesInFileintegerrequired
invalidintegerrequired
errorsobject[]required
Show child parameters
rowintegerrequired
valuestringrequired
errorstringrequired
truncatedbooleanrequired
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

POSThttps://hermeticor.com/v1/suppressions/{id}/lift

Lift one suppression (audited). Marketers lift manual ones; every other reason needs an admin signed in to the web app (API keys get 403)

Parameters

idstringpathrequired

Request body

application/json
reasonstringrequired
{
  "reason": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/suppressions/{id}/lift" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 201 · POST /v1/suppressions

4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

POSThttps://hermeticor.com/v1/suppressions/clear-hard-bounces

Lift hard-bounce suppressions in a date range or for one address (an admin signed in to the web app; API keys get 403; audited with a reason); not a bypass, a new bounce re-suppresses

Request body

application/json
startDatestring
endDatestring
emailstring
reasonstringrequired
{
  "startDate": "2024-01-01T00:00:00Z",
  "endDate": "2024-01-01T00:00:00Z",
  "email": "string",
  "reason": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/suppressions/clear-hard-bounces" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"startDate":"2024-01-01T00:00:00Z","endDate":"2024-01-01T00:00:00Z","email":"string","reason":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "lifted": 0
}
Schema
liftedintegerrequired
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

GEThttps://hermeticor.com/v1/blocklist

Parameters

limitintegerquery
Page size; omitted returns the whole list
cursorstringquery
Opaque: the nextCursor of the previous page

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/blocklist" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "domain": "string",
      "reason": "string",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsItemsItem18[]required
Show child parameters
idstringrequired
domainstringrequired
reasonstringrequired
createdAtstringrequired
nextCursorstringrequired
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

POSThttps://hermeticor.com/v1/blocklist

Request body

application/json
domainstringrequired
reasonstring
{
  "domain": "string",
  "reason": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/blocklist" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"string","reason":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

201 Default Response
Example
{
  "id": "string",
  "domain": "string",
  "reason": "string",
  "createdAt": "2024-01-01T00:00:00Z"
}
Schema
idstringrequired
domainstringrequired
reasonstringrequired
createdAtstringrequired
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

POSThttps://hermeticor.com/v1/blocklist/bulk

Blocklist many domains at once

Request body

application/json
domainsstring[]required
reasonstring
{
  "domains": [
    "string"
  ],
  "reason": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/blocklist/bulk" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domains":["string"],"reason":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "added": 0,
  "alreadyBlocked": 0,
  "invalid": [
    {
      "domain": "string",
      "error": "string"
    }
  ]
}
Schema
addedintegerrequired
alreadyBlockedintegerrequired
invalidobject[]required
Show child parameters
domainstringrequired
errorstringrequired
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

DELETEhttps://hermeticor.com/v1/blocklist/{id}

Parameters

idstringpathrequired

Code samples

cURL
curl -X DELETE "https://hermeticor.com/v1/blocklist/{id}" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "ok": true
}
Schema
okbooleanrequired
true
4XX Default Response

Same as 4XX · GET /v1/suppressions

5XX Default Response

Same as 4XX · GET /v1/suppressions

Updated