Concept
How Emailit works
The Emailit mental model in one page. Workspaces, domains and API keys, the ways to send and receive, the life of an email, credits and sandbox mode.
This page explains the main pieces of Emailit and how they fit together. Read it once before you build anything. The rest of the docs assume you know these terms.
Accounts and workspaces
Your account is you: an email address, a password, and optional two-factor authentication or passkeys. Everything you send lives in a workspaceWorkspaceA container for everything you send: domains, API keys, emails, contacts, templates, members and billing. An account can belong to several workspaces.. One account can belong to several workspaces, and you switch between them with the workspace switcher at the top of the sidebar. A common setup is one workspace per product or per environment, for example Acme and Acme Staging.
Each workspace has its own:
| Resource | What it is |
|---|---|
| Sending domains | Domains you verify with DNS records so Emailit can send for them. Every From address must be on a verified sending domainSending domainA domain you own and verify with DNS records so Emailit can send mail from it with SPF, DKIM and a custom return path.. |
| API keys | Secrets that start with secret_. They authenticate the REST API, the MCP server and the SMTP relay. A key is either Full Access or Sending Only. |
| Members | The people who can open the workspace, as Admin or Member. Admins also manage settings, API keys, members and billing. |
| Billing | A plan, a creditCreditThe unit Emailit bills in. Each action costs a fixed number of credits, for example 1 for an API or SMTP email and 2 for a campaign email. balance, auto-refill settings and invoices. |
| Data | Emails, events, logs, contacts, audiences, templates, webhooks and suppressions. |
API keys, domains, contacts and credits belong to one workspace. An API key never works in a different workspace.
Ways to send, and one way to receive
| Channel | Use it for | How |
|---|---|---|
| REST API | Transactional email from your code: sign-ups, password resets, receipts | POST https://api.emailit.com/v2/emails with an API key, or an SDK |
| SMTP relay | Apps, frameworks and tools that already speak SMTP | Host smtp.emailit.com, username emailit, your API key as the password |
| Campaigns and automations | Newsletters, announcements and onboarding sequences to your contacts | Built in the dashboard under Email Marketing |
| Inbound | Receiving email on your domain, for replies or support | An MX record on inbound.<your domain>. Each message fires email.received. |
Every channel uses the same verified domains and the same suppression list. The API and the SMTP relay also share API keys, request logs and one set of sending limits. To choose between the two, see API or SMTP.
The life of an email
Every email follows the same path, whichever way you send it:
- Accepted. The API or SMTP relay checks the request: a valid API key, a From address on a verified domain, sandbox rules, sending limits and credits. Each recipient becomes a separate email with its own
em_ID and the statusaccepted, orscheduledif you set a send time. The API emitsemail.acceptedoremail.scheduled. - Queued and checked. A delivery worker picks the email up and checks it again. A recipient on your suppression list makes the email
suppressed. A paused domain, a suspended workspace or an empty credit balance makes itheld. - Signed and scored. Emailit signs the message with DKIM for your domain and sets the return path to
emailit.<your domain>. If tracking is on, it rewrites links and adds an open pixel. Then it runs a spam check. A message that scores 7 or more isheld, and the matched rules appear under Spam Checks on the email’s page. - Delivery attempts. Emailit connects to the recipient’s mail server. A permanent rejection (a 5xx reply) makes the email
bounced. A temporary failure (a 4xx reply or a timeout) makes itattempted, and Emailit retries up to 7 times over about 21 hours before it gives up and marks itbounced. - Delivered. The receiving server accepted the message, so the email is
delivered. A bounce report that arrives later can still turn it intobounced, and a spam complaint from the mailbox provider makes itcomplained. Bounced and complaining addresses can be added to your suppression list automatically. - Opened and clicked. If the domain has a verified tracking subdomain, opens make the email
loadedand clicks make itclicked.
Each status change is recorded as an event. Events appear on the email’s page and in Email APIEvents. They’re also sent to your webhooks as signed JSON, in batches of up to 100 events per request.
| Group | Statuses |
|---|---|
| On the way | accepted, scheduled, attempted |
| Arrived | delivered, loaded, clicked, received (inbound) |
| Stopped | bounced, failed, rejected, suppressed, complained, canceled, held |
You can cancel an email while it’s scheduled, accepted or attempted. You can retry a held, bounced, failed or suppressed email after you fix the cause. See Email statuses for what each status means.
Credits
Emailit bills in credits. Each workspace has a balance made up of the credits included with its plan every month plus any credits you buy. Included credits are used first. Purchased credits never expire.
| Action | Credits |
|---|---|
| Email sent with the API or SMTP (per recipient) | 1 |
| Inbound email received | 1 |
| Campaign email (per recipient) | 2 |
| Automation run | 3 |
| Email verification (per address) | 5 |
If the balance can’t cover a send, the API returns 402 and nothing is sent. Emails that reach the delivery queue without enough credits are held, and you can retry them after you add credits. Turn on auto-refill so production mail never stops. For plans and prices, see Credits and the pricing page.
Sandbox and production access
Every new workspace starts in sandbox mode. In sandbox mode you can only send to the account email addresses of workspace members, and campaigns are blocked. Sending to anyone else fails: the API returns 403 unverified_workspace_recipient and the SMTP relay replies 550.
To send to real recipients, verify at least one sending domain. Then an Admin requests production access from the sandbox banner or from WorkspaceSettingsRequests. The request asks what you send, your expected volume and how people opt in. The Emailit team reviews it and replies in the same request thread. See Production access.
Every workspace also has sending limits, shared by the API and SMTP. New workspaces can send 2 emails per second and 5,000 emails per day. Pro and Business workspaces get automatic increases based on sending health, and any workspace can request more from the Sending Limits card on the dashboard home page.
The dashboard
The dashboard at dash.emailit.com follows the same model. The sidebar has these sections, from top to bottom:
| Section | Page | What it’s for |
|---|---|---|
| Dashboard | Setup checklist, quick actions, credits, daily volume, sending health and sending limits | |
| Email Marketing | Overview | Contact growth and recent marketing activity |
| Audiences | Named lists of subscribers that campaigns go to | |
| Contacts | Everyone in the workspace, with custom fields, import and export | |
| Campaigns | Build, test, schedule and report on campaigns | |
| Templates | Reusable designs for the API, automations and campaigns | |
| Forms | Sign-up forms (early access) | |
| Automations | Workflows triggered by contacts, dates and email events (beta) | |
| Email API | Emails | Every outgoing and incoming email, with status, content and delivery attempts |
| Analytics | Sends, bounces, complaints, opens and clicks over time | |
| Domains | Add domains, publish DNS records, check verification and tracking | |
| DMARC reports | Who sends mail as your domain (Pro and above) | |
| Events | The workspace event stream that webhooks receive | |
| Logs | Every API and SMTP request, with status codes and bodies | |
| API Keys | Create, rename, regenerate and delete keys, and see SMTP settings | |
| Webhooks | Endpoints, event selection and every delivery attempt | |
| Suppressions | Addresses Emailit won’t send to, with CSV import and export | |
| Email Verification | Emails | Check a single address before you send |
| Lists | Check up to 10,000 addresses at once | |
| Workspace | Billing | Plan, credits, auto-refill, add-ons and invoices |
| Settings | Name, members, custom fields, data retention, suppression settings and requests |
Your account settings (profile, password, two-factor authentication and passkeys) and your referral link are in the account menu at the bottom of the sidebar.