# Parlo
> Developer email API for transactional and marketing email.
> One REST API. Fair per-email pricing. DKIM/SPF/DMARC checks. Ships with an MCP
> server and SDKs so AI coding agents can integrate it directly.
Base URL: https://api.getparlo.io/v1
Auth: HTTP bearer token — `Authorization: Bearer parlo_live_xxx`
The API is transactional-only (`/emails`). Marketing (audiences, templates,
broadcasts) is designed and sent from the Parlo dashboard, not the API.
## Send a transactional email
POST /v1/emails
```
curl https://api.getparlo.io/v1/emails \
-H "Authorization: Bearer parlo_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"from": "you@yourdomain.com",
"to": "user@example.com",
"subject": "Welcome, [name]",
"html": "
Hi [name]
",
"data": { "name": "Alice" }
}'
```
Response: `{ "id": "", "status": "queued" }`
Optional fields: text, reply_to, cc, bcc, tags (object), data (object, fills [placeholder] tokens).
Optional header: Idempotency-Key (safe retries).
Note: transactional email has no unsubscribe link / List-Unsubscribe header.
## Email status
GET /v1/emails/:id -> { id, to, subject, status, opened, clicked, last_event_at, created_at }
status: queued | sent | delivered | bounced | complained | failed
## Domains
POST /v1/domains { "name": "yourdomain.com" } -> returns DNS records (DKIM/SPF) to add.
GET /v1/domains/:id -> status: pending | verified | failed
POST /v1/domains/:id/verify -> re-check DNS
## Marketing
Marketing campaigns (audiences, templates, broadcasts) are designed and sent
from the Parlo dashboard, not the API. Contacts arrive by CSV import or an embed
form. The API is transactional-only at launch.
## Errors
JSON body: { "message": string, "code": string }
401 invalid key · 422 validation error (codes: invalid, blank, domain_not_verified,
recipient_suppressed, quota_exceeded, already_registered) · 404 not found ·
502 provider_error (upstream SES error)
## Links
- OpenAPI 3.1 spec: https://getparlo.io/openapi.yaml
- Full API reference (single file): https://getparlo.io/llms-full.txt
- Docs: https://getparlo.io/docs
- Pricing: https://getparlo.io/pricing
- Sign up: https://app.getparlo.io/register