/v2/senders/Connects an SMTP sending account — the same starting point as clicking “Connect Account” → SMTP in the app. The connection is verified live (Stynar actually logs in over SMTP, and IMAP too if you send those fields) before anything is saved, and credentials are encrypted at rest.
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
| Field | Type | Required | Description |
|---|---|---|---|
| fromName | string | Required | Display name. |
| fromEmail | string | Required | Sending address. |
| smtpHost | string | Required | Must be a real, publicly-reachable mail server — private/internal addresses are rejected. |
| smtpPort | number | Required | SMTP port. |
| smtpUser | string | Required | SMTP username. |
| smtpPassword | string | Required | SMTP password. |
| imapHost, imapPort, imapUser, imapPassword | string | Optional | Enables native reply sync. If you send any one of these, all four are required. |
curl -X POST "https://api.stynar.com/v2/senders/" \
-H "Authorization: Bearer esk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"fromName":"Alex from Acme","fromEmail":"alex@yourdomain.com","smtpHost":"smtp.yourprovider.com","smtpPort":587,"smtpUser":"alex@yourdomain.com","smtpPassword":"your-smtp-password"}'{
"senderId": "sender_abc123",
"fromName": "Alex from Acme",
"fromEmail": "alex@yourdomain.com",
"smtpHost": "smtp.yourprovider.com",
"status": "VERIFIED",
"imapConnected": false
}| Status | Code | Meaning |
|---|---|---|
| ✕ 422 Unprocessable Entity | VALIDATION_FAILED | SMTP (or IMAP) verification failed — the error message says why (auth vs. connection). |
| ✕ 403 Forbidden | QUOTA_EXCEEDED | You're at your plan's mailbox limit. |
| ✕ 401 Unauthorized | UNAUTHORIZED | Missing, malformed, unknown, revoked, or expired key. |
| ✕ 403 Forbidden | API_ACCESS_DISABLED | API access is turned off for your account. |
| ✕ 403 Forbidden | INSUFFICIENT_SCOPE | The key doesn't have the scope this endpoint requires. |
| ✕ 404 Not Found | NOT_FOUND | Unknown route, or a resource that doesn't exist / isn't yours. |
| ✕ 409 Conflict | CONFLICT | The action can't be applied to the resource's current state. |
| ✕ 429 Too Many Requests | RATE_LIMIT_EXCEEDED | Per-minute or per-second limit hit. |
| ✕ 429 Too Many Requests | QUOTA_EXCEEDED | Monthly quota exhausted. |
| ✕ 500 Internal Server Error | INTERNAL_ERROR | Something broke on Stynar's end. |