API reference
Queue messages with the versioned REST API. Use a scoped API key as a Bearer token and copy your test sender from the dashboard.
Send a test message
Use your workspace sender address. For a self-hosted deployment, replace the API origin. When you retry an identical send request, reuse the same Idempotency-Key. A changed request under that key returns HTTP 409.
curl https://sntid.com/api/v1/emails \ -H "Authorization: Bearer $SNTID_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: first-message" \ -d '{ "from":"hello@YOUR_WORKSPACE.mock.resned.test", "to":["reader@example.com"], "subject":"Hello from Sntid", "text":"This is a test email." }'const res = await fetch('https://sntid.com/api/v1/emails', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${process.env.SNTID_API_KEY}`, 'Idempotency-Key': 'first-message', }, body: JSON.stringify({ from: 'hello@YOUR_WORKSPACE.mock.resned.test', to: ['reader@example.com'], subject: 'Hello from Sntid', text: 'This is a test email.', }),});Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /api/v1/emails | Queue or schedule a message |
POST | /api/v1/emails/batch | Queue up to 50 messages |
GET | /api/v1/emails | List or search messages |
GET | /api/v1/emails/{id} | Read message and recipient events |
PATCH | /api/v1/emails/{id} | Change a scheduled message |
DELETE | /api/v1/emails/{id} | Cancel before sending starts |
GET | /api/v1/webhooks | List subscriptions |
POST | /api/v1/webhooks | Create a signed subscription |
SMTP gateway
Connect to your deployment’s SMTP host on port 2465 using implicit TLS. Use resned as the username and a Sntid API key with email:send permission as the password.