
Developers
A simple, headless API — no UI required.
Launch campaigns, send transactional messages, manage sending domains, record outcomes for attribution, and receive real-time delivery and engagement events. Every request is scope-checked and rate-limited; every write is idempotent.
Download the OpenAPI spec (.yaml) →Copy commercial-insurance recipes →Authentication
Public API clients send one standard header: Authorization: Bearer s16_live_…. Trusted Seven16 product-to-product integrations may continue using the stronger signed HMAC request contract with timestamp and single-use nonce. Keys are issued by our team today — self-serve key creation is roadmap, not shipped. Reach out via the support page to get provisioned; the key value is shown once.
MCP for AI agents
Claude and Codex connections use OAuth—not a copied Seven16 API key—and are available only to an allow-listed private pilot. Each approval binds one user, one client, and one workspace. Its bounded analyst can return cited campaign metadata, audience and exclusion counts, performance/readiness, deliverability, aggregate suppressions, and minimized reply outcomes. Authorized writers may separately consent to saving typed, non-executable draft proposals for human review. Connected campaign proposals include an email, landing page, and qualification form; a human creates private drafts from their Seven16 review page. The assistant cannot export contacts, search arbitrary data, materialize campaigns, change suppression, approve, publish, enroll, or send. Legacy Seven16 family integrations retain their separate system-key contract. Authorized users can practice first in the provider-disconnected Claude/Codex training sandbox.
Quickstart
Once provisioned, listing your campaigns is the simplest call to verify your key and tenant mapping end to end.
curl https://app.seven16email.com/api/v1/campaigns -H "Authorization: Bearer s16_live_..."Prefer Node.js? The release-ready @seven16/email client and copyable insurance workflow recipes are available on the recipes page.
Endpoints
Contacts & Imports
| GET/POST | /v1/contacts | List, find, or create contacts. |
| GET/PATCH/DELETE | /v1/contacts/{id} | Read, update, or archive a contact. |
| GET/POST | /v1/audiences | Manage static lists and tags. |
| GET/POST | /v1/segments | Manage validated dynamic segments. |
| GET/POST | /v1/fields | Manage custom-field definitions. |
| GET/POST/DELETE | /v1/suppressions | Manage tenant suppression records. |
| POST | /v1/imports | Batch CSV import — create, update, upsert, or suppression-only. |
Campaigns
| GET/POST | /v1/campaigns | List or create campaigns. |
| GET/PATCH | /v1/campaigns/{id} | Read or update a campaign. |
| POST | /v1/campaigns/{id}/launch | Launch a campaign (quota-gated). |
Templates & Sequences
| GET/POST | /v1/templates | List or create reusable templates. |
| GET/POST | /v1/sequences | List or create automated sequences. |
| POST | /v1/enrollments | Enroll a contact into a sequence. |
Sending
| POST | /v1/transactional | Send a 1:1 transactional message. |
| POST | /v1/messages | Send a one-off message with attachments. |
| GET/POST | /v1/domains | List or create verified sending domains. |
| POST | /v1/domains/{id}/verify | Re-check a domain's DNS records. |
| GET/POST | /v1/senders | Manage sender identities. |
Family integration
| POST | /v1/tenants/link | One-click provision — link a family product's tenant to a Seven16 Email workspace. |
| POST | /v1/outcomes | Record a downstream outcome (submission, quote, bind, premium) attributed to a campaign. |
Analytics & Webhooks
| GET | /v1/analytics/overview | Account-level send/engagement summary. |
| GET | /v1/analytics/campaigns/{id} | Per-campaign performance. |
| GET/POST | /v1/webhooks | List or register an outbound webhook endpoint. |
| GET | /v1/platform/health | Liveness/readiness for platform monitoring. |
AI agents (MCP)
| POST | /mcp | OAuth resource server for allow-listed Claude/Codex private pilots; read-only by default and disabled by default. |
Webhooks
Register an endpoint to receive delivery and engagement events — sent, delivered, opened, clicked, replied, bounced, and unsubscribed — in real time. Failed deliveries retry with exponential backoff.
Rate limits
120 requests/minute per API key. A 429 response carries a Retry-After header.
Errors
Every non-2xx response is { ok: false, error: "<code>" }. A missing scope returns 403 with missing_scope:<scope>.
Ready to build?
Request API access, then verify your provisioned key with the quickstart.
Request API access