consent
GET
https://hermeticor.com /v1/suppressions Parameters
channelstringqueryactivestringqueryqstringqueryreasonstringquerydomainstringquerycreatedFromstringquerycreatedTostringquerylimitintegerquerycursorstringqueryCode 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[]requiredShow child parameters
idstringrequiredchannelstringrequiredvalueNormalizedstringrequiredscopestringrequiredtopicIdstringrequiredpurposestringrequiredreasonstringrequiredsourceRefstringrequiredliftedAtstringrequiredliftedBystringrequiredliftReasonstringrequiredcreatedAtstringrequirednextCursorstringrequired4XX Default Response
Example
{
"error": {
"code": "string",
"message": "string",
"details": {}
}
}Schema
errorobjectrequiredShow child parameters
codestringrequiredmessagestringrequireddetailsobjectPOST
https://hermeticor.com /v1/suppressions Request body
application/json
channelstringrequiredvaluestringrequiredscopestringtopicIdstringpurposestringreasonstringrequiredsourceRefstring{
"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
idstringrequiredchannelstringrequiredvalueNormalizedstringrequiredscopestringrequiredtopicIdstringrequiredpurposestringrequiredreasonstringrequiredsourceRefstringrequiredliftedAtstringrequiredliftedBystringrequiredliftReasonstringrequiredcreatedAtstringrequiredPOST
https://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
dryRunbooleanrequiredtotalintegerrequiredaddedintegerrequiredalreadySuppressedintegerrequiredduplicatesInFileintegerrequiredinvalidintegerrequirederrorsobject[]requiredShow child parameters
rowintegerrequiredvaluestringrequirederrorstringrequiredtruncatedbooleanrequiredPOST
https://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
idstringpathrequiredRequest 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
POST
https://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
startDatestringendDatestringemailstringreasonstringrequired{
"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
liftedintegerrequiredGET
https://hermeticor.com /v1/blocklist Parameters
limitintegerqueryPage size; omitted returns the whole list
cursorstringqueryOpaque: the
nextCursor of the previous pageCode 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[]requiredShow child parameters
idstringrequireddomainstringrequiredreasonstringrequiredcreatedAtstringrequirednextCursorstringrequiredPOST
https://hermeticor.com /v1/blocklist Request body
application/json
domainstringrequiredreasonstring{
"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
idstringrequireddomainstringrequiredreasonstringrequiredcreatedAtstringrequiredPOST
https://hermeticor.com /v1/blocklist/bulk Blocklist many domains at once
Request body
application/json
domainsstring[]requiredreasonstring{
"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
addedintegerrequiredalreadyBlockedintegerrequiredinvalidobject[]requiredShow child parameters
domainstringrequirederrorstringrequiredDELETE
https://hermeticor.com /v1/blocklist/{id} Parameters
idstringpathrequiredCode 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
okbooleanrequiredUpdated