Skip to main content

emailalias-python

Official Python client for the EmailAlias.io REST API.

API access is a Premium feature. Generate a key from Settings → API Keys in the web dashboard.

Install

pip install emailalias

Or from source:

pip install git+https://github.com/emailalias/emailalias-python.git

Quick start

from emailalias import Client

client = Client(api_key="ea_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

# Create an alias
alias = client.create_alias(alias_type="random", label="Shopping")
print(alias["alias_email"])   # e.g. "x7k9m@email91.com"

# List aliases
for a in client.list_aliases():
    print(a["alias_email"], "→", a["destination_email"])

# Forward to a verified additional destination
alias = client.create_alias(
    alias_type="custom",
    custom_code="work-signup",
    label="Work",
    destination_email="work@mycompany.com",  # must be verified on your account first
)

# Send email from an alias
client.send_email(
    alias_id=alias["id"],
    to_email="recipient@example.com",
    subject="Hello",
    body="Sent from my alias.",
)

# Disable an alias
client.update_alias(alias_id=alias["id"], active=False)

Error handling

from emailalias import Client, AuthenticationError, RateLimitError

client = Client(api_key="ea_live_xxx")
try:
    client.list_aliases()
except AuthenticationError:
    # Invalid key, or account is no longer Premium
    ...
except RateLimitError:
    # Respect X-RateLimit-Reset and retry
    ...

Configuration

client = Client(
    api_key="ea_live_xxx",
    base_url="https://emailalias.io",  # override for staging/self-host
    timeout=30.0,
)

Available methods

Method Endpoint
list_aliases() GET /api/aliases
create_alias(...) POST /api/aliases
update_alias(id, active=, label=) PATCH /api/aliases/{id}
update_alias_display_name(id, display_name) PATCH /api/aliases/{id}/display-name
delete_alias(id) DELETE /api/aliases/{id}
list_available_domains() GET /api/aliases/domains
list_destinations() GET /api/destinations
add_destination(email) POST /api/destinations
resend_destination_verification(id) POST /api/destinations/{id}/resend
delete_destination(id) DELETE /api/destinations/{id}
send_email(alias_id, to_email, subject, body, html_body=) POST /api/send-email
list_domains() GET /api/domains
add_domain(name) POST /api/domains
verify_domain(id) POST /api/domains/{id}/verify
delete_domain(id) DELETE /api/domains/{id}
set_catch_all(id, catch_all, destination=None) PATCH /api/domains/{id}/catch-all
disable_catch_all_aliases(id) POST /api/domains/{id}/catch-all/disable-aliases
get_dashboard_stats() GET /api/analytics/dashboard
list_logs(page=, per_page=) GET /api/analytics/logs
list_exposure_events(page=, per_page=) GET /api/analytics/exposure

Full API reference: https://emailalias.io/documentation

License

MIT

Metadata

Release files for emailalias 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emailalias 1.1.0
File Size Uploaded
emailalias-1.1.0.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for emailalias 1.1.0
File Interpreter ABI Platform
emailalias-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / emailalias-1.1.0.tar.gz

Download URL emailalias-1.1.0.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
05c50b560ab5f8d62452055b32f14e18f44078a54597d413e9aa1fba39b6edc7
BLAKE2b-256 checksum
How to use checksums
a99eb72cf62437c7ab51fdfcfc3fbdff4358fd01a893fef7aa1d45f389ec106e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / emailalias-1.1.0-py3-none-any.whl

Download URL emailalias-1.1.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1fe5194b7c691b532e19be329f4a95f3f1a29310125b8d622e7c8cee409a0dd2
BLAKE2b-256 checksum
How to use checksums
870aa9b54f1ee368450f4601fb2f3d4c656f8be946aa6fc2c3068e7a5df3ea43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page