Hermetica API

Base URL, authentication with API keys, errors, idempotency and where to find each endpoint.

Embed
Preview of the card
<a href="https://hermetica.15.204.158.166.sslip.io/docs/introduction"><img src="https://hermetica.15.204.158.166.sslip.io/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/2e5dc2a4-b47b-4858-abbd-bb32a8a784ba/social-card.svg?v=3e7ae33eec8b" alt="Hermetica API" width="600" height="315"></a>

Everything the Hermetica dashboard does goes through the same HTTP API, so anything you can click you can also script. The endpoints are listed by area under Endpoints, generated from the live OpenAPI document.

Base URL

https://hermetica.15.204.158.166.sslip.io

Most endpoints live under /v1. Public endpoints used by browsers and recipients (tracking, unsubscribe, forms, hub) live under their own prefixes and need no key.

Authentication

Create a key under Settings → API keys and send it as a bearer token:

curl https://hermetica.15.204.158.166.sslip.io/v1/me \
  -H "Authorization: Bearer hm_sk_..."
  • A secret key (hm_sk_) is for servers only. Give it the narrowest scopes it needs, for example profiles:write and messages:send.

  • A publishable key is for the browser and mobile SDKs and can only send events and identify visitors.

  • A key belongs to one workspace. Keys can be limited to IP addresses and given a per-minute rate limit.

See API keys for the details.

Errors

Errors are JSON with a stable code (invalid, not_found, conflict, forbidden, precondition_failed, unauthenticated, rate_limited) and a human-readable message. A 422 names each field that failed validation.

Idempotency

Send an Idempotency-Key header on any POST that sends a message or creates something you do not want twice. A retry with the same key returns the first result.

Marketing and prospecting messages are only sent to people with consent on record and who are not suppressed. The API never bypasses this; a blocked send is reported as blocked, not as an error. See Consent.

SDKs

Official SDKs for Node, Python, Go, Ruby, PHP, Java, .NET, browser, React Native, Flutter, iOS and Android are listed in SDKs.

Updated