SDKs
Edge & Serverless
Integrate disposable email checks in serverless functions. Choose Node.js, Deno or portable Fetch clients for Supabase, Vercel and Workers.
On this page
Choose the JavaScript transport that matches your runtime. All checks use https://api.irondome.dev; keep credentials in server-side secrets.
Choose by runtime
| Runtime | Client entry | Connection owner |
|---|---|---|
| Cloudflare Workers | @irondome-dev/sdk |
Platform Fetch |
| Vercel Node.js Functions | @irondome-dev/sdk/node |
SDK HTTPS pool |
| Vercel Edge Functions | @irondome-dev/sdk |
Platform Fetch |
| Standalone Deno with native HTTP client support | npm:@irondome-dev/sdk@0.2.0/deno |
SDK native HTTP client |
| Supabase Edge Functions | npm:@irondome-dev/sdk@0.2.0 |
Platform Fetch |
For Supabase Auth user creation, prefer the signed Before User Created hook. It does not require you to deploy an Edge Function or expose an email-check proxy.
A runtime using Deno does not necessarily expose Deno.createHttpClient. Choose portable Fetch in restricted hosted environments; use the native Deno adapter only when that API is available.
Install the package
For the platform helpers using the published JavaScript package:
npm install @irondome-dev/sdk@0.2.0
These helpers set baseUrl explicitly to https://api.irondome.dev. For installation and the client API, see the JavaScript guide. Pin dependencies in your deployment and verify resolution in staging.
Configure server secrets
Set IRONDOME_API_KEY in your platform's secret manager. If the integration uses IRONDOME_BASE_URL, set it to https://api.irondome.dev. Do not accept either value from request input.
Your authorized plan determines quota and billing. See plans and limits and manage your plan.
Enforce the signup decision
Run the check inside your protected backend flow after input validation and rate limiting, before creating an account or sending a verification message. Await the result.
Reject disposable addresses according to your policy. Handle authentication, quota, timeout, and service failures separately from classifications. A check failure must not become an allowed-email result.
Keep work within the runtime lifecycle
Reuse a module-scoped Node.js or native Deno client within a warm instance. Close owned pools at shutdown after work drains, not after each request. Portable clients delegate sockets to platform Fetch; follow the platform's invocation rules.
Optional warmup sends an unauthenticated health request without consuming a check. Another invocation can use another instance, so it cannot guarantee a prepared connection for signup. Do not detach a check that controls account creation or add a health request before every check.
Continue with Workers, Vercel, Deno, or connection reuse.