Skip to content
IRONDOME
Docs menu

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:

Terminal
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.