Skip to content

Endpoints ​

The whole route table on one page. Every route requires X-API-Key except the two marked public. Field-level detail lives on the resource pages.

Sending and messages ​

MethodPathNotes
POST/v1/sendSend one message. Returns 202.
GET/v1/messagesPaged. Filters: status, search, date_from, date_to, api_key_id, channel_id, domain_id, broadcast_id.
GET/v1/messages/metricsrange=24h|7d|30d.
GET/v1/messages/{id}One message, with its lifecycle events.
GET/v1/emails/{id}An email's delivery state.

Contacts ​

MethodPathNotes
POST GET/v1/contactsCreate / list. List is paged.
GET PATCH DELETE/v1/contacts/{id}One contact.
POST DELETE/v1/contacts/{id}/unsubscribeSuppress / lift. ?segment_id= scopes it to one segment.
GET/v1/unsubscribesThe suppression list. Paged.
DELETE/v1/unsubscribes/{id}Lift one entry.
POST GET/v1/contact-importsBulk CSV import. List is paged.
GET/v1/contact-imports/{id}Import status.
POST GET/v1/contact-propertiesProperty definitions.
PATCH DELETE/v1/contact-properties/{id}

Segments ​

MethodPathNotes
POST GET/v1/segmentsCreate / list.
GET PATCH DELETE/v1/segments/{id}One segment.
GET/v1/segments/{id}/contactsLive membership. Paged.
POST/v1/segments/{id}/membersAdd contacts by hand.
DELETE/v1/segments/{id}/members/{contactId}Remove a hand-added member.

Broadcasts ​

MethodPathNotes
POST GET/v1/broadcastsCreate / list.
GET PATCH DELETE/v1/broadcasts/{id}Edit and delete are draft-only.
POST/v1/broadcasts/{id}/sendQueue the fan-out.

Templates ​

MethodPathNotes
POST GET/v1/templatesCreate / list. List takes status.
GET PATCH DELETE/v1/templates/{id}One template.
POST/v1/templates/{id}/moveBody: folder_id, or null for the root.
POST GET/v1/template-foldersFolders.
PATCH DELETE/v1/template-folders/{id}

Forms ​

MethodPathNotes
POST GET/v1/formsCreate / list.
GET PATCH DELETE/v1/forms/{id}One form.
GET/v1/forms/{id}/submissionsPaged.
POST/v1/forms/{id}/submissionsPublic. No API key — rate-limited instead. Form encodings only; 303 to the form's redirect_url when the caller accepts text/html.

Automations ​

MethodPathNotes
POST GET/v1/automationsCreate / list.
GET/v1/automations/metricsAcross all automations. range=24h|7d|30d.
GET PATCH DELETE/v1/automations/{id}One automation.
GET/v1/automations/{id}/runsPer-node run detail. Paged.
GET/v1/automations/{id}/metricsOne automation's counts.

Domains, channels, webhooks ​

MethodPathNotes
POST GET/v1/domainsSending domains.
POST/v1/domains/{id}/verifyRe-resolve the DNS and update the status.
DELETE/v1/domains/{id}
POST GET/v1/channelsDiscord / Telegram / ntfy. Credentials stored encrypted.
DELETE/v1/channels/{id}No update — delete and recreate.
POST/v1/channels/{id}/messagesPush to a channel.
POST GET/v1/webhooksSigned event callbacks.
DELETE/v1/webhooks/{id}No update.

Account ​

MethodPathNotes
GET/v1/usagePlan, limits and current usage.
GET/healthPublic. Service health.

Verbs that do not exist ​

Worth knowing before you go looking:

  • No PATCH on webhooks or channels — delete and recreate.
  • No GET /v1/channels/{id} or /v1/contact-properties/{id} — read them from the list, which is not paged.
  • No delete for a broadcast that has left draft, and no way back to it.
  • No account, organization, member or API-key management here. Those live in the control-panel API behind the dashboard, not in the public API.

Released under the Apache 2.0 License.