canonical: https://jentic.com/apis/lettermint.co/lettermint

# Lettermint Team API

Jentic publishes the only available OpenAPI specification for Lettermint Team API, keeping it validated and agent-ready. Lettermint is a transactional email platform that lets developers send messages, manage sender domains, organise projects, configure inbound routes, and react to delivery events through webhooks. The 46 endpoints cover team management, domain DNS verification, project-scoped API tokens, message inspection, suppression lists, and aggregate stats so an integration can run a multi-project email pipeline end to end.

## For AI agents

Send and inspect transactional email through Lettermint, manage verified sending domains, project-scoped tokens, suppressions, and webhooks for delivery events.

## Scope

Does not handle SMS, push notifications, or marketing campaign design - use for transactional email sending, domain verification, and inbound parsing only.

## Capabilities

- Verify and manage sending domains with DNS record checks via /domains and `/domains/{domainId}/dns-records/verify`
- Organise sending into projects, rotate per-project API tokens, and manage members under /projects
- Inspect delivered messages including headers, HTML, plain text, and event timeline at `/messages/{messageId}`
- Subscribe to delivery, bounce, and inbound events with the /webhooks endpoints
- Maintain a suppression list to block known-bad recipients via /suppressions
- Configure inbound routes and verify their inbound domains using `/projects/{projectId}/routes` and `/routes/{routeId}/verify-inbound-domain`
- Track team-wide email volume and engagement with /stats and `/team/usage`

## Use cases

### Multi-project email infrastructure

A SaaS company wants separate sending reputations for product, billing, and marketing. Using POST /projects to create each silo, POST `/projects/{projectId}/rotate-token` to issue scoped credentials, and the /domains endpoints to verify a dedicated sending domain per project, the team isolates concerns so a marketing dispute does not affect transactional delivery. This mirrors the multi-tenant pattern used by larger ESPs without leaving Lettermint.

Example prompt: Create a project named 'billing-prod' via POST /projects, rotate its API token with POST `/projects/{projectId}/rotate-token`, and add the verified domain to it via PUT `/domains/{domainId}/projects.`

### Delivery debugging and inbox forensics

When a customer complains they never received an email, support needs to inspect what was sent and what happened to it. The `/messages/{messageId}` endpoint returns metadata, and `/messages/{messageId}/events`, `/messages/{messageId}/source`, `/messages/{messageId}/html`, and `/messages/{messageId}/text` return the event timeline and the original payloads. Engineers can confirm the message was sent, see if it bounced, and read the exact body that left the system.

Example prompt: For messageId 'msg_abc123', call GET `/messages/{messageId}/events` and GET `/messages/{messageId}/html` to confirm the bounce reason and inspect the rendered body.

### Inbound parsing into application logic

Product teams that want users to reply by email (support tickets, comment-by-email) configure inbound routes with POST `/projects/{projectId}/routes` and verify the inbound domain via POST `/routes/{routeId}/verify-inbound-domain.` Lettermint then parses incoming mail and posts the structured payload to the team's webhook so the application can create a ticket or thread reply automatically.

Example prompt: Create an inbound route on projectId 'proj_42' with POST `/projects/{projectId}/routes` pointing at https://example.com/inbound, then verify the inbound domain.

### AI agent transactional email via Jentic

An AI customer-success agent needs to send order confirmations and follow-ups through the company's verified Lettermint domain. Through Jentic the agent searches for 'send a transactional email' or 'check delivery status', loads the matching Lettermint operation, and executes with the bearer token held in your Jentic One instance. The agent gets reliable delivery without ever seeing the raw API token.

Example prompt: Use Jentic to search 'check message delivery status', load GET `/messages/{messageId}`, and return whether the latest order confirmation was delivered or bounced.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/domains` | Add a sending domain. |
| POST | `/domains/{domainId}/dns-records/verify` | Verify domain DNS records. |
| GET | `/messages` | List sent messages. |
| GET | `/messages/{messageId}/events` | Get message event timeline. |
| POST | `/projects` | Create a project. |
| POST | `/projects/{projectId}/rotate-token` | Rotate a project API token. |
| POST | `/webhooks` | Create a webhook subscription. |
| POST | `/suppressions` | Add a recipient to the suppression list. |

## Key resources

- **Domains** — Add, verify, and manage sending domains and their DNS records.
- **Projects** — Create scoped project silos with rotatable tokens, members, and routes.
- **Messages** — Inspect sent messages, including events, source, HTML, and plain-text bodies.
- **Webhooks** — Subscribe to delivery, bounce, complaint, and inbound events.
- **Suppressions** — Block recipients from receiving further mail.
- **Stats** — Aggregate team-level send and engagement statistics.
- **Team** — Manage team settings, members, and usage.

## Why Jentic

- **Setup:** Wiring the Lettermint Team API by hand means managing its bearer token, including per-project tokens you rotate, verifying DNS records for sending domains, and calling api.lettermint.co yourself. Through Jentic you install once, import the Lettermint Team API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Lettermint puts the domain and project ids in the URL path (`/domains/{domainId}/dns-records/verify`, `/projects/{projectId}/rotate-token`), so a rule can pin your agent to one project or domain: it acts only on that resource. You choose the operations it may call, so destructive ones like token rotation or suppression changes are not included unless you add them.
- **Credential handling:** Your Lettermint bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'verify a sending domain' or 'check why a message bounced', and Jentic returns the matching Lettermint operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Resend API** — Developer-focused transactional email API with a similar bearer-auth, message-and-domain model.
- **SendGrid Email Activity API** — Established large-scale transactional and marketing email platform with deep deliverability tooling.
- **MailerSend API** — Transactional email API with templates, inbound routing, and team-friendly UI.

## FAQ

### Why is there no official OpenAPI spec for Lettermint Team API?

Lettermint does not publish a maintained OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Lettermint 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 Lettermint Team API use?

The API uses HTTP Bearer authentication with a Team API token, generated from the team settings page. Through Jentic the token is held in your Jentic One instance, so the agent calls /domains, /messages, and /projects without ever holding the raw secret.

### Can I run separate sender reputations per project with Lettermint?

Yes. POST /projects creates an isolated project, POST `/projects/{projectId}/rotate-token` issues a project-scoped credential, and PUT `/domains/{domainId}/projects` attaches a verified sending domain. This separates marketing, transactional, and billing sends so deliverability problems on one stream do not affect the others.

### What are the rate limits for the Lettermint Team API?

Lettermint does not publish exact rate-limit numbers in the public spec. Treat sending and listing endpoints as standard HTTP APIs - implement pagination on /messages, batch suppression updates, and back off on 429 responses with the Retry-After header.

### How do I subscribe to bounce events through Jentic?

Run 'pip install jentic', search for 'create a webhook for email events', and Jentic returns POST /webhooks. Load the schema, supply the callback URL and event types (e.g., bounce, complaint, delivered), and execute. Lettermint will then POST event payloads to your endpoint.

### Can I receive replies to outgoing emails programmatically?

Yes. Configure an inbound route with POST `/projects/{projectId}/routes` pointing at your webhook, then call POST `/routes/{routeId}/verify-inbound-domain` to validate the receiving MX setup. Lettermint will parse incoming mail and post structured payloads to your endpoint.

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

Yes. Because you run Jentic One yourself, your own rules decide which Lettermint operations and credentials your agent may use. Lettermint puts the domain and project ids in the URL path, such as `/domains/{domainId}/dns-records/verify` and `/projects/{projectId}/rotate-token`, so a rule can pin the agent to a single project or domain and let it act only on that resource. You also choose which operations are exposed, so destructive calls like POST `/projects/{projectId}/rotate-token` or POST /suppressions stay out of reach unless you explicitly add them.
