canonical: https://jentic.com/apis/esendex.com/messaging-api

# Esendex Messaging API

Jentic publishes the only available OpenAPI specification for the Esendex Messaging API, keeping it validated and agent-ready. This narrower Esendex spec focuses on the core SMS send-and-read flow with six endpoints: dispatch outbound messages, list message headers with delivery status, fetch and delete inbound messages from the inbox, and list account references. It is the right choice when an integration only needs the messaging primitives and doesn't use rich content, surveys, or webhook subscriptions. Authentication is HTTP Basic with the Esendex account email and API password.

## For AI agents

Send SMS messages, list delivery headers, and read or delete inbound messages from the Esendex inbox. Authenticate with HTTP Basic.

## Scope

Does not handle rich content messages, surveys, scheduled batches, or webhook subscriptions - use for core SMS send and inbox operations only.

## Capabilities

- Dispatch one or many SMS messages in a single call to /messagedispatcher
- List message headers with delivery status for previously sent messages
- Get a specific message header by its message ID
- Read inbound messages received on your Esendex numbers
- Delete a specific inbound message from the inbox after processing
- List the accounts available under the authenticated Esendex login

## Use cases

### Transactional SMS for Notifications and OTPs

Product teams sending order confirmations, shipping updates, and one-time passcodes need a minimal SMS API surface. The Messaging API's POST /messagedispatcher plus GET /messageheaders/{messageId} flow covers send-and-confirm without the surface area of the larger Esendex spec, keeping integrations simple and the failure modes obvious.

Example prompt: Call POST /messagedispatcher with the recipient and OTP body, then poll GET /messageheaders/{messageId} until status is delivered.

### Inbound SMS Processing for Reply-Driven Workflows

Workflows where customers reply YES, STOP, or short codes to an inbound number need an inbox read-and-clear pattern. The /inbox/messages and DELETE /inbox/messages/{messageId} endpoints let an agent consume new messages, parse the body, and clear the inbox so the same item is not processed twice.

Example prompt: Call GET /inbox/messages, process each item's body, then DELETE /inbox/messages/{messageId} for each consumed message.

### Lightweight SMS Integration for Embedded Apps

Embedded or back-office apps that only need to send notifications and confirm delivery benefit from a smaller dependency surface. The six-endpoint Messaging API is enough for outbound and inbound flows without the complexity of the full Esendex spec, reducing review effort for security-sensitive deployments.

Example prompt: Call POST /messagedispatcher with one recipient and a notification body, then GET /messageheaders for the latest delivery status.

### AI Agent Notifier via Jentic

An AI workflow agent can be wired through Jentic to send notification SMS without a custom integration. The agent searches by intent, loads the POST /messagedispatcher schema, and executes with HTTP Basic credentials scoped from the vault - useful for scheduled-task agents that text on completion or failure.

Example prompt: Use Jentic search('send a notification sms'), 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 |
| GET | /messageheaders | List message headers |
| GET | /messageheaders/{messageId} | Get a specific message header by ID |
| GET | /inbox/messages | Get inbound messages |
| DELETE | /inbox/messages/{messageId} | Delete an inbound message |
| GET | /accounts | List accounts available to the user |

## Key resources

- **MessageDispatcher** — Send one or many SMS messages in a single call
- **MessageHeaders** — List sent message headers with delivery status
- **Inbox** — Read and delete inbound messages received on your numbers
- **Accounts** — List Esendex accounts available to the authenticated user

## Why Jentic

- **Setup:** Wiring the Esendex Messaging API by hand means combining your email and API password into an HTTP Basic header and building your own retries against api.esendex.com. Through Jentic you install once, import the Esendex Messaging API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** The Messaging API 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 a destructive operation like DELETE /inbox/messages/{messageId} is only reachable if you include it.
- **Credential handling:** Your Esendex email and API password are stored once, encrypted, by your own Jentic One instance and combined into the Basic header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a notification sms' or 'read the sms inbox', and Jentic returns the matching Messaging API operation with its input schema so the agent calls the right endpoint without choosing between the two Esendex specs.

## Related APIs

- **Esendex API** — Full-surface Esendex API - same vendor, broader scope (17 endpoints including surveys and rich content)
- **ePayTools Orchestra API** — Payment orchestration - pair with SMS for receipts and 3DS step-up codes
- **Escrow.com API** — Escrow payments - pair with SMS to notify buyers and sellers of escrow state changes

## FAQ

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

Esendex publishes developer documentation but not a downloadable OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call the Esendex Messaging 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 Messaging API use?

The Messaging API uses HTTP Basic authentication with your Esendex account email and API password. Through Jentic the credentials are stored encrypted in your Jentic One instance and injected at execution time so raw secrets never enter the agent's context.

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

Yes. POST /messagedispatcher accepts one or many message objects (recipient, body, account reference) and returns batch metadata, which you can resolve to per-message status with GET /messageheaders/{messageId}.

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

Esendex governs throughput per plan but does not encode the limits in the spec. Submit large sends in a single /messagedispatcher batch rather than many parallel calls and respect 429 backoff.

### How do I read inbound messages through Jentic?

Search 'read esendex inbox messages'. Jentic returns the GET /inbox/messages operation, you load its schema, and execute. Basic auth is injected from the vault.

### How is this API different from the larger Esendex API?

The Messaging API has only six endpoints - send, read, delete inbound, list accounts. The larger Esendex API adds rich content, surveys, scheduled batches, conversation threads, and webhook subscriptions. Pick this one when you only need core SMS messaging.

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

Yes. Because Jentic One is self-hosted, you decide which of the Messaging API's six operations your agent may call, so you can allow read-and-send operations like POST /messagedispatcher and GET /inbox/messages while leaving the rest off. A destructive operation such as DELETE /inbox/messages/{messageId} is only reachable if you explicitly include it in the allowed set. Your Esendex email and API password are stored encrypted by your own instance and combined into the HTTP Basic header at execution time, so raw credentials never enter the agent's context.
