Getting started

Introduction

Sendara is the email API for engineers and for AI agents. Send from your own domain, with DKIM, SPF and DMARC.

Sendara gives you one HTTP API and 6 official packages. You send transactional mail, one message at a time or up to 1000 in a batch. Every message carries an event timeline. A webhook reports each delivered, opened, bounced and complained event to your backend. Email is the only send channel that is generally available.

Base URL

Send every request over HTTPS to one base URL. Sendara runs in one region, and it has no regional endpoint for you to select.

https://api.sendara.dev

Authentication

Authenticate every request with a Bearer API key. A key carries one of 3 scopes: send, read or admin. A key runs in the live mode (sk_live_…) or in the test mode (sk_test_…).

Authorization: Bearer sk_live_xxx
A test key simulates the delivery. It sends no real email, it bills nothing, and it still calls your webhooks. See Authentication.

Quickstart

The quickstart has 4 steps. You need no sales call and no approval.

1. Install an SDK

Install the Node package, the Python package or the Go package. You can also call the API directly.

Node
npm install sendara

2. Add your domain

Register the domain that you send from. The response holds the 6 DNS records to publish: 3 DKIM CNAMEs, an MX record and a TXT record for the MAIL FROM subdomain, and a TXT record for DMARC. See Domains & deliverability.

curl https://api.sendara.dev/v1/domains \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "mail.yourdomain.com" }'

3. Send your first email

After your domain is verified, one call sends an email. Set the sender to an address on that domain. Use the SDK from parameter, or metadata.from_email on the raw request. The sender is required when you send from your own domain. If you omit it, the API returns 422 from_required. Each SDK generates the idempotency_key, so a retry is safe.

send.ts
import { Sendara } from "sendara";

const sendara = new Sendara(process.env.SENDARA_API_KEY!);

await sendara.emails.send({
  from: "[email protected]",
  to: "[email protected]",
  subject: "Welcome",
  html: "<h1>Welcome 🎉</h1>",
});
To show a name, pass a display-name address, as in from: "Acme <[email protected]>". Put the name first and the address in angle brackets. See the sender name. An account with no verified domain omits from_email, and it sends from the shared platform sender.

4. Watch it deliver

Every message carries an event timeline. Read the timeline, or subscribe to a webhook for the delivered, opened, bounced and complained events.

Next steps