day3 API
The day3 API sends transactional email, keeps your users in sync with your audiences, and runs campaigns and automations. It takes and returns JSON over HTTPS, and every request authenticates with one API key.
All endpoints live under one base URL:
https://go.day3.app/api/v1Your first request
curl https://go.day3.app/api/v1/audiences \
-H "Authorization: Bearer $DAY3_API_KEY"A 200 with a data array means you’re set up. No key yet? The
quickstart gets you from nothing to a delivered email in three
steps.
Start here
- Send transactional email. Password resets, receipts and magic links, with a request shape that matches Resend’s.
- Sync your users. Upsert contacts by email, up to 1,000 per call.
- Migrate a list from Resend, Mailchimp or Kit without mailing anyone who already unsubscribed.
- Receive webhooks for deliveries, bounces and complaints.
- Run campaigns and enroll contacts into automations.
- Connect an AI editor such as Claude Code or Cursor over MCP.
Read Conventions once. Pagination, idempotency, ids and rate limits work the same on every endpoint and aren’t repeated per page.
Objects
| Object | Id prefix | What it is |
|---|---|---|
eml_ | One transactional email. | |
| Audience | aud_ | A list of contacts. Everything else lives inside one. |
| Contact | sub_ | A subscriber. Unique by email within an audience. |
| Field | fld_ | A registered custom attribute key. |
| Segment | seg_ | A saved filter, evaluated live. |
| Topic | top_ | A category a contact can opt out of on its own. |
| Campaign | cmp_ | One email to a whole audience. |
| Automation | aut_ | A published flow a contact runs through. |
| Suppression | sup_ | An account-wide “never email this address”. |
What lives in the app
Sending domains, senders and OAuth clients live in the app at go.day3.app . Automations are built on the app’s canvas and only enrolled into from code. Verify a sending domain under Sending before you mail real subscribers.
Last updated on