Attach verified destinations for multi-destination forwarding fanout, execute bulk operations across up to 100 aliases, and fine-tune per-alias privacy settings.
Quick Reference
| Endpoint | Method | Scope | Purpose |
|---|---|---|---|
/v1/aliases/:id/recipients | GET | aliases:read | List verified destinations attached to an alias |
/v1/aliases/:id/recipients | POST | aliases:write | Attach an additional verified destination to an alias |
/v1/aliases/:id/recipients/:recipientId | DELETE | aliases:write | Detach a destination from an alias |
/v1/aliases/batch-toggle | POST | aliases:write | Bulk pause or activate up to 100 aliases |
/v1/aliases/batch-delete | POST | aliases:write | Bulk move up to 100 aliases to trash |
/v1/aliases/:id/settings | GET | aliases:read | Inspect per-alias privacy and banner settings |
/v1/aliases/:id/settings | PATCH | aliases:write | Update per-alias privacy and banner settings |
GET /v1/aliases/:id/recipients — List Attached Destinations
Scope: aliases:read · Rate Limit: 60/min · Idempotent: Yes
Returns all verified destinations attached to an alias. Incoming emails to this alias are duplicated and forwarded to every listed destination.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique alias identifier (al_...). |
Example Request
curl -X GET "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN/recipients" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Accept: application/json"
Response (200 OK)
{
"recipients": [
{
"id": "rcpt_x9Kl2mNopQrStUv1",
"created_at": "2026-08-24T06:30:00.000Z",
"destinations": {
"id": "dest_adn6UTmkzn6OWpGq",
"email": "primary-ops@company.com",
"is_verified": true,
"can_reply": true,
"can_send": true
}
},
{
"id": "rcpt_mNoP3qRsTuVwXyZ2",
"created_at": "2026-08-25T14:15:00.000Z",
"destinations": {
"id": "dest_rNZO2x0c8GPOJxiR",
"email": "audit-archive@company.com",
"is_verified": true,
"can_reply": false,
"can_send": false
}
}
]
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
404 Not Found | ALIAS_NOT_FOUND | Alias does not exist or access denied. |
POST /v1/aliases/:id/recipients — Attach Destination to Alias
Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes
Attaches a verified destination inbox to an alias for multi-destination forwarding fanout.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
destination_id | string | Yes | Valid dest_ identifier | Unique ID of the verified destination inbox to attach. |
Example Request
curl -X POST "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN/recipients" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"destination_id": "dest_rNZO2x0c8GPOJxiR"
}'
Response (201 Created)
{
"recipient": {
"id": "rcpt_mNoP3qRsTuVwXyZ2",
"created_at": "2026-08-25T14:15:00.000Z",
"destinations": {
"id": "dest_rNZO2x0c8GPOJxiR",
"email": "audit-archive@company.com",
"is_verified": true,
"can_reply": false,
"can_send": false
}
}
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | UNVERIFIED_DESTINATION | Destination inbox has not passed 6-digit OTP verification. Verify it first under /v1/destinations. |
400 Bad Request | DESTINATION_DEACTIVATED | Target destination inbox is currently paused or deactivated. |
400 Bad Request | ALREADY_EXISTS | Destination is already attached to this alias. |
404 Not Found | DESTINATION_NOT_FOUND | Destination ID does not exist on your account. |
DELETE /v1/aliases/:id/recipients/:recipientId — Detach Destination from Alias
Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes
Detaches a destination from an alias. Forwarded messages will no longer deliver to this destination inbox.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique alias identifier (al_...). |
recipientId | string | Yes | Unique routing link ID (rcpt_...). |
Example Request
curl -X DELETE "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN/recipients/rcpt_mNoP3qRsTuVwXyZ2" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e"
Response (200 OK)
{
"success": true
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | LAST_RECIPIENT | An alias must retain at least one recipient. To disable the alias, pause or trash it. |
404 Not Found | ALIAS_NOT_FOUND | Alias does not exist. |
POST /v1/aliases/batch-toggle — Bulk Pause or Activate
Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes
Updates forwarding status (active: true or false) across up to 100 aliases in a single atomic request.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
ids | array of strings | Yes | 1–100 elements | Array of alias IDs to update (al_...). |
active | boolean | Yes | true or false | false to pause forwarding, true to reactivate. |
Example Request
curl -X POST "https://api.aliasfleet.com/v1/aliases/batch-toggle" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"ids": [
"al_6c5J5LMXd5E3Yq1Wx1zN",
"al_WTSGM57cIGy4oLUMoPQ2"
],
"active": false
}'
Response (200 OK)
{
"success": true,
"updated_count": 2,
"active": false
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | INVALID_PAYLOAD | ids must contain between 1 and 100 alias IDs. |
POST /v1/aliases/batch-delete — Bulk Move to Trash
Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes
Soft-deletes up to 100 aliases in a single operation. Trashed aliases drop incoming emails immediately and can be restored.
Request Body Parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
ids | array of strings | Yes | 1–100 elements | Array of alias IDs to move to trash (al_...). |
Example Request
curl -X POST "https://api.aliasfleet.com/v1/aliases/batch-delete" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"ids": [
"al_6c5J5LMXd5E3Yq1Wx1zN",
"al_WTSGM57cIGy4oLUMoPQ2"
]
}'
Response (200 OK)
{
"success": true,
"deleted_count": 2
}
GET /v1/aliases/:id/settings — Inspect Alias Settings
Scope: aliases:read · Rate Limit: 60/min · Idempotent: Yes
Retrieves privacy transformations, tracking protection, custom sender names, and safety banner configurations for a specific alias.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique alias identifier (al_...). |
Example Request
curl -X GET "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN/settings" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Accept: application/json"
Response (200 OK)
{
"alias": {
"id": "al_6c5J5LMXd5E3Yq1Wx1zN",
"local_part": "billing-support",
"aliasName": "billing-support",
"settings": {
"fromName": "Acme Billing",
"subject": "[Invoice] ",
"useFromName": true,
"useSubject": true,
"bannerEnabled": true,
"bannerText": "Received via AliasFleet billing alias.",
"bannerLocation": "top",
"bannerShowSender": true,
"bannerShowDeactivateLink": false,
"neutralizeTrackers": true,
"rawForwarding": false,
"fromAddressFormat": "name_and_email"
}
}
}
PATCH /v1/aliases/:id/settings — Update Alias Settings
Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes
Updates per-alias delivery modifications and privacy protections. All fields are optional.
Request Body Parameters
| Parameter | Type | Constraints | Description |
|---|---|---|---|
fromName | string | null | Max 255 chars | Custom sender display name. Set null to clear. |
useFromName | boolean | true or false | Enable or disable custom sender display name. |
subject | string | null | Max 255 chars | Subject line prefix. Set null to clear. |
useSubject | boolean | true or false | Enable or disable subject prefix. |
bannerEnabled | boolean | null | true, false, null | Render safety banner inside email bodies. |
bannerText | string | null | Max 500 chars | Banner note text. |
bannerLocation | string | null | 'top', 'bottom', null | Banner position in the message body. |
bannerShowSender | boolean | true or false | Display original sender's address in the banner. |
bannerShowDeactivateLink | boolean | true or false | Include 1-click deactivation link in banner. |
neutralizeTrackers | boolean | true or false | Strip 1x1 tracking beacons and spyware pixels. |
rawForwarding | boolean | true or false | When true, passes raw message without HTML sanitization. |
fromAddressFormat | string | null | 'name_and_email', 'name_only', null | Format override. Set null to inherit workspace default. |
Example Request
curl -X PATCH "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN/settings" \
-H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
-H "Content-Type: application/json" \
-d '{
"useFromName": true,
"fromName": "Acme Billing Support",
"neutralizeTrackers": true,
"rawForwarding": false
}'
Response (200 OK)
{
"success": true
}
Errors
| Status | Code | Cause & Resolution |
|---|---|---|
400 Bad Request | ALIAS_TRASHED | Cannot modify settings on an alias currently in trash. Restore it first. |
400 Bad Request | INVALID_FROM_NAME | Sender name contains illegal control characters or format errors. |
403 Forbidden | ENTITLEMENT_FORBIDDEN | Setting rawForwarding: false (Sanitized Mode) requires an upgraded plan tier. |
404 Not Found | ALIAS_NOT_FOUND | Alias ID does not exist. |