HomeDocsSupport
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

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
  • Creating and Managing Aliases
  • Activating and Deactivating an Alias
  • Deleting an 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
  • 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 & 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 Your Alias Statistics
  • How Monthly Trends Work

Sender Rules

Sender Rules
  • Using Sender Rules
  • Blacklist vs Deactivating an Alias
  • Using Sender Rules to Allow Senders (Whitelist)
  • 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 Engine API
  • Security & Threat Intelligence API
  • Webhooks 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

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
  • Creating and Managing Aliases
  • Activating and Deactivating an Alias
  • Deleting an 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
  • 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 & 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 Your Alias Statistics
  • How Monthly Trends Work

Sender Rules

Sender Rules
  • Using Sender Rules
  • Blacklist vs Deactivating an Alias
  • Using Sender Rules to Allow Senders (Whitelist)
  • 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 Engine API
  • Security & Threat Intelligence API
  • Webhooks API
PrivacyTermsCookies
Developer API
Docs
Developer API
Aliases API

Aliases API

Create, list, inspect, update, and soft-delete email aliases programmatically using the AliasFleet REST API.

9 min read
Updated September 4, 2026

Provision private email aliases, inspect forwarding telemetry, update delivery rules, and manage address lifecycles.


Quick Reference

EndpointMethodScopePurpose
/v1/aliasesGETaliases:readList active, paused, or trashed aliases
/v1/aliasesPOSTaliases:writeCreate a new alias with custom or randomized local parts
/v1/aliases/check-availabilityGETaliases:readCheck whether a specific alias address is available
/v1/aliases/statsGETaliases:readRetrieve aggregate counts (active, paused, trashed)
/v1/aliases/:idGETaliases:readRetrieve detailed configuration and metrics for a single alias
/v1/aliases/:idPATCHaliases:writeUpdate alias state, label, note, or destination routing
/v1/aliases/:idDELETEaliases:writeMove an alias to trash (soft-delete) or purge permanently
/v1/aliases/:id/restorePOSTaliases:writeRestore a trashed alias back to active routing

GET /v1/aliases — List Aliases

Scope: aliases:read · Rate Limit: 60/min · Idempotent: Yes

Retrieves a paginated list of email aliases for your workspace. Results can be filtered by operational status, category folder, or domain.

Query Parameters

ParameterTypeRequiredDefaultDescription
statusstringNoactiveFilter by status: 'active', 'paused', 'trash', or 'all'.
pageintegerNo1Page number to retrieve (1-indexed).
limitintegerNo20Number of items per page (min 1, max 100).
domain_idstringNo—Filter aliases under a specific domain (dom_...).
category_idstringNo—Filter aliases assigned to a category (acat_...).
searchstringNo—Fuzzy search across local_part, label, or note.

Example Request

curl -X GET "https://api.aliasfleet.com/v1/aliases?status=active&limit=2" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
  -H "Accept: application/json"

Response (200 OK)

{
  "aliases": [
    {
      "id": "al_6c5J5LMXd5E3Yq1Wx1zN",
      "address": "billing-support@company.com",
      "local_part": "billing-support",
      "domain": "company.com",
      "domain_id": "dom_bXm9kLpQr2nVwYz3",
      "label": "Billing Inquiries",
      "note": "Shared alias for customer invoices",
      "is_active": true,
      "status": "active",
      "emails_forwarded": 142,
      "emails_blocked": 3,
      "emails_replied": 12,
      "emails_sent": 0,
      "forward_to_email": "ops@company.com",
      "category_id": "acat_cYn0mMqRs3oWxZa4",
      "created_at": "2026-07-01T12:00:00.000Z",
      "updated_at": "2026-08-15T09:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 2,
    "total": 48,
    "total_pages": 24,
    "has_more": true
  }
}

Errors

StatusCodeCause & Resolution
401 UnauthorizedUNAUTHORIZEDMissing or invalid API key.
429 Too Many RequestsRATE_LIMIT_EXCEEDEDRequest threshold reached.

POST /v1/aliases — Create Alias

Scope: aliases:write · Rate Limit: 10/min · Idempotent: Yes (with Idempotency-Key)

Provisions a new email alias. If local_part is omitted, the API generates a cryptographically random 8-character string. If destinations or forward_to_email is omitted, the alias routes to your account's default destination.

Request Body Parameters

ParameterTypeRequiredConstraintsDescription
local_partstringNo1–64 chars; [a-z0-9._-]Desired address prefix. If omitted, generates random string.
domain_idstringNoValid dom_ IDTarget domain. If omitted, uses default account domain.
domainstringNoValid FQDNAlternative to domain_id. Matches by domain name.
forward_to_emailstringNoValid email addressPrimary destination inbox. Must be verified on account.
destinationsarrayNoArray of stringsMulti-inbox forward targets (verified emails or dest_ IDs).
labelstringNoMax 100 charsHuman-readable alias title.
notestringNoMax 500 charsInternal contextual description.
category_idstringNoValid acat_ IDFolder category to assign the alias to.

Example Request

curl -X POST "https://api.aliasfleet.com/v1/aliases" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: e6b48325-1e9a-4c26-8ff5-0e31846b9a21" \
  -d '{
    "local_part": "stripe-billing",
    "domain_id": "dom_bXm9kLpQr2nVwYz3",
    "label": "Stripe Invoices",
    "forward_to_email": "finance@company.com"
  }'

Response (201 Created)

{
  "alias": {
    "id": "al_6c5J5LMXd5E3Yq1Wx1zN",
    "address": "stripe-billing@company.com",
    "local_part": "stripe-billing",
    "domain": "company.com",
    "domain_id": "dom_bXm9kLpQr2nVwYz3",
    "label": "Stripe Invoices",
    "note": null,
    "is_active": true,
    "status": "active",
    "forward_to_email": "finance@company.com",
    "emails_forwarded": 0,
    "emails_blocked": 0,
    "emails_replied": 0,
    "emails_sent": 0,
    "created_at": "2026-09-04T12:00:00.000Z"
  }
}

Errors

StatusCodeCause & Resolution
400 Bad RequestINVALID_FORMATLocal part contains uppercase letters, spaces, or illegal punctuation.
400 Bad RequestRESERVED_PREFIXSystem prefixes (admin, support, abuse) are blocked on shared domains.
403 ForbiddenQUOTA_EXCEEDEDActive alias limit reached for your plan tier. Upgrade plan to expand headroom.
409 ConflictALIAS_EXISTSThe specified local_part and domain combination is already registered.
422 UnprocessableUNVERIFIED_DESTINATIONThe target forwarding inbox has not completed OTP verification.
429 Too Many RequestsRATE_LIMIT_EXCEEDEDExceeded 10 alias creations / minute limit. Check Retry-After.

GET /v1/aliases/check-availability — Check Availability

Scope: aliases:read · Rate Limit: 60/min · Idempotent: Yes

Pre-flight endpoint to verify whether a desired alias address is available before attempting creation.

Query Parameters

ParameterTypeRequiredDescription
local_partstringYesPrefix to check (e.g. newsletter).
domain_idstringNoDomain to check against. If omitted, uses default domain.
domainstringNoDomain name string alternative to domain_id.

Example Request

curl -X GET "https://api.aliasfleet.com/v1/aliases/check-availability?local_part=newsletter&domain=company.com" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
  -H "Accept: application/json"

Response (200 OK)

{
  "available": true,
  "address": "newsletter@company.com",
  "local_part": "newsletter",
  "domain": "company.com"
}

GET /v1/aliases/stats — Aggregate Statistics

Scope: aliases:read · Rate Limit: 60/min · Idempotent: Yes

Retrieves summary totals of your workspace aliases partitioned by operational status.

Example Request

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

Response (200 OK)

{
  "total": 52,
  "active": 45,
  "paused": 4,
  "trash": 3
}

GET /v1/aliases/:id — Retrieve Alias

Scope: aliases:read · Rate Limit: 60/min · Idempotent: Yes

Retrieves the full record and forwarding telemetry for a specific alias.

Path Parameters

ParameterTypeRequiredDescription
idstringYesUnique alias identifier (al_...).

Example Request

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

Response (200 OK)

{
  "alias": {
    "id": "al_6c5J5LMXd5E3Yq1Wx1zN",
    "address": "stripe-billing@company.com",
    "local_part": "stripe-billing",
    "domain": "company.com",
    "domain_id": "dom_bXm9kLpQr2nVwYz3",
    "label": "Stripe Invoices",
    "note": "Billing receipts",
    "is_active": true,
    "status": "active",
    "forward_to_email": "finance@company.com",
    "emails_forwarded": 38,
    "emails_blocked": 1,
    "emails_replied": 0,
    "emails_sent": 0,
    "created_at": "2026-07-01T12:00:00.000Z"
  }
}

Errors

StatusCodeCause & Resolution
404 Not FoundALIAS_NOT_FOUNDAlias does not exist or belongs to another workspace.

PATCH /v1/aliases/:id — Update Alias

Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes

Modifies metadata, destination routing, or delivery status for an alias.

Request Body Parameters

ParameterTypeDescription
is_activebooleanSet false to pause forwarding, true to resume.
labelstring | nullDisplay name for the alias. Max 100 chars. Set null to clear.
notestring | nullInternal notes. Max 500 chars. Set null to clear.
category_idstring | nullFolder category ID (acat_...). Set null to unassign.
forward_to_emailstringNew destination inbox. Must be verified on your account.

Example Request

curl -X PATCH "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e" \
  -H "Content-Type: application/json" \
  -d '{
    "is_active": false,
    "label": "Paused Billing Alias"
  }'

Response (200 OK)

{
  "alias": {
    "id": "al_6c5J5LMXd5E3Yq1Wx1zN",
    "address": "stripe-billing@company.com",
    "is_active": false,
    "status": "paused",
    "label": "Paused Billing Alias"
  }
}

Errors

StatusCodeCause & Resolution
400 Bad RequestALIAS_TRASHEDCannot modify settings on an alias in trash. Restore it first.
404 Not FoundALIAS_NOT_FOUNDAlias ID does not exist.

DELETE /v1/aliases/:id — Delete or Trash Alias

Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes

Moves an alias to trash (soft-delete) or purges it permanently. Trashed aliases drop incoming emails immediately but can be restored.

Query Parameters

ParameterTypeRequiredDefaultDescription
permanentbooleanNofalseWhen true, permanently deletes the alias and purges all records.

Example: Move to Trash (Soft-Delete)

curl -X DELETE "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e"
{
  "success": true,
  "message": "Alias moved to trash",
  "alias": {
    "id": "al_6c5J5LMXd5E3Yq1Wx1zN",
    "status": "trash",
    "deleted_at": "2026-09-04T12:30:00.000Z"
  }
}

Example: Permanent Purge

curl -X DELETE "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN?permanent=true" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e"
{
  "success": true,
  "message": "Alias permanently deleted"
}
Caution

Permanent deletion purges routing rules and analytics history. The address cannot be recovered once purged.


POST /v1/aliases/:id/restore — Restore Trashed Alias

Scope: aliases:write · Rate Limit: 60/min · Idempotent: Yes

Restores an alias from trash back to active status, re-enabling email forwarding and metrics tracking.

Example Request

curl -X POST "https://api.aliasfleet.com/v1/aliases/al_6c5J5LMXd5E3Yq1Wx1zN/restore" \
  -H "Authorization: Bearer afp_4a8f9c1b2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e"

Response (200 OK)

{
  "success": true,
  "message": "Alias restored successfully",
  "alias": {
    "id": "al_6c5J5LMXd5E3Yq1Wx1zN",
    "is_active": true,
    "status": "active",
    "deleted_at": null
  }
}

Errors

StatusCodeCause & Resolution
400 Bad RequestNOT_IN_TRASHThe alias is not currently in trash.
403 ForbiddenQUOTA_EXCEEDEDCannot restore alias because active plan quota has been reached.
404 Not FoundALIAS_NOT_FOUNDAlias ID does not exist.

Frequently Asked Questions

What happens when an alias is moved to trash?

The alias is marked with a deleted_at timestamp, and incoming emails are dropped immediately at the mail edge. The address remains reserved to your account and can be restored anytime.

Are alias creation requests idempotent?

Yes. Pass an Idempotency-Key header on POST /v1/aliases. If network failures trigger a retry, the API returns the original alias object without double-allocating quota.

Can I generate randomized alias names automatically?

Yes. Omit the local_part field in your POST payload, and the API generates an 8-character cryptographic alphanumeric string.

Can an alias forward to multiple destination inboxes?

Yes. Pass an array of verified email addresses or destination IDs in the destinations body parameter.

Was this article helpful?

Related articles

Identity & Token Introspection API

Verify token validity, inspect active permission scopes, and retrieve account metadata using the Identity 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, verify DNS records, and inspect catch-all forwarding rules.

Destinations API

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

Quick-Send API

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

Content

Quick ReferenceGET /v1/aliases — List AliasesQuery ParametersExample RequestResponse (`200 OK`)ErrorsPOST /v1/aliases — Create AliasRequest Body ParametersExample RequestResponse (`201 Created`)ErrorsGET /v1/aliases/check-availability — Check AvailabilityQuery ParametersExample RequestResponse (`200 OK`)GET /v1/aliases/stats — Aggregate StatisticsExample RequestResponse (`200 OK`)GET /v1/aliases/:id — Retrieve AliasPath ParametersExample RequestResponse (`200 OK`)ErrorsPATCH /v1/aliases/:id — Update AliasRequest Body ParametersExample RequestResponse (`200 OK`)ErrorsDELETE /v1/aliases/:id — Delete or Trash AliasQuery ParametersExample: Move to Trash (Soft-Delete)Example: Permanent PurgePOST /v1/aliases/:id/restore — Restore Trashed AliasExample RequestResponse (`200 OK`)Errors

Still need help?

Can't find the answer you're looking for? Our support team is here to help.

Create Support Ticket