Skip to main content
POST
/
providers
Create an SMTP sending account
curl --request POST \
  --url https://app.sendmux.ai/api/v1/providers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Transactional SMTP",
  "smtp_host": "smtp.example.com",
  "smtp_port": 587,
  "smtp_protocol": "starttls",
  "smtp_username": "api-user",
  "smtp_password": "smtp-password"
}
'
{
  "meta": {
    "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
  },
  "data": {
    "id": "dprov_clxxxxxxxxxxxxxxxxxxxxxxxxx",
    "name": "Transactional SMTP",
    "type": "smtp",
    "status": "active",
    "status_reason": "<string>",
    "is_active": true,
    "is_shared": true,
    "is_editable": true,
    "allowed_actions": {
      "update": true,
      "delete": true,
      "activate": true,
      "deactivate": true,
      "test": true
    },
    "smtp_host": "<string>",
    "smtp_port": 123,
    "smtp_protocol": "<string>",
    "smtp_username": "<string>",
    "has_smtp_password": true,
    "from_email": "<string>",
    "from_name": "<string>",
    "reply_to_email": "<string>",
    "reply_to_name": "<string>",
    "oauth_email": "<string>",
    "has_refresh_token": true,
    "quotas": {
      "per_second": {
        "min": 60,
        "max": 60
      },
      "per_minute": {
        "min": 60,
        "max": 60
      },
      "per_hour": {
        "min": 60,
        "max": 60
      },
      "per_day": {
        "min": 60,
        "max": 60
      }
    },
    "percentage": 100,
    "tracking_domain": "<string>",
    "created_at": "2026-05-25T02:18:00Z",
    "updated_at": "2026-05-25T02:18:00Z",
    "last_tested_at": "<string>",
    "last_used_at": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.sendmux.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Sendmux API key. Use a root API key for Management API routes, or a mailbox credential for Mailbox API routes. Obtain keys from the dashboard under API Keys.

Headers

Idempotency-Key
string

Client-chosen unique key to safely retry the request. Cached for 24h per (team, endpoint, key). Different body with same key returns 409 idempotency_conflict.

Maximum string length: 255
Example:

"providers-create-20260525-001"

Body

application/json
name
string
required
Required string length: 1 - 255
Example:

"Transactional SMTP"

smtp_host
string
required
Required string length: 1 - 255
Example:

"smtp.example.com"

smtp_port
integer
required
Required range: 1 <= x <= 65535
Example:

587

smtp_protocol
enum<string>
required
Available options:
tls,
ssl,
none,
starttls
Example:

"starttls"

smtp_username
string
required
Required string length: 1 - 255
Example:

"api-user"

smtp_password
string
required
Required string length: 1 - 500
Example:

"smtp-password"

from_email
string<email> | null
Maximum string length: 255
Example:

"sender@example.com"

from_name
string | null
Maximum string length: 255
Example:

"Acme"

reply_to_email
string<email> | null
Maximum string length: 255
Example:

"support@example.com"

reply_to_name
string | null
Maximum string length: 255
Example:

"Support"

quotas
object
percentage
integer
Required range: 0 <= x <= 100
Example:

100

tracking_domain
string | null
Maximum string length: 255
Example:

"click.example.com"

Response

Sending account created

ok
enum<boolean>
required
Available options:
true
meta
object
required
data
object
required