Developer docs
A clean REST API with an OpenAPI spec and official SDKs. Grab an API key in the console (Developers), then send your first email.
Quickstart (cURL)
POST /v1/send
curl -X POST https://api.aryasend.com/v1/send \
-H "Authorization: Bearer $ARYASEND_KEY" \
-H "Content-Type: application/json" \
-d '{
"from_email": "hello@yourdomain.com",
"to": "someone@example.com",
"subject": "Hello from AryaSend",
"text": "It works."
}'Official SDKs
Six languages, all thin and dependency-light.
Node
npm install @aryasend/sdkPython
pip install aryasendRuby
gem install aryasendPHP
composer require aryasend/sdkGo
go get github.com/rackset/aryasend-goElixir
{:aryasend, "~> 1.0"}Node.js
npm install @aryasend/sdk
import { AryaSend } from "@aryasend/sdk";
const arya = new AryaSend(process.env.ARYASEND_API_KEY);
await arya.send({ from: "hi@you.com", to: "a@b.com", subject: "Hi", text: "Yo" });Python
pip install aryasend from aryasend import AryaSend arya = AryaSend(os.environ["ARYASEND_API_KEY"]) arya.send(from_email="hi@you.com", to="a@b.com", subject="Hi", text="Yo")
Core endpoints
| POST | /v1/send | Send a message |
| GET | /v1/messages/ | List messages |
| GET | /v1/messages/{id}/ | Message status + events |
| POST | /v1/contacts | Upsert a contact |
| POST | /v1/contacts/batch | Bulk upsert (≤2000) |
| POST | /v1/events | Track an event (automations + revenue) |
| POST | /v1/domains/ | Add a sending domain (returns DNS) |
| POST | /v1/suppressions/ | Suppress an address |
Full reference: OpenAPI spec →
SMTP relay
Prefer SMTP? Point any app (WordPress, WHMCS, your backend) at our relay — it runs through the same pipeline as the API, with suppression, DKIM, tracking and deliverability built in.
| Host | smtp.aryasend.com |
| Port | 587 (STARTTLS) |
| Username | apikey |
| Password | your API key (ask_…) |
| Encryption | STARTTLS / TLS required |
Create an API key in the console (Developers) and use it as the SMTP password. The username is literally apikey.
React Email
Author emails as React components — the Node SDK renders the HTML and a plain-text alternative for you.
Send a React Email component
npm install @aryasend/sdk @react-email/components @react-email/render react
import { AryaSend } from "@aryasend/sdk";
import { Html, Text, Button } from "@react-email/components";
function Welcome({ name }) {
return (
<Html>
<Text>Hi {name}, welcome aboard 👋</Text>
<Button href="https://app.example.com">Get started</Button>
</Html>
);
}
const arya = new AryaSend(process.env.ARYASEND_API_KEY);
await arya.send({
from: "hello@yourdomain.com",
to: "someone@example.com",
subject: "Welcome",
react: <Welcome name="Ada" />, // → rendered to HTML + plain text
});Verify webhooks
X-AryaSend-Signature (HMAC-SHA256)
// Verify the HMAC-SHA256 signature on every webhook (Node)
import crypto from "crypto";
const sig = req.headers["x-aryasend-signature"]; // "sha256=…"
const expected = "sha256=" + crypto.createHmac("sha256", WEBHOOK_SECRET)
.update(rawBody).digest("hex");
if (sig !== expected) return res.status(401).end();Guides
Ready to build?
Get your API key