Use SMTPfast Without the Dashboard

Everything you need to start sending works from a terminal, a script or an agent: creating the account, the first API key, activation, domains and DNS, sending, and billing. The dashboard is there when you want it, never required.

One Command

#

smtpfast init signs you up or logs you in, activates a new account, adds a domain, sets its DNS records through Domain Connect when the DNS host supports it (or prints them), waits for verification and sends a test email to your own address. See the CLI page for its flags.

bash
npx smtpfast init

Step by Step

#
bash
smtpfast signup                                  # 1. account and first API key
smtpfast activate                                # 2. pay, request the free plan, or use an invite code
smtpfast domains add --domain mail.example.com   # 3. a sending domain
smtpfast domains start-cloudflare-connect <id>   #    DNS through Domain Connect, if the DNS is on Cloudflare
smtpfast domains verify mail.example.com --wait  # 4. wait for the records
smtpfast send --from [email protected] --to [email protected] --subject "Hi" --text "It works"

With an account already, smtpfast login gets a key by approving a code in the browser instead of signup.

Sign Up

#

smtpfast signup emails an 8-digit code; entering it creates the account and returns its first API key with the default scopes. The address goes through the same checks as the signup form, and an address that already has an account gets an email saying so instead of a code. The account has no password; set one with Forgot password on the login page if you want the dashboard later. The endpoints are POST /v1/cli/signup and POST /v1/cli/signup/verify, on the CLI page.

Activate the Account

#

A new account is pending until it is activated, whether it was made on the website or in a terminal. There are three ways, and the key from signup works for each of them right away. Every other endpoint answers 403 until the account is active.

  • Pay for a plan: a Stripe Checkout link that a person opens. The account is active once Stripe confirms the payment.
  • Request the free plan with a sentence about what you will send. A person reviews it and emails you.
  • An invite code, if you have one.
GET/v1/account/activation

Whether the account is active yet, and whether a free-plan request is waiting. Poll it after a Checkout link.

Response

json
{
  "status": "pending",
  "plan": "free",
  "email_verified": true,
  "free_trial_requested_at": null,
  "rejection_reason": null
}
POST/v1/account/activation/checkout

A Stripe Checkout link for starter, growth or scale. After paying, the browser lands back on this page.

Parameters

ParameterTypeDescription
planrequiredstringstarter, growth or scale
intervalstringmonthly (default) or yearly

Request Body

json
{
  "plan": "growth",
  "interval": "monthly"
}

Response

json
{ "url": "https://checkout.stripe.com/c/pay/cs_live_..." }
POST/v1/account/activation/free-trial

Ask for the free plan. A second request changes nothing.

Parameters

ParameterTypeDescription
use_caserequiredstringWhat you will send, 20 to 1,000 characters
sourcestringHow you heard about SMTPfast

Request Body

json
{
  "use_case": "Password resets and receipts for our app at example.com.",
  "source": "search"
}

Response

json
{ "requested": true, "message": "Invite request sent. We will email you when it is approved." }
POST/v1/account/activation/invite

Activate the free plan with an invite code.

Parameters

ParameterTypeDescription
coderequiredstringLike SF-AB12-CD34

Request Body

json
{ "code": "SF-AB12-CD34" }

Response

json
{ "status": "active", "plan": "free" }

Domains, Sending and Billing

#

Once the account is active, every part of the API works with the key: domains (with one-click DNS on Cloudflare), sending, webhooks, and billing for the plan, usage, invoices and plan changes.

For Agents

#

Without a terminal the CLI asks nothing and prints JSON. Signing up takes two calls, so an agent can read the code from the email in between. A person still opens the Checkout link to pay, or the free-plan request is reviewed.

bash
smtpfast signup --email [email protected] --send-only --json
# read the code from the email, then:
smtpfast signup --signup-id <signup_id> --code 4831-0927
smtpfast activate --plan growth --no-browser     # prints the Checkout link for a person to pay
smtpfast init --domain mail.example.com --test-email --json

Agents that speak MCP can use the hosted MCP server once there is an account, and the SMTPfast skill teaches an agent the API. The site map for AI tools is at /llms.txt.