canonical: https://jentic.com/apis/esendex.com/esendex

# Esendex API

Jentic publishes the only available OpenAPI specification for the Esendex API, keeping it validated and agent-ready. Esendex provides SMS, voice, rich-content messaging, surveys, and webhook subscriptions for business communications. The 17 endpoints cover the full message lifecycle: dispatch via /messagedispatcher, list message headers and inbox, read conversations by phone number, manage scheduled batches, send rich content and surveys, and create webhook subscriptions per account. Authentication is dual: HTTP Basic for the historical SMS endpoints and an apiKey Authorization header for newer rich-content and survey routes.

## For AI agents

Send SMS, voice, rich content, and surveys, read inbox messages, manage scheduled batches, and subscribe to delivery webhooks via Esendex. Authenticate with HTTP Basic or an Authorization header API key.

## Scope

Does not handle email delivery, push notifications, or video calls - use for SMS, rich-content messaging, surveys, and inbound webhooks only.

## Capabilities

- Dispatch one or many SMS messages in a single call via /messagedispatcher
- Estimate the cost of a message before sending with /messages/information
- List message headers and read inbox messages received from customers
- Pull a conversation thread by phone number for two-way messaging UIs
- Schedule message batches and cancel pending schedules before send
- Send rich-content messages and check their delivery status
- Send surveys and subscribe to delivery and inbound webhooks scoped per account reference

## Use cases

### Two-Way SMS Customer Engagement at Scale

Operations teams running SMS support and notifications need send, read, and conversation-thread endpoints to power agent UIs and automation. Esendex's /messagedispatcher, /inbox/messages, and /conversation/{phonenumber}/messages endpoints provide the full two-way flow without a separate inbound parser, so an agent can read, classify, and reply in the same loop.

Example prompt: Call POST /messagedispatcher with the recipient number and body, then GET /conversation/{phonenumber}/messages to confirm the new outbound entry.

### Scheduled SMS Marketing Campaigns

Marketing teams scheduling SMS sends need a batch creation and management surface. Esendex's /messagebatches endpoints let an agent name and schedule batches, list past sends, and cancel a pending schedule before it fires, replacing custom queue plumbing with native scheduling.

Example prompt: Call POST /messagedispatcher with a batch payload and a future send-at timestamp, then PUT /messagebatches/{id} to set a friendly name.

### Rich Content and Survey Outreach

Brands using rich messaging or running CSAT surveys via SMS need richer content than 160-character text. Esendex's /send rich-content endpoint and /surveys/{id}/send + /surveys/{id}/report/standard pair handle delivery and reporting in one place, so an agent can run a survey campaign and pull standardised CSAT scores end-to-end.

Example prompt: Call POST /surveys/{id}/send with a contact list, then GET /surveys/{id}/report/standard to retrieve completion and score metrics.

### AI Agent SMS Tool via Jentic

An AI customer-service agent can be wired through Jentic to read inbox messages and reply by SMS without a custom integration. The agent searches by intent (for example 'send an SMS'), loads the schema, and executes with HTTP Basic credentials scoped from the vault - useful for one-off support replies or scheduled reminders triggered from a conversation.

Example prompt: Use Jentic search('send an sms message'), load the POST /messagedispatcher operation, and execute it with the recipient and body.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /messagedispatcher | Send one or many SMS messages |
| POST | /messages/information | Estimate the cost of a message |
| GET | /messageheaders | List message headers |
| GET | /inbox/messages | Get inbound messages |
| GET | /conversation/{phonenumber}/messages | Get a conversation thread |
| POST | /send | Send rich-content message |
| POST | /surveys/{id}/send | Send a survey |
| POST | /accounts/{accountReference}/subscriptions | Create a webhook subscription |

## Key resources

- **MessageDispatcher** — Send one or many SMS or rich messages in a single call
- **MessageHeaders** — List metadata for sent messages with delivery status
- **Inbox** — Read inbound messages received on your numbers
- **Conversation** — Retrieve a conversation thread by phone number
- **MessageBatches** — Schedule, name, list, and cancel batched sends
- **Send (Rich Content)** — Dispatch rich-content messages and check delivery
- **Surveys** — Send surveys to contacts and pull standardised reports
- **Subscriptions** — Manage webhook subscriptions for inbound and delivery events
- **Accounts** — Account-scoped resources keyed on AccountReference

## Why Jentic

- **Setup:** Wiring Esendex by hand means supporting both its HTTP Basic credentials and its Authorization API key, choosing among its messaging, rich-content, and survey hosts, and building your own retries. Through Jentic you install once, import the Esendex API from the API Directory, store both credentials once, and your agent calls it.
- **Permission scoping:** Esendex sends the message body and recipient in the request body rather than the URL, so scope the agent to the operations it needs, such as POST /messagedispatcher or GET /inbox/messages. You pick that allowed set, so an operation like sending a survey at POST /surveys/{id}/send is only reachable if you include it.
- **Credential handling:** Your Esendex Basic credentials and Authorization API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send an sms' or 'read the message inbox', and Jentic returns the matching Esendex operation with its input schema so the agent calls the right endpoint without choosing between the auth flavours.

## Related APIs

- **Esendex Messaging API** — Smaller messaging-only Esendex spec - same vendor, narrower scope (6 endpoints)
- **Epidemic Sound Partner Content API** — Music catalogue - pair with Esendex SMS to send creators links to licensed tracks
- **ePayTools Orchestra API** — Payment orchestration - pair with Esendex SMS for payment receipts and 3DS step-up codes

## FAQ

### Why is there no official OpenAPI spec for the Esendex API?

Esendex publishes developer documentation at developers.esendex.com but not a downloadable OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call the Esendex API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Esendex API use?

The Esendex API supports two schemes: HTTP Basic for the legacy SMS endpoints and an apiKey Authorization header for newer rich-content and survey routes. Through Jentic both are stored encrypted in your Jentic One instance and injected at execution time.

### Can I send an SMS with the Esendex API?

Yes. POST /messagedispatcher accepts one or many message objects (recipient, body, account reference) and returns delivery batch metadata. Read GET /messageheaders/{id} to track per-message state.

### What are the rate limits for the Esendex API?

Esendex applies per-account throughput controls based on your plan but does not encode them in the spec. Submit large sends as batches via /messagedispatcher rather than tight per-message loops, and respect 429 backoff.

### How do I send a rich-content message through Jentic?

Search 'send rich content message'. Jentic returns the POST /send operation, you load its schema, and execute with the recipient and content payload. The Authorization API key is injected from the vault.

### Can I read a conversation thread by phone number?

Yes. GET /conversation/{phonenumber}/messages returns the chronological message history for that number across both directions, useful for a unified inbox UI.

### Does the API support webhook subscriptions for inbound messages?

Yes. POST /accounts/{accountReference}/subscriptions creates a webhook subscription scoped to an account, and DELETE /accounts/{accountReference}/subscriptions/{productId}/{eventId} removes one.

### Can I limit what my agent is allowed to do with the Esendex API?

Yes. Because you self-host Jentic One, your own rules decide which Esendex operations and credentials the agent can use, so you grant only the endpoints it needs, such as POST /messagedispatcher to send SMS or GET /inbox/messages to read inbound messages. An operation like sending a survey at POST /surveys/{id}/send or creating a webhook via POST /accounts/{accountReference}/subscriptions is reachable only if you include it in that allowed set. Esendex passes the recipient and message body in the request body rather than the URL, so scoping happens at the operation level you control.
