Sender API
Interfaces to manage email senders
A Sender is an email account used to send outbound emails. Senders can be Gmail, Microsoft 365, or custom SMTP accounts.
V2 API Available
List Senders
Get all senders for your organization.
V2 API (Recommended)
curl -X GET 'https://api.supersend.io/v2/senders?TeamId=xxx&limit=20&search=sales&provider=smtp&disabled=false&warm=true' \
-H "Authorization: Bearer YOUR_API_KEY"# Response (200 OK)
{
"success": true,
"data": [
{
"id": "sender-uuid",
"email": "sales@example.com",
"send_as": "Sales Team <sales@example.com>",
"reply_to": "support@example.com",
"provider": "smtp",
"domain": "example.com",
"disabled": false,
"warm": true,
"warming_stage": 3,
"max_per_day": 50,
"global_max_per_day": 100,
"max_warm_per_day": 25,
"health_score": 95,
"status": "active",
"signature": "<p>Best regards,<br>Sales Team</p>",
"forward_to": null,
"sender_profile_id": "profile-uuid",
"team_id": "team-uuid",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-15T00:00:00Z"
}
],
"pagination": {
"total": 5,
"limit": 20,
"offset": 0,
"hasMore": false
},
"request_id": "req_a1b2c3d4e5f6789012345678"
}
V2 Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
TeamId | string | No | Filter by team ID (if not provided, returns senders from all user's teams) |
limit | number | No | Results per page (default: 50, max: 100) |
offset | number | No | Pagination offset (default: 0) |
search | string | No | Search by email or send_as name |
provider | string | No | Filter by provider: smtp, outlook, google, missioninbox, supersend-relay, ss-private-smtp |
disabled | string | No | Filter by disabled status ("true" or "false") |
warm | string | No | Filter by warming status ("true" or "false") |
V1 API
curl -X GET 'https://api.supersend.io/v1/senders?TeamId=xxx' \
-H "Authorization: Bearer YOUR_API_KEY"Get Sender
Get details for a specific sender.
V2 API (Recommended)
curl -X GET 'https://api.supersend.io/v2/senders/sender-uuid' \
-H "Authorization: Bearer YOUR_API_KEY"# Response (200 OK)
{
"success": true,
"data": {
"id": "sender-uuid",
"email": "sales@example.com",
"send_as": "Sales Team <sales@example.com>",
"reply_to": "support@example.com",
"provider": "smtp",
"domain": "example.com",
"disabled": false,
"manually_disabled": false,
"warm": true,
"warming_stage": 3,
"warm_start_date": "2025-01-01T00:00:00Z",
"max_per_day": 50,
"global_max_per_day": 100,
"max_warm_per_day": 25,
"warm_email_ramp": 30,
"mail_warm_minimum": 5,
"health_score": 95,
"last_health_check": "2025-01-15T10:00:00Z",
"domain_health": "good",
"status": "active",
"signature": "<p>Best regards,<br>Sales Team</p>",
"forward_to": null,
"imap_disabled": false,
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"smtp_secure": false,
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_tls": true,
"sent_mailbox": "Sent",
"inbox": "INBOX",
"spam_folder": "Spam",
"sender_profile": {
"id": "profile-uuid",
"name": "Sales Profile"
},
"team": {
"id": "team-uuid",
"name": "Sales Team"
},
"team_id": "team-uuid",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-15T00:00:00Z"
},
"request_id": "req_a1b2c3d4e5f6789012345678"
}
V1 API
curl -X GET 'https://api.supersend.io/v1/sender/sender-uuid/details' \
-H "Authorization: Bearer YOUR_API_KEY"Update Sender
Update sender settings.
V2 API (Recommended)
curl -X PATCH 'https://api.supersend.io/v2/senders/sender-uuid' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"send_as": "Updated Name <sales@example.com>",
"reply_to": "support@example.com",
"signature": "<p>New signature</p>",
"forward_to": "admin@example.com",
"disabled": false,
"warm": true,
"max_per_day": 75,
"global_max_per_day": 150,
"max_warm_per_day": 30,
"warm_email_ramp": 45,
"mail_warm_minimum": 10,
"SenderProfileId": "profile-uuid"
}'# Response (200 OK)
{
"success": true,
"data": {
"id": "sender-uuid",
"email": "sales@example.com",
"send_as": "Updated Name <sales@example.com>",
"reply_to": "support@example.com",
"provider": "smtp",
"domain": "example.com",
"disabled": false,
"manually_disabled": false,
"warm": true,
"warming_stage": 3,
"max_per_day": 75,
"global_max_per_day": 150,
"max_warm_per_day": 30,
"warm_email_ramp": 45,
"mail_warm_minimum": 10,
"health_score": 95,
"status": "active",
"signature": "<p>New signature</p>",
"forward_to": "admin@example.com",
"sender_profile": {
"id": "profile-uuid",
"name": "Sales Profile",
"timezone": "America/New_York"
},
"team": {
"id": "team-uuid",
"name": "Sales Team"
},
"team_id": "team-uuid",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-15T00:00:00Z"
},
"request_id": "req_a1b2c3d4e5f6789012345678"
}
V2 Update Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
send_as | string | No | Display name and email (e.g., "Name <email@example.com>") |
reply_to | string | No | Reply-to email address |
signature | string | No | HTML signature |
forward_to | string | No | Email to forward replies to |
disabled | boolean | No | Disable/enable sender |
warm | boolean | No | Enable/disable warming |
max_per_day | number | No | Maximum emails per day (1-15000) |
global_max_per_day | number | No | Global maximum per day (1-1000) |
max_warm_per_day | number | No | Maximum warm emails per day (1-1000) |
warm_email_ramp | number | No | Warming ramp period in days (1-365) |
mail_warm_minimum | number | No | Minimum warm emails per day (1-1000) |
SenderProfileId | string | No | Associate with sender profile (UUID or null) |
Note: V2 Update does not support changing provider type or re-verifying credentials. Use V1 API for those advanced operations.
V1 API
V1 has separate endpoints for connection settings and general settings:
Update Connection Settings:
curl -X PUT 'https://api.supersend.io/sender/sender-uuid' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"TeamId": "xxx",
"email": "new@example.com",
"password": "xxx",
"smtp_host": "smtp.gmail.com",
"smtp_port": 587
}'Update General Settings:
curl -X PUT 'https://api.supersend.io/v1/sender/sender-uuid/settings' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"TeamId": "xxx",
"send_as": "Sales Team",
"signature": "<p>Best regards</p>",
"max_per_day": 50,
"warm": true
}'Create Sender (V1 Only)
curl -X POST 'https://api.supersend.io/v1/sender' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"TeamId": "xxx",
"email": "sales@example.com",
"password": "xxx",
"send_as": "Sales Team",
"signature": "<p>Best regards</p>",
"warm": false,
"global_max_per_day": 25
}'Sender Fields
Connection Settings (V1 only)
| Field | Type | Description |
|---|---|---|
email | string | Email address |
password | string | Email password or app password |
smtp_host | string | SMTP server host |
smtp_port | number | SMTP port (typically 587) |
smtp_secure | boolean | Use TLS |
imap_host | string | IMAP server host |
imap_port | number | IMAP port (typically 993) |
imap_tls | boolean | Use TLS for IMAP |
General Settings
| Field | Type | Description |
|---|---|---|
send_as | string | Display name for emails |
signature | string | HTML email signature |
reply_to | string | Reply-to address |
warm | boolean | Enable warming |
max_per_day | number | Max emails per day per campaign |
global_max_per_day | number | Max emails per day total |
max_warm_per_day | number | Max warming emails per day |
disabled | boolean | Disable sender |
V1 vs V2 Endpoint Mapping
| Action | V1 Endpoint | V2 Endpoint |
|---|---|---|
| List | GET /v1/senders | GET /v2/senders |
| Get | GET /v1/sender/:id/details | GET /v2/senders/:id |
| Update | PUT /v1/sender/:id/settings | PATCH /v2/senders/:id |
| Create | POST /v1/sender | Not available in V2 |