# SNDR > SNDR is an email API for developers: verify a domain, send transactional email with one HTTPS request, and receive signed delivery webhooks. Base URL: https://api.sndr.sh/v1. Auth: `Authorization: Bearer `. Every page below is plain Markdown. For the whole documentation in one file, read the first link under Optional. ## Guides - [Introduction](https://sndr.sh/docs.md): SNDR is an email API for developers. Verify a domain, send with one request, and track every message. - [Quickstart](https://sndr.sh/docs/getting-started.md): Send your first email with SNDR in a few minutes. - [JavaScript SDK](https://sndr.sh/docs/quickstart.md): Send from Node.js, Bun, Deno or edge runtimes with the official SDK. - [Use with AI](https://sndr.sh/docs/ai.md): Give ChatGPT, Claude, Cursor or any agent the SNDR docs. - [Send email](https://sndr.sh/docs/sending.md): The fields, limits and options of a send request. - [Domains](https://sndr.sh/docs/domains.md): Verify the domains you send from. - [Webhooks](https://sndr.sh/docs/webhooks.md): Get signed HTTP notifications when emails are delivered, bounce or fail. ## API Reference - [API overview](https://sndr.sh/docs/api-reference.md): Base URL, authentication, scopes and conventions of the SNDR API. - [Errors](https://sndr.sh/docs/errors.md): What each error code means and how to fix it. - [Emails](https://sndr.sh/docs/api/emails.md): Send emails and look up their status. - [Send email](https://sndr.sh/docs/api/emails/send-email.md): Queue an email for delivery. - [List emails](https://sndr.sh/docs/api/emails/list-emails.md): List emails sent from your workspace, newest first. - [Get email](https://sndr.sh/docs/api/emails/get-email.md): Retrieve one email with its current status. - [Domains](https://sndr.sh/docs/api/domains.md): Add, verify and remove the domains you send from. - [List domains](https://sndr.sh/docs/api/domains/list-domains.md): List all sending domains on your workspace with their status and DNS records. - [Add domain](https://sndr.sh/docs/api/domains/add-domain.md): Add a sending domain. - [Verify domain](https://sndr.sh/docs/api/domains/verify-domain.md): Run the DNS checks now and return the updated domain. - [Delete domain](https://sndr.sh/docs/api/domains/delete-domain.md): Remove a sending domain. - [Templates](https://sndr.sh/docs/api/templates.md): Subjects and bodies you reuse across sends. - [List templates](https://sndr.sh/docs/api/templates/list-templates.md): List all templates on your workspace, most recently updated first. - [Create template](https://sndr.sh/docs/api/templates/create-template.md): Create a template. - [Get template](https://sndr.sh/docs/api/templates/get-template.md): Retrieve one template, including its html and text body. - [Update template](https://sndr.sh/docs/api/templates/update-template.md): Update the fields you send; omitted fields keep their value. - [Delete template](https://sndr.sh/docs/api/templates/delete-template.md): Permanently delete a template. - [Contacts](https://sndr.sh/docs/api/contacts.md): The people you send broadcasts to. - [List contacts](https://sndr.sh/docs/api/contacts/list-contacts.md): List contacts on your workspace, newest first. - [Create contact](https://sndr.sh/docs/api/contacts/create-contact.md): Create one contact. - [Import contacts](https://sndr.sh/docs/api/contacts/import-contacts.md): Upsert up to 500 contacts by email. - [Get contact](https://sndr.sh/docs/api/contacts/get-contact.md): Retrieve one contact by ID. - [Update contact](https://sndr.sh/docs/api/contacts/update-contact.md): Update the fields you send; omitted fields are unchanged. - [Delete contact](https://sndr.sh/docs/api/contacts/delete-contact.md): Permanently delete a contact and its group memberships. - [Contact Groups](https://sndr.sh/docs/api/contact-groups.md): Lists of contacts for broadcasts. - [List contact groups](https://sndr.sh/docs/api/contact-groups/list-contact-groups.md): List all contact groups on your workspace, newest first, with member counts. - [Create contact group](https://sndr.sh/docs/api/contact-groups/create-contact-group.md): Create a contact group. - [Get contact group](https://sndr.sh/docs/api/contact-groups/get-contact-group.md): Retrieve one contact group with its member count. - [Update contact group](https://sndr.sh/docs/api/contact-groups/update-contact-group.md): Update the group’s name and/or description. - [Delete contact group](https://sndr.sh/docs/api/contact-groups/delete-contact-group.md): Delete a group and its memberships. - [List group members](https://sndr.sh/docs/api/contact-groups/list-group-members.md): List the contacts in a group, most recently added first. - [Add group members](https://sndr.sh/docs/api/contact-groups/add-group-members.md): Add contacts to a group by ID. - [Remove group members](https://sndr.sh/docs/api/contact-groups/remove-group-members.md): Remove contacts from a group. - [Broadcasts](https://sndr.sh/docs/api/broadcasts.md): Send one email to a contact group. - [List broadcasts](https://sndr.sh/docs/api/broadcasts/list-broadcasts.md): List broadcasts on your workspace, newest first. - [Create broadcast](https://sndr.sh/docs/api/broadcasts/create-broadcast.md): Create a draft broadcast. - [Get broadcast](https://sndr.sh/docs/api/broadcasts/get-broadcast.md): Retrieve one broadcast with its body and send progress (total_recipients, sent_count, failed_count). - [Update broadcast](https://sndr.sh/docs/api/broadcasts/update-broadcast.md): Update a draft broadcast. - [Delete broadcast](https://sndr.sh/docs/api/broadcasts/delete-broadcast.md): Delete a draft broadcast. - [Send broadcast](https://sndr.sh/docs/api/broadcasts/send-broadcast.md): Queue a draft for immediate delivery to the group’s currently subscribed contacts. - [List broadcast recipients](https://sndr.sh/docs/api/broadcasts/list-broadcast-recipients.md): List per-recipient delivery rows in queue order. - [Webhooks](https://sndr.sh/docs/api/webhooks.md): Endpoints for email events, and their signing secrets. - [List webhooks](https://sndr.sh/docs/api/webhooks/list-webhooks.md): List all webhooks on your workspace. - [Create webhook](https://sndr.sh/docs/api/webhooks/create-webhook.md): Register a webhook. - [Delete webhook](https://sndr.sh/docs/api/webhooks/delete-webhook.md): Delete a webhook. - [List signing keys](https://sndr.sh/docs/api/webhooks/list-signing-keys.md): List the webhook’s rotation keys (status primary, secondary or retired) without secrets. - [Stage signing key](https://sndr.sh/docs/api/webhooks/stage-signing-key.md): Create a secondary key and return its secret once. - [Promote signing key](https://sndr.sh/docs/api/webhooks/promote-signing-key.md): Make a secondary key the primary. - [Retire signing key](https://sndr.sh/docs/api/webhooks/retire-signing-key.md): Retire a secondary key without promoting it. - [Suppressions](https://sndr.sh/docs/api/suppressions.md): Addresses SNDR will not send to. - [List suppressions](https://sndr.sh/docs/api/suppressions/list-suppressions.md): List every suppressed address on your workspace, newest first. - [Add suppression](https://sndr.sh/docs/api/suppressions/add-suppression.md): Suppress an address, e.g. - [Remove suppression](https://sndr.sh/docs/api/suppressions/remove-suppression.md): Remove an address so emails to it are attempted again. - [Analytics](https://sndr.sh/docs/api/analytics.md): Totals for sends, deliveries, bounces and complaints. - [Get analytics](https://sndr.sh/docs/api/analytics/get-analytics.md): Counts emails created in the window by status; sent counts every email, whatever its status. ## Partner API - [Introduction](https://sndr.sh/docs/cranl.md): Connect your platform to SNDR accounts with OAuth 2.0 and act on your users’ behalf. - [Overview](https://sndr.sh/docs/cranl/overview.md): Base URL, credential format, scopes, rate limits, and a five-step quickstart. - [Authentication](https://sndr.sh/docs/cranl/authentication.md): Complete OAuth 2.0 Authorization Code flow with optional PKCE. - [Token management](https://sndr.sh/docs/cranl/tokens.md): Access token lifetime, refresh rotation, revocation, and security practices. - [Me](https://sndr.sh/docs/cranl/me.md): Connected user, organization, plan, and the upgrade URL. - [Get account](https://sndr.sh/docs/cranl/me/get-account.md): Returns the connected user, their organization (current plan slug and billing/upgrade URL), and the scopes granted to your token. - [Emails](https://sndr.sh/docs/cranl/emails.md): Send transactional emails and retrieve delivery history. - [Send email](https://sndr.sh/docs/cranl/emails/send-email.md): Queue an email for delivery. - [List emails](https://sndr.sh/docs/cranl/emails/list-emails.md): List emails sent from the connected account, newest first. - [Get email](https://sndr.sh/docs/cranl/emails/get-email.md): Retrieve one email with its current status. - [Analytics](https://sndr.sh/docs/cranl/analytics.md): Aggregate email performance metrics for the connected account. - [Get analytics](https://sndr.sh/docs/cranl/analytics/get-analytics.md): Counts emails created in the window by status; sent counts every email, whatever its status. - [Domains](https://sndr.sh/docs/cranl/domains.md): Add, verify, and remove sending domains on the connected account. - [List domains](https://sndr.sh/docs/cranl/domains/list-domains.md): List all sending domains on the connected account with their status and DNS records. - [Add domain](https://sndr.sh/docs/cranl/domains/add-domain.md): Add a sending domain. - [Verify domain](https://sndr.sh/docs/cranl/domains/verify-domain.md): Run the DNS checks now and return the updated domain. - [Delete domain](https://sndr.sh/docs/cranl/domains/delete-domain.md): Remove a sending domain. - [Templates](https://sndr.sh/docs/cranl/templates.md): Create and manage reusable email templates with variable interpolation. - [List templates](https://sndr.sh/docs/cranl/templates/list-templates.md): List all templates on the connected account, most recently updated first. - [Create template](https://sndr.sh/docs/cranl/templates/create-template.md): Create a template. - [Get template](https://sndr.sh/docs/cranl/templates/get-template.md): Retrieve one template, including its html and text body. - [Update template](https://sndr.sh/docs/cranl/templates/update-template.md): Update the fields you send; omitted fields keep their value. - [Delete template](https://sndr.sh/docs/cranl/templates/delete-template.md): Permanently delete a template. - [Contacts](https://sndr.sh/docs/cranl/contacts.md): Create, manage, and bulk-import subscriber contacts. - [List contacts](https://sndr.sh/docs/cranl/contacts/list-contacts.md): List contacts on the connected account, newest first. - [Create contact](https://sndr.sh/docs/cranl/contacts/create-contact.md): Create one contact. - [Import contacts](https://sndr.sh/docs/cranl/contacts/import-contacts.md): Upsert up to 500 contacts by email. - [Get contact](https://sndr.sh/docs/cranl/contacts/get-contact.md): Retrieve one contact by ID. - [Update contact](https://sndr.sh/docs/cranl/contacts/update-contact.md): Update the fields you send; omitted fields are unchanged. - [Delete contact](https://sndr.sh/docs/cranl/contacts/delete-contact.md): Permanently delete a contact and its group memberships. - [Contact Groups](https://sndr.sh/docs/cranl/contact-groups.md): Organize contacts into segments for targeted broadcasts. - [List contact groups](https://sndr.sh/docs/cranl/contact-groups/list-contact-groups.md): List all contact groups on the connected account, newest first, with member counts. - [Create contact group](https://sndr.sh/docs/cranl/contact-groups/create-contact-group.md): Create a contact group. - [Get contact group](https://sndr.sh/docs/cranl/contact-groups/get-contact-group.md): Retrieve one contact group with its member count. - [Update contact group](https://sndr.sh/docs/cranl/contact-groups/update-contact-group.md): Update the group’s name and/or description. - [Delete contact group](https://sndr.sh/docs/cranl/contact-groups/delete-contact-group.md): Delete a group and its memberships. - [List group members](https://sndr.sh/docs/cranl/contact-groups/list-group-members.md): List the contacts in a group, most recently added first. - [Add group members](https://sndr.sh/docs/cranl/contact-groups/add-group-members.md): Add contacts to a group by ID. - [Remove group members](https://sndr.sh/docs/cranl/contact-groups/remove-group-members.md): Remove contacts from a group. - [Broadcasts](https://sndr.sh/docs/cranl/broadcasts.md): Create and send bulk email campaigns to contact groups. - [List broadcasts](https://sndr.sh/docs/cranl/broadcasts/list-broadcasts.md): List broadcasts on the connected account, newest first. - [Create broadcast](https://sndr.sh/docs/cranl/broadcasts/create-broadcast.md): Create a draft broadcast. - [Get broadcast](https://sndr.sh/docs/cranl/broadcasts/get-broadcast.md): Retrieve one broadcast with its body and send progress (total_recipients, sent_count, failed_count). - [Update broadcast](https://sndr.sh/docs/cranl/broadcasts/update-broadcast.md): Update a draft broadcast. - [Delete broadcast](https://sndr.sh/docs/cranl/broadcasts/delete-broadcast.md): Delete a draft broadcast. - [Send broadcast](https://sndr.sh/docs/cranl/broadcasts/send-broadcast.md): Queue a draft for immediate delivery to the group’s currently subscribed contacts. - [List broadcast recipients](https://sndr.sh/docs/cranl/broadcasts/list-broadcast-recipients.md): List per-recipient delivery rows in queue order. - [Webhooks](https://sndr.sh/docs/cranl/webhooks.md): Register HTTP endpoints that receive real-time email events. - [List webhooks](https://sndr.sh/docs/cranl/webhooks/list-webhooks.md): List all webhooks on the connected account. - [Create webhook](https://sndr.sh/docs/cranl/webhooks/create-webhook.md): Register a webhook. - [Delete webhook](https://sndr.sh/docs/cranl/webhooks/delete-webhook.md): Delete a webhook. - [List signing keys](https://sndr.sh/docs/cranl/webhooks/list-signing-keys.md): List the webhook’s rotation keys (status primary, secondary or retired) without secrets. - [Stage signing key](https://sndr.sh/docs/cranl/webhooks/stage-signing-key.md): Create a secondary key and return its secret once. - [Promote signing key](https://sndr.sh/docs/cranl/webhooks/promote-signing-key.md): Make a secondary key the primary. - [Retire signing key](https://sndr.sh/docs/cranl/webhooks/retire-signing-key.md): Retire a secondary key without promoting it. - [Suppressions](https://sndr.sh/docs/cranl/suppressions.md): Manage the suppression list that blocks emails to specific addresses. - [List suppressions](https://sndr.sh/docs/cranl/suppressions/list-suppressions.md): List every suppressed address on the connected account, newest first. - [Add suppression](https://sndr.sh/docs/cranl/suppressions/add-suppression.md): Suppress an address, e.g. - [Remove suppression](https://sndr.sh/docs/cranl/suppressions/remove-suppression.md): Remove an address so emails to it are attempted again. - [Error codes](https://sndr.sh/docs/cranl/errors.md): Every error code returned by the Partner API and how to handle it. ## Optional - [All docs in one file](https://sndr.sh/llms-full.txt): every page above, concatenated. - [Partner API OpenAPI spec](https://sndr.sh/docs/cranl/openapi.json): machine-readable spec for code generators.