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>
POSThttps://hermeticor.com/v1/profiles/{id}/suppress

Suppress every address of the profile (or one channel): nothing is sent until an admin or marketer lifts a manual suppression

Parameters

idstringpathrequired

Request body

application/json
channelstring
email | sms | whatsapp | push | postcard
{
  "channel": "email"
}

Code samples

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

Responses

200 Default Response
Example
{
  "suppressed": [
    {
      "channel": "email",
      "value": "string"
    }
  ]
}
Schema
suppressedSuppressedItem[]required
Show child parameters
channelstringrequired
email | sms | whatsapp | push | postcard
valuestringrequired
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

POSThttps://hermeticor.com/v1/profiles/{id}/unsuppress

Lift manual suppressions of the profile; bounces, complaints and carrier STOPs stay

Parameters

idstringpathrequired

Request body

application/json
channelstring
email | sms | whatsapp | push | postcard
reasonstringrequired
{
  "channel": "email",
  "reason": "string"
}

Code samples

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

Responses

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

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

POSThttps://hermeticor.com/v1/consent/batch/read

Consent state of up to 100 people addressed by profile id, email or phone (unknown people come back with profileId null)

Request body

application/json
itemsItemsItem166[]
Show child parameters
profileIdstring
emailstring
phonestring
targetsItemsItem166[]
Deprecated: use items
Show child parameters
profileIdstring
emailstring
phonestring
{
  "items": [
    {
      "profileId": "string",
      "email": "string",
      "phone": "string"
    }
  ],
  "targets": [
    {
      "profileId": "string",
      "email": "string",
      "phone": "string"
    }
  ]
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/consent/batch/read" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"profileId":"string","email":"string","phone":"string"}],"targets":[{"profileId":"string","email":"string","phone":"string"}]}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "index": 0,
      "profileId": "string",
      "states": [
        {
          "profileId": "string",
          "channel": "email",
          "purpose": "marketing",
          "topicId": "string",
          "status": "granted",
          "recordId": "string",
          "expiresAt": "2024-01-01T00:00:00Z",
          "updatedAt": "2024-01-01T00:00:00Z"
        }
      ]
    }
  ]
}
Schema
itemsobject[]required
Show child parameters
indexintegerrequired
profileIdstringrequired
statesItemsItem16[]required
Show child parameters
profileIdstringrequired
channelstringrequired
email | sms | whatsapp | push | postcard
purposestringrequired
marketing | prospecting | transactional | operational
topicIdstringrequired
statusstringrequired
granted | revoked | pending_confirmation
recordIdstringrequired
expiresAtstringrequired
updatedAtstringrequired
4XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

POSThttps://hermeticor.com/v1/consent/batch/write

Record consent for up to 100 people. Each grant needs proof or a source reference; earlier opt-outs and suppressions still win (reported per row)

Request body

application/json
itemsobject[]required
Show child parameters
targetobjectrequired
Show child parameters
profileIdstring
emailstring
phonestring
consentobjectrequired
Show child parameters
channelstringrequired
email | sms | whatsapp | push | postcard
purposestringrequired
marketing | prospecting | transactional | operational
topicIdstring
statusstringrequired
granted | revoked | pending_confirmation
legalBasisstring
consent | legitimate_interest | contract | other = consent
sourcestringrequired
form | import | api | sms_keyword | preference_center | admin | double_opt_in
sourceRefstring
disclosureTextstring
disclosureVersionstring
ipstring
userAgentstring
proofobject
expiresAtstring
revocationScopestring
topic | channel | all
{
  "items": [
    {
      "target": {
        "profileId": "string",
        "email": "string",
        "phone": "string"
      },
      "consent": {
        "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/consent/batch/write" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"target":{"profileId":"string","email":"string","phone":"string"},"consent":{"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
{
  "items": [
    {
      "index": 0,
      "ok": true,
      "profileId": "string",
      "message": "string",
      "result": "string"
    }
  ],
  "succeeded": 0,
  "failed": 0
}
Schema
itemsItemsItem167[]required
Show child parameters
indexintegerrequired
okbooleanrequired
profileIdstringrequired
messagestring
resultstring
succeededintegerrequired
failedintegerrequired
4XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

POSThttps://hermeticor.com/v1/consent/batch/unsubscribe-all

Revoke marketing consent on every chosen channel for up to 100 people, recording where the request came from

Request body

application/json
itemsItemsItem166[]
Show child parameters
profileIdstring
emailstring
phonestring
targetsItemsItem166[]
Deprecated: use items
Show child parameters
profileIdstring
emailstring
phonestring
sourcestringrequired
channelsstring[]
= ["email","sms"]
{
  "items": [
    {
      "profileId": "string",
      "email": "string",
      "phone": "string"
    }
  ],
  "targets": [
    {
      "profileId": "string",
      "email": "string",
      "phone": "string"
    }
  ],
  "source": "string",
  "channels": [
    "email",
    "sms"
  ]
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/consent/batch/unsubscribe-all" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"profileId":"string","email":"string","phone":"string"}],"targets":[{"profileId":"string","email":"string","phone":"string"}],"source":"string","channels":["email","sms"]}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 200 · POST /v1/consent/batch/write

4XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

GEThttps://hermeticor.com/v1/do-not-contact

LinkedIn do-not-contact list (emails and phones are listed under suppressions)

Parameters

limitintegerquery
= 50
cursorstringquery
qstringquery

Code samples

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

Responses

200 Default Response
Example
{
  "items": [
    {
      "id": "string",
      "kind": "linkedin",
      "value": "string",
      "sourceRef": "string",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsobject[]required
Show child parameters
idstringrequired
kindstringrequired
linkedin
valuestringrequired
sourceRefstringrequired
createdAtstringrequired
nextCursorstringrequired
4XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

POSThttps://hermeticor.com/v1/do-not-contact

Add do-not-contact values; phones block SMS and WhatsApp, LinkedIn URLs block LinkedIn outreach

Request body

application/json
kindstringrequired
email | phone | linkedin
valuesstring[]required
notestring
{
  "kind": "email",
  "values": [
    "string"
  ],
  "note": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/do-not-contact" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"email","values":["string"],"note":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

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

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

GEThttps://hermeticor.com/v1/do-not-contact/check

Parameters

linkedinUrlstringquery
phonestringquery

Code samples

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

Responses

200 Default Response
Example
{
  "linkedin": true,
  "phone": true
}
Schema
linkedinbooleanrequired
phonebooleanrequired
4XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

5XX Default Response

Same as 4XX · POST /v1/profiles/{id}/suppress

Updated