Skip to content

Repository files navigation

emailalias-nodejs

Official Node.js client for the EmailAlias.io REST API. TypeScript types included.

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

Install

npm install emailalias
# or
yarn add emailalias
# or
pnpm add emailalias

Requires Node.js 18+ (uses the global fetch).

Quick start

import{Client}from"emailalias";constclient=newClient({apiKey: process.env.EMAILALIAS_API_KEY!,});// Create an aliasconstalias=awaitclient.createAlias({alias_type: "random",label: "Shopping",});console.log(alias.alias_email);// "x7k9m@email91.com"// List aliasesconstaliases=awaitclient.listAliases();aliases.forEach((a)=>console.log(a.alias_email,"→",a.destination_email));// Forward to a verified additional destinationconstworkAlias=awaitclient.createAlias({alias_type: "custom",custom_code: "work-signup",label: "Work",destination_email: "work@mycompany.com",// must be verified on your account});// Send email from an aliasawaitclient.sendEmail({alias_id: alias.id,to_email: "recipient@example.com",subject: "Hello",body: "Sent from my alias.",});// Disable an aliasawaitclient.updateAlias(alias.id,{active: false});

Error handling

import{Client,AuthenticationError,RateLimitError,EmailAliasError,}from"emailalias";constclient=newClient({apiKey: "ea_live_xxx"});try{awaitclient.listAliases();}catch(err){if(errinstanceofAuthenticationError){// Invalid key, or account no longer Premium}elseif(errinstanceofRateLimitError){// Respect X-RateLimit-Reset and retry}elseif(errinstanceofEmailAliasError){console.error(err.status,err.message);}}

Configuration

constclient=newClient({apiKey: "ea_live_xxx",baseUrl: "https://emailalias.io",// override for staging / self-hosttimeoutMs: 30_000,fetchImpl: fetch,// inject a custom fetch (e.g. `undici`)});

⚠️ Browser usage

Never put a live API key in frontend code. Any user can open devtools and read it. If you're building a browser/React app, call EmailAlias.io from your backend and proxy requests from the client, or use emailalias-react from a Next.js Route Handler / server action.

Available methods

MethodEndpoint
listAliases()GET /api/aliases
createAlias(opts)POST /api/aliases
updateAlias(id, opts)PATCH /api/aliases/{id}
updateAliasDisplayName(id, displayName)PATCH /api/aliases/{id}/display-name
deleteAlias(id)DELETE /api/aliases/{id}
listAvailableDomains()GET /api/aliases/domains
listDestinations()GET /api/destinations
addDestination(email)POST /api/destinations
resendDestinationVerification(id)POST /api/destinations/{id}/resend
deleteDestination(id)DELETE /api/destinations/{id}
sendEmail({alias_id, to_email, subject, body, html_body?})POST /api/send-email
listDomains()GET /api/domains
addDomain(name)POST /api/domains
verifyDomain(id)POST /api/domains/{id}/verify
deleteDomain(id)DELETE /api/domains/{id}
getDashboardStats()GET /api/analytics/dashboard
listLogs(page, perPage)GET /api/analytics/logs
listExposureEvents(page, perPage)GET /api/analytics/exposure

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

License

MIT

About

Official NodeJs SDK for EmailAlias.io — create email aliases, manage forwarding, and monitor leaks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages