Skip to main content

Quickstart

Start with a domain you control and an address where you can receive a test message.

1. Verify a sending domain​

Add your domain under Domains in the dashboard. Publish the records the domain page shows, including ownership verification when requested. New domains require SPF, DKIM, DMARC and the two MX records. Older domains may show a different set of required records.

Use the exact hosts and values shown for your domain. You do not need to configure reverse DNS yourself.

Domain verification covers the setup. DNS records explains each record and how to enter it at your provider.

DNS changes can take time to become visible. If verification fails, check the value reported under each record before retrying.

2. Create credentials​

For an SDK or HTTP integration, create an API key with the sending scope under API Keys & SMTP. Save it in your application's server environment.

For an existing SMTP mailer, create a separate SMTP credential. API keys and SMTP passwords are not interchangeable.

Sending a campaign entirely from the dashboard does not require an API key. Follow the campaign guide after verifying your domain.

3. Choose your integration​

Each SDK quickstart includes installation, a complete send example and how to read the result.

IntegrationStart here
Node.js / TypeScriptSend with the JavaScript SDK
Next.jsSend from server-side code
PythonUse the sync or async client
GoSend with a context
PHPSend with the PHP SDK
LaravelConfigure the SDK or SMTP
WordPressConfigure an SMTP plugin
HTTPMake a cURL request

Replace the example sender with an address at your verified domain and send to yourself. A verified mail.example.com authorizes hello@mail.example.com, not hello@example.com.

For a simulation, use a test API key or a sandbox recipient. Domain verification still applies. SMTP sends are live.

4. Check the result​

The API returns an email ID when the request is accepted. Find it in Activity and open its timeline.

Delivered means the receiving server accepted the message. Delivery can be delayed, and the message can still land in spam. Use webhooks when your application needs to record the outcome.

If something fails​

SymptomCheck
Domain stays unverifiedPublish every required record, including ownership proof if shown; inspect the reported DNS result
authentication_failedThe server environment contains the right API key, without an extra Bearer prefix passed to the SDK
insufficient_scopeThe key has sending permission
domain_not_found or domain_not_verifiedThe from address uses a domain verified in the key's workspace
Repeated runs return the same IDThe example reuses an idempotency key; use a new key for a new logical send
Accepted but not deliveredRead the timeline for deferrals or failures
Delivered but not visibleCheck the recipient address, spam folder and mailbox rules

After the first send​