Register forwarding inboxes, manage 6-digit OTP verification challenges, configure custom sender identities, and manage routing targets.
Quick Reference
| Endpoint | Method | Scope | Purpose |
|---|---|---|---|
/v1/destinations | GET | destinations:read | List all destination inboxes with default resolution |
/v1/destinations/verified | GET | destinations:read | List only verified inboxes eligible for alias routing |
/v1/destinations | POST | destinations:write | Register a new destination and trigger 6-digit OTP email |
/v1/destinations/:id | GET | destinations:read | Retrieve destination details and verification status |
/v1/destinations/verify | POST | destinations:write | Submit 6-digit OTP code to verify ownership |
/v1/destinations/resend | POST | destinations:write | Resend verification code (60-second cooldown) |
/v1/user/default-destination | PATCH | destinations:write | Set the default destination for new aliases |
/v1/destinations/:id/usage | GET | destinations:read | Inspect active aliases linked to this destination |
/v1/destinations/:id/from-name | GET | destinations:read | Retrieve custom sender display name and subject rules |
/v1/destinations/:id/from-name | PATCH | destinations:write | Configure custom sender display name and subject rules |
/v1/destinations/:id | DELETE | destinations:write | Delete destination with dependency safety checks |
GET /v1/destinations — List Destinations
Scope: destinations:read · Rate Limit: 60/min · Idempotent: Yes
Returns all destination inboxes registered to your account, including pending verification states and default inbox resolution.
Example Request
curl -X GET "https://api.aliasfleet.com/v1/destinations" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Accept: application/json"
Response (200 OK)
{
"destinations": [
{
"id": "dest_adn6UTmkzn6OWpGq",
"email": "primary-ops@company.com",
"is_verified": true,
"is_active": true,
"can_reply": true,
"can_send": true,
"verified_at": "2026-06-16T09:44:04.169Z",
"failed_attempts": 0,
"blocked_until": null,
"is_default": true,
"created_at": "2026-06-01T12:00:00.000Z"
},
{
"id": "dest_rNZO2x0c8GPOJxiR",
"email": "alerts@company.com",
"is_verified": false,
"is_active": true,
"can_reply": false,
"can_send": false,
"verification_sent_at": "2026-09-04T14:30:00.000Z",
"verified_at": null,
"failed_attempts": 0,
"blocked_until": null,
"is_default": false,
"created_at": "2026-09-04T14:30:00.000Z"
}
],
"default_destination": {
"id": "dest_adn6UTmkzn6OWpGq",
"email": "primary-ops@company.com",
"is_verified": true,
"is_active": true
}
}
GET /v1/destinations/verified — List Verified Destinations
Scope: destinations:read · Rate Limit: 60/min · Idempotent: Yes
Returns only destinations that have passed OTP verification and are actively available to receive forwarded emails.
Example Request
curl -X GET "https://api.aliasfleet.com/v1/destinations/verified" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Accept: application/json"
Response (200 OK)
{
"destinations": [
{
"id": "dest_adn6UTmkzn6OWpGq",
"email": "primary-ops@company.com",
"is_verified": true,
"is_active": true,
"can_reply": true,
"can_send": true
}
]
}
POST /v1/destinations — Register New Destination
Scope: destinations:write · Rate Limit: 60/min · Idempotent: Yes
Registers an external email address as a destination inbox. Dispatches a 6-digit numeric verification code to the specified address.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
email | string | Yes | Valid RFC 5322 email | Target external inbox address. |
Example Request
curl -X POST "https://api.aliasfleet.com/v1/destinations" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"email": "audit-inbox@company.com"
}'
Response (201 Created)
{
"destination": {
"id": "dest_kLpQr2nVwYz3a4b5",
"email": "audit-inbox@company.com",
"is_verified": false,
"is_active": true,
"can_reply": false,
"can_send": false,
"verification_sent_at": "2026-09-04T15:00:00.000Z",
"failed_attempts": 0,
"created_at": "2026-09-04T15:00:00.000Z"
}
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | INVALID_EMAIL | Malformed email syntax. |
403 Forbidden | QUOTA_EXCEEDED | Maximum destination count reached for your plan tier. |
409 Conflict | ALREADY_EXISTS | This destination address is already registered on your account. |
POST /v1/destinations/verify — Verify Destination OTP
Scope: destinations:write · Rate Limit: 60/min · Idempotent: Yes
Submits the 6-digit verification code sent to the destination email address. Upon verification, the inbox unlocks immediately for alias routing.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
email | string | Yes | Valid email address | Target destination email being verified. |
code | string | Yes | 6 numeric digits | Verification code from the email message. |
Example Request
curl -X POST "https://api.aliasfleet.com/v1/destinations/verify" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"email": "audit-inbox@company.com",
"code": "481923"
}'
Response (200 OK)
{
"message": "Destination verified"
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | ALREADY_VERIFIED | Destination is already verified. |
400 Bad Request | CODE_EXPIRED | OTP expired (> 15 minutes old). Call /v1/destinations/resend to get a new code. |
400 Bad Request | INVALID_CODE | Code mismatch. Check the email and re-enter. |
429 Too Many Requests | TOO_MANY_ATTEMPTS | 3 consecutive incorrect entries triggered a 15-minute lockout. Wait for the lockout window to expire. |
POST /v1/destinations/resend — Resend Verification OTP
Scope: destinations:write · Rate Limit: 5/min · Idempotent: Yes
Generates and emails a fresh 6-digit OTP code to the destination address. Enforces a 60-second cooldown period per address.
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Destination email address requiring a new code. |
Example Request
curl -X POST "https://api.aliasfleet.com/v1/destinations/resend" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"email": "audit-inbox@company.com"
}'
Response (200 OK)
{
"message": "Verification email resent"
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | ALREADY_VERIFIED | Destination is already verified. |
429 Too Many Requests | COOLDOWN | Called within 60 seconds of previous send. Inspect retryAfterSeconds in response. |
PATCH /v1/user/default-destination — Set Default Destination
Scope: destinations:write · Rate Limit: 60/min · Idempotent: Yes
Sets the primary default inbox for your account. New aliases provisioned without an explicit recipient will automatically forward to this address.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
destination_id | string | Yes | Valid dest_ identifier | Unique ID of a verified destination inbox. |
Example Request
curl -X PATCH "https://api.aliasfleet.com/v1/user/default-destination" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"destination_id": "dest_adn6UTmkzn6OWpGq"
}'
Response (200 OK)
{
"success": true,
"default_destination": {
"id": "dest_adn6UTmkzn6OWpGq",
"email": "primary-ops@company.com"
}
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | NOT_VERIFIED | Target destination must complete verification before becoming default. |
404 Not Found | NOT_FOUND | Destination ID does not exist on your account. |
GET /v1/destinations/:id/usage — Inspect Destination Usage
Scope: destinations:read · Rate Limit: 60/min · Idempotent: Yes
Returns the total number of active aliases currently forwarding to this destination inbox.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique destination identifier (dest_...). |
Example Request
curl -X GET "https://api.aliasfleet.com/v1/destinations/dest_adn6UTmkzn6OWpGq/usage" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Accept: application/json"
Response (200 OK)
{
"alias_count": 27
}
PATCH /v1/destinations/:id/from-name — Configure Sender Identity
Scope: destinations:write · Rate Limit: 60/min · Idempotent: Yes
Configures sender display names, subjects, and format overrides on messages routed through this destination.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
type | string | Yes | 'destination', 'forward', 'reply', 'send' | Routing channel rule to configure. |
fromName | string | No | Max 255 chars | Custom sender display name. |
useFromName | boolean | No | true or false | Enable or disable custom display name. |
subject | string | No | Max 255 chars | Subject prefix or replacement. |
useSubject | boolean | No | true or false | Enable or disable subject customization. |
fromAddressFormat | string | null | No | 'name_and_email', 'name_only', null | Header format rule. Set null to inherit global default. |
Example Request
curl -X PATCH "https://api.aliasfleet.com/v1/destinations/dest_adn6UTmkzn6OWpGq/from-name" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"type": "send",
"fromName": "Acme Operations Team",
"useFromName": true,
"subject": "[Acme Notice] ",
"useSubject": true
}'
Response (200 OK)
{
"success": true
}
DELETE /v1/destinations/:id — Delete Destination
Scope: destinations:write · Rate Limit: 60/min · Idempotent: Yes
Permanently removes a destination inbox from your workspace.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique destination identifier (dest_...). |
Example Request
curl -X DELETE "https://api.aliasfleet.com/v1/destinations/dest_kLpQr2nVwYz3a4b5" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e"
Response (200 OK)
{
"success": true,
"message": "Destination removed"
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | PRIMARY_EMAIL_PROTECTED | Cannot delete your primary account login email. |
400 Bad Request | DEPENDENT_ALIASES | Active aliases currently route to this destination. Query /usage and reassign those aliases first. |
400 Bad Request | LAST_VERIFIED_PROTECTED | Accounts must retain at least one verified destination. Add a replacement before deleting. |
404 Not Found | NOT_FOUND | Destination ID does not exist. |