Skip to main content
POST
/
v1
/
email
curl -X POST https://app.nautilus.co/api/v1/email \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "customer@example.com",
    "subject": "Your monthly wash summary",
    "html": "<h1>Hi!</h1><p>You washed 12 times this month.</p>"
  }'
{
  "success": true,
  "results": [
    {
      "to": "customer@example.com",
      "success": true,
      "id": "abc123"
    }
  ]
}
curl -X POST https://app.nautilus.co/api/v1/email \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "customer@example.com",
    "subject": "Your monthly wash summary",
    "html": "<h1>Hi!</h1><p>You washed 12 times this month.</p>"
  }'

Sender address

The from field is optional. The allowed values depend on the type of API key you use (see Key types). Tenant-scoped keys — the default sender is {Tenant Name} <{slug}@mail.nautilus.co>, where {slug} is your organization’s slug. If you provide from explicitly, the email address must be exactly {slug}@mail.nautilus.co; you may customize the display name:
Squeaky Clean Promos <squeaky-clean@mail.nautilus.co>
Tenants without a configured slug receive a 422 response. Platform keys — the default sender is Nautilus <contact@mail.nautilus.co>. If you provide from explicitly, the address must use the @mail.nautilus.co domain.

Attachments

Add files to an email with the attachments array. Each attachment requires a filename and either:
  • path — a publicly accessible URL to the file
  • content — the file as a base64-encoded string
FieldTypeRequiredDescription
filenamestringYesFilename with extension (e.g. report.pdf)
pathstringNoPublic URL to the file
contentstringNoBase64-encoded file content
Each attachment must include either path or content, but not both.

Multi-send behavior

When sending to multiple recipients, each email is dispatched in parallel. The response includes per-recipient results:
  • 200 — All recipients succeeded
  • 207 — At least one recipient failed (check results for details)
Individual failures do not block other recipients. Successful results include an id field for tracking.

Errors

  • 400 — Validation error, including a from address that doesn’t match the rules for your key type
  • 401 — Missing or invalid Bearer token
  • 422 — Your tenant is not configured for email sending. Contact Nautilus support.
  • 500 — Internal server error

Authorizations

Authorization
string
header
required

API key provided by Nautilus. Pass as Authorization: Bearer <token>. Two key types are accepted: tenant-scoped keys (bound to a specific organization, used by most integrations) and legacy platform keys (send as the Nautilus brand). See the Introduction for details.

Body

application/json
to
required

Recipient email address(es). Accepts a single address or an array.

Example:

"customer@example.com"

subject
string
required

The email subject line.

Minimum string length: 1
html
string
required

The email body as HTML.

Minimum string length: 1
from
string

Sender address. Allowed values depend on key type. Tenant-scoped keys: the email address part must be exactly {slug}@mail.nautilus.co where {slug} is the organization's slug; the display name is free-form. Default: {Tenant Name} <{slug}@mail.nautilus.co>. Platform keys: must use the @mail.nautilus.co domain. Default: Nautilus <contact@mail.nautilus.co>.

replyTo
string<email>

Optional reply-to email address.

attachments
object[]

Optional file attachments. Each must include a filename and either a path (public URL) or content (base64-encoded string).

Response

All emails sent successfully

success
boolean
required

true when every recipient was sent successfully, false otherwise.

results
object[]
required

Per-recipient delivery results.