HomeDocsBlogSupport
OverviewWhat is AliasFleet?Creating an AliasEmails Not ArrivingContact Support

Getting Started

Getting Started
  • What is AliasFleet?
  • Your First Alias
  • Understanding Forwarding
  • Your Dashboard at a Glance
  • Using the Browser Extension

Account & Billing

Account & Billing
  • Your Plan and Usage Limits
  • Upgrading to Pro
  • Managing Your Subscription
  • Downloading Invoices
  • Support Ticket Limits
  • Membership Tier
  • Billing Cycle and Renewal
  • API Rate Limits by Plan

Billing Support

Account & Billing
  • Cancelling Your Subscription
  • Downgrading Your AliasFleet Plan
  • Understanding Proration and Plan Changes
  • Updating Your Payment Method
  • Handling Failed Payments and Account Suspension
  • AliasFleet Refund Policy

Email Aliases

Email Aliases
  • How to Set Up an Email Alias
  • Activating and Deactivating an Alias
  • How to Delete an Email Alias
  • Sorting, Filtering and Searching Aliases
  • Grid View vs List View
  • Grouping Aliases
  • Alias Categories
  • Copying an Alias Address
  • Per-Alias Email Banner Settings
  • Alias Permission Mode: Strict vs Open
  • Sending Outbound Emails (Quick Send)

Custom Domains

Custom Domains
  • Adding a Custom Domain
  • DNS Verification
  • Domain Status and Health Indicators
  • Subdomains
  • Removing a Domain
  • Using Your Domain on Aliases

Destinations

Destinations
  • What Is a Destination?
  • Adding a Destination
  • Verifying a Destination
  • Setting a Default Destination
  • Reply from Aliases
  • Send New Emails from Aliases
  • Understanding Email Threading & Replies
  • One-Click Enable from Bounce Email
  • Removing a Destination
  • PGP Encryption for Destinations
  • WKD Auto-Encryption for Replies & Sends

Security & Privacy

Security & Privacy
  • Security Best Practices
  • Two-Factor Authentication (2FA)
  • Active Sessions
  • Changing Your Password
  • What Data AliasFleet Stores
  • Reporting a Security Issue
  • Browser Extension Sessions
  • How to Use Vault Lock in the Extension

Rate Limiting

Security & Privacy
  • Rate Limiting and Account Protection

Settings

Settings
  • General Settings
  • Profile Settings
  • Alias Settings
  • Destinations in Settings
  • Notification Settings
  • Security Settings
  • Deleting Your Account

Analytics

Analytics
  • Analytics Overview
  • Alias Performance
  • Top Senders
  • Trends
  • Bounces
  • Bandwidth Usage
  • Category Breakdown
  • Exporting Analytics Data
  • Understanding Alias Statistics
  • How Monthly Trends Work

Sender Rules

Sender Rules
  • Using Sender Rules
  • Blacklist vs Deactivating an Alias
  • Using Allowlist Rules to Allow Senders
  • Blocked Emails Explained

Troubleshooting

Troubleshooting
  • Emails Not Arriving
  • Can't Verify a Destination
  • DNS Not Verifying
  • Can't Log In
  • Replies Not Going Through Alias
  • Alias Not Forwarding
  • Payment Failed
  • Browser Extension Issues
  • Too Many Requests Error
  • Page Not Loading or Showing an Error

Developers

Developer API
  • Identity & Token Introspection API
  • Aliases API
  • Alias Destinations & Batch Operations API
  • Domains API
  • Destinations API
  • Quick-Send API
  • Sender Rules API
  • Activity & Audit Logs API
  • Fleet Analytics API
  • Rules API
  • Security & Threat Intelligence API
  • Webhooks API
  • Categories & Tags API
  • User Profile & Account API
PrivacyTermsCookies
Article Navigation
OverviewWhat is AliasFleet?Creating an AliasEmails Not ArrivingContact Support

Getting Started

Getting Started
  • What is AliasFleet?
  • Your First Alias
  • Understanding Forwarding
  • Your Dashboard at a Glance
  • Using the Browser Extension

Account & Billing

Account & Billing
  • Your Plan and Usage Limits
  • Upgrading to Pro
  • Managing Your Subscription
  • Downloading Invoices
  • Support Ticket Limits
  • Membership Tier
  • Billing Cycle and Renewal
  • API Rate Limits by Plan

Billing Support

Account & Billing
  • Cancelling Your Subscription
  • Downgrading Your AliasFleet Plan
  • Understanding Proration and Plan Changes
  • Updating Your Payment Method
  • Handling Failed Payments and Account Suspension
  • AliasFleet Refund Policy

Email Aliases

Email Aliases
  • How to Set Up an Email Alias
  • Activating and Deactivating an Alias
  • How to Delete an Email Alias
  • Sorting, Filtering and Searching Aliases
  • Grid View vs List View
  • Grouping Aliases
  • Alias Categories
  • Copying an Alias Address
  • Per-Alias Email Banner Settings
  • Alias Permission Mode: Strict vs Open
  • Sending Outbound Emails (Quick Send)

Custom Domains

Custom Domains
  • Adding a Custom Domain
  • DNS Verification
  • Domain Status and Health Indicators
  • Subdomains
  • Removing a Domain
  • Using Your Domain on Aliases

Destinations

Destinations
  • What Is a Destination?
  • Adding a Destination
  • Verifying a Destination
  • Setting a Default Destination
  • Reply from Aliases
  • Send New Emails from Aliases
  • Understanding Email Threading & Replies
  • One-Click Enable from Bounce Email
  • Removing a Destination
  • PGP Encryption for Destinations
  • WKD Auto-Encryption for Replies & Sends

Security & Privacy

Security & Privacy
  • Security Best Practices
  • Two-Factor Authentication (2FA)
  • Active Sessions
  • Changing Your Password
  • What Data AliasFleet Stores
  • Reporting a Security Issue
  • Browser Extension Sessions
  • How to Use Vault Lock in the Extension

Rate Limiting

Security & Privacy
  • Rate Limiting and Account Protection

Settings

Settings
  • General Settings
  • Profile Settings
  • Alias Settings
  • Destinations in Settings
  • Notification Settings
  • Security Settings
  • Deleting Your Account

Analytics

Analytics
  • Analytics Overview
  • Alias Performance
  • Top Senders
  • Trends
  • Bounces
  • Bandwidth Usage
  • Category Breakdown
  • Exporting Analytics Data
  • Understanding Alias Statistics
  • How Monthly Trends Work

Sender Rules

Sender Rules
  • Using Sender Rules
  • Blacklist vs Deactivating an Alias
  • Using Allowlist Rules to Allow Senders
  • Blocked Emails Explained

Troubleshooting

Troubleshooting
  • Emails Not Arriving
  • Can't Verify a Destination
  • DNS Not Verifying
  • Can't Log In
  • Replies Not Going Through Alias
  • Alias Not Forwarding
  • Payment Failed
  • Browser Extension Issues
  • Too Many Requests Error
  • Page Not Loading or Showing an Error

Developers

Developer API
  • Identity & Token Introspection API
  • Aliases API
  • Alias Destinations & Batch Operations API
  • Domains API
  • Destinations API
  • Quick-Send API
  • Sender Rules API
  • Activity & Audit Logs API
  • Fleet Analytics API
  • Rules API
  • Security & Threat Intelligence API
  • Webhooks API
  • Categories & Tags API
  • User Profile & Account API
PrivacyTermsCookies
Developer API
Docs
Developer API
Destinations API

Destinations API

Register destination inboxes, execute 6-digit OTP verification challenges, configure per-channel sender identities, and manage routing fallbacks.

8 min read
Updated September 5, 2026
Quick ReferenceList DestinationsRequest HeaderscURL ExampleResponse (200 OK)List Verified DestinationsResponse (200 OK)Register DestinationRequest Body SchemacURL ExampleResponse (201 Created)Error ResponsesVerify Destination (Submit OTP)Request Body SchemacURL ExampleResponse (200 OK)Error ResponsesResend Verification CodeRequest Body SchemaResponse (200 OK)Inspect Destination UsagePath ParametersResponse (200 OK)Delete DestinationRequest Body Schema (Smart Reassignment)cURL Example (Reassign and Delete)Response (200 OK)Error Responses

Register forwarding inboxes, manage 6-digit OTP verification challenges, configure custom sender identities, and manage routing targets.


Quick Reference#

EndpointMethodRequired ScopeDescription
/v1/destinationsGETdestinations:readList all destination inboxes with default resolution.
/v1/destinations/verifiedGETdestinations:readList only verified inboxes eligible for alias routing.
/v1/destinationsPOSTdestinations:writeRegister a new destination and trigger 6-digit OTP email.
/v1/destinations/verifyPOSTdestinations:writeSubmit 6-digit OTP code to verify ownership.
/v1/destinations/resendPOSTdestinations:writeResend verification code (60-second cooldown).
/v1/destinations/:id/usageGETdestinations:readInspect active aliases linked to this destination.
/v1/destinations/:id/from-namePATCHdestinations:writeConfigure custom sender display name and subject rules.
/v1/destinations/:idDELETEdestinations:writeDelete destination with smart reassignment support.
Data comparison table

List Destinations#

GET /v1/destinations

Returns all destination inboxes registered to your account, including pending verification states and default inbox resolution.

Scope: destinations:readRate Limit: 60 req/minIdempotent: Yes

Request Headers#

HeaderTypeRequiredDescription
AuthorizationstringOptional*Bearer afp_...
x-api-keystringOptional*afp_... (*Provide either Authorization or x-api-key).
AcceptstringYesapplication/json
Data comparison table

cURL Example#

Terminal
curl -X GET "https://api.aliasfleet.com/v1/destinations" \  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \  -H "Accept: application/json"

Response (200 OK)#

JSON
{  "destinations": [    {      "id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",      "email": "primary-ops@company.com",      "is_verified": true,      "is_active": 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": "8b7c6d5e-4f3a-2b1c-0d9e-8f7a6b5c4d3e",      "email": "alerts@company.com",      "is_verified": false,      "is_active": true,      "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"    }  ]}

List Verified Destinations#

GET /v1/destinations/verified

Returns only destinations that have completed 6-digit OTP verification. Useful for populating destination selection dropdowns.

Scope: destinations:readRate Limit: 60 req/minIdempotent: Yes

Response (200 OK)#

JSON
{  "destinations": [    {      "id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",      "email": "primary-ops@company.com",      "verified_at": "2026-06-16T09:44:04.169Z",      "created_at": "2026-06-01T12:00:00.000Z",      "updated_at": "2026-06-16T09:44:04.169Z"    }  ]}

Register Destination#

POST /v1/destinations

Registers a new destination email address and immediately dispatches a 6-digit verification code to the target inbox.

Scope: destinations:writeRate Limit: 5 req/minIdempotent: No

Request Body Schema#

FieldTypeRequiredDescription
emailstringYesValid RFC 5322 email address for the destination inbox.
Data comparison table

cURL Example#

Terminal
curl -X POST "https://api.aliasfleet.com/v1/destinations" \  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \  -H "Content-Type: application/json" \  -d '{    "email": "dev-alerts@company.com"  }'

Response (201 Created)#

JSON
{  "message": "Verification code sent to your email",  "data": {    "id": "8b7c6d5e-4f3a-2b1c-0d9e-8f7a6b5c4d3e",    "email": "dev-alerts@company.com",    "is_verified": false,    "is_active": true,    "created_at": "2026-09-04T12:00:00.000Z"  }}

Error Responses#

Status CodeCodeError MessageReason
400DESTINATION_SUPPRESSED"This email address or domain is restricted and cannot be added as a destination."Address is globally blacklisted or rejected by anti-abuse policies.
403LIMIT_REACHED"Destination limit reached. Please upgrade your plan."Account has reached the maximum allowed destination inboxes (1 on Free, 5 on Pro, 20 on Business).
409DUPLICATE_DESTINATION"This destination email has already been added to your account."Address is already registered to your account.
429RATE_LIMIT_EXCEEDED"Too Many Requests"Destination creation rate limit (5 req/min) exceeded.
Data comparison table

Verify Destination (Submit OTP)#

POST /v1/destinations/verify

Submits the 6-digit numeric OTP code received in the destination inbox to complete verification.

Scope: destinations:writeRate Limit: 60 req/minIdempotent: No

Request Body Schema#

FieldTypeRequiredConstraintsDescription
destination_idstringYesUUIDIdentifier of the pending destination.
tokenstringYes6 digitsNumeric code from the verification email.
Data comparison table

cURL Example#

Terminal
curl -X POST "https://api.aliasfleet.com/v1/destinations/verify" \  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \  -H "Content-Type: application/json" \  -d '{    "destination_id": "8b7c6d5e-4f3a-2b1c-0d9e-8f7a6b5c4d3e",    "token": "482915"  }'

Response (200 OK)#

JSON
{  "message": "Email verified successfully",  "destination": {    "id": "8b7c6d5e-4f3a-2b1c-0d9e-8f7a6b5c4d3e",    "email": "dev-alerts@company.com",    "is_verified": true,    "verified_at": "2026-09-04T12:05:00.000Z"  }}

Error Responses#

Status CodeCodeError MessageReason
400INVALID_CODE"Invalid verification code"The entered code does not match. Attempt counter incremented.
400CODE_EXPIRED"Verification code has expired. Please request a new one."Code exceeded the 15-minute validity window.
429MAX_ATTEMPTS_EXCEEDED"Too many failed attempts. Please request a new code in 15 minutes."3 consecutive failures triggered a 15-minute temporary lockout.
Data comparison table

Resend Verification Code#

POST /v1/destinations/resend

Generates and dispatches a fresh 6-digit verification code. Enforces a 60-second cooldown between requests.

Scope: destinations:writeRate Limit: 1 req / 60sIdempotent: No

Request Body Schema#

FieldTypeRequiredDescription
destination_idstringYesUUID of the pending destination.
Data comparison table

Response (200 OK)#

JSON
{  "message": "Verification code resent successfully"}

Inspect Destination Usage#

GET /v1/destinations/:id/usage

Retrieves all active aliases linked to this destination either directly (forward_to_email) or through multi-destination recipient links.

Scope: destinations:readRate Limit: 60 req/min

Path Parameters#

ParameterTypeRequiredDescription
idstringYesUUID of the destination inbox.
Data comparison table

Response (200 OK)#

JSON
{  "destination_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",  "email": "primary-ops@company.com",  "count": 2,  "aliases": [    {      "id": "9f83a21b-4c7d-4e9a-8b7c-6d5e4f3a2b1c",      "local_part": "billing-support",      "domain": "company.com",      "is_active": true    },    {      "id": "8b7c6d5e-4f3a-2b1c-0d9e-8f7a6b5c4d3e",      "local_part": "security-alerts",      "domain": "company.com",      "is_active": true    }  ]}

Delete Destination#

DELETE /v1/destinations/:id

Deletes a destination inbox with automated dependency checks and smart reassignment support.

Scope: destinations:writeRate Limit: 60 req/minIdempotent: Yes

Request Body Schema (Smart Reassignment)#

When deleting a destination with dependent aliases, provide resolution instructions:

FieldTypeRequiredConstraintsDescription
actionstringOptional"reassign" or "deactivate"Strategy for handling dependent aliases.
reassign_to_destination_idstringOptional*UUIDRequired when action === "reassign". Target verified destination.
Data comparison table

cURL Example (Reassign and Delete)#

Terminal
curl -X DELETE "https://api.aliasfleet.com/v1/destinations/8b7c6d5e-4f3a-2b1c-0d9e-8f7a6b5c4d3e" \  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \  -H "Content-Type: application/json" \  -d '{    "action": "reassign",    "reassign_to_destination_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"  }'

Response (200 OK)#

JSON
{  "success": true,  "message": "Destination deleted successfully"}

Error Responses#

Status CodeCodeError MessageReason
400PRIMARY_EMAIL_PROTECTED"You cannot delete your primary account email destination"Cannot delete the email address linked to your primary account profile.
400LAST_VERIFIED_PROTECTED"You must keep at least one verified destination"Accounts require at least one verified destination inbox for routing.
400DEPENDENT_ALIASES"Cannot delete destination with dependent aliases"Destination is in active use. Response includes aliases array and count. Provide action: 'reassign' or 'deactivate'.
404NOT_FOUND"Destination not found"Destination ID does not exist.
Data comparison table

Frequently Asked Questions

No. Incoming emails are dropped or held until destination ownership is confirmed through the 6-digit OTP verification handshake.

Verification codes expire 15 minutes after issuance. If entered incorrectly 3 consecutive times, a 15-minute lockout activates to prevent brute-force attempts.

The API rejects deletion with HTTP 400 DEPENDENT_ALIASES, returning the list of linked aliases. You can delete by passing a smart reassignment body ({ action: 'reassign', reassign_to_destination_id }) or deactivating them ({ action: 'deactivate' }).

No. The primary account email address is protected against deletion (HTTP 400 PRIMARY_EMAIL_PROTECTED) to prevent accidental account lockouts.

Was this article helpful?

PreviousDomains APINextQuick-Send API

Related in Developer API

Identity & Token Introspection API

Verify token validity, inspect active permission scopes, and retrieve account metadata using the Identity API.

Aliases API

Create, list, inspect, update, and manage the full lifecycle of email aliases programmatically using the AliasFleet REST API.

Alias Destinations & Batch Operations API

Configure multi-destination forwarding fanout, execute atomic batch updates across up to 100 aliases, and fine-tune per-alias privacy settings.

Domains API

Query shared platform domains, register custom brand domains, provision subdomains, verify DNS records, and inspect catch-all forwarding rules.

Quick-Send API

Dispatch outbound emails through your aliases, stage attachments via presigned URLs, inspect delivery logs, and manage sender signatures.

On this page

Quick ReferenceList DestinationsRequest HeaderscURL ExampleResponse (200 OK)List Verified DestinationsResponse (200 OK)Register DestinationRequest Body SchemacURL ExampleResponse (201 Created)Error ResponsesVerify Destination (Submit OTP)Request Body SchemacURL ExampleResponse (200 OK)Error ResponsesResend Verification CodeRequest Body SchemaResponse (200 OK)Inspect Destination UsagePath ParametersResponse (200 OK)Delete DestinationRequest Body Schema (Smart Reassignment)cURL Example (Reassign and Delete)Response (200 OK)Error Responses

Still need help?

Cannot find the answer you are looking for? Our support team is ready to assist.

Contact Support