# IronDome documentation > IronDome is a fast disposable-email detection API. The free plan includes 500 successful checks per UTC calendar month, shared across the organization's keys and free-plan integrations. See [plans and limits](https://irondome.dev/docs/plans.md), the [performance guide](https://irondome.dev/docs/guides/performance.md), and [published latency benchmarks](https://irondome.dev/benchmarks#latency-title). Observed latency varies with region and connection reuse. The Markdown pages below contain the complete public documentation and are generated from the same sources as the HTML pages. ## Common use cases - [Reduce email-based trial abuse](https://irondome.dev/docs/guides/signup.md): Check for disposable addresses before creating accounts or granting trial access. - [Block disposable-email signups](https://irondome.dev/docs/guides/supabase.md): Use Supabase Auth's Before User Created hook to reject disposable addresses before account creation. Disposable-email detection is one control, not complete fraud or trial-abuse prevention. Keep email ownership verification, rate limits, and other abuse controls. ## Start here - [Documentation](https://irondome.dev/docs.md): Integrate IronDome email checks with REST, JavaScript, Python, Go, Rust, or Supabase Auth. Learn authentication, quota, and signup handling. - [Quickstart](https://irondome.dev/docs/quickstart.md): Make your first email check at api.irondome.dev with a Bearer key. Read the result and handle invalid addresses, quota, and service errors. - [Authentication](https://irondome.dev/docs/authentication.md): Authenticate IronDome API requests with a Bearer key. Create, store and revoke server-side keys, and keep credentials out of browser code. ## API reference - [Check an email](https://irondome.dev/docs/api/check.md): POST /v1/check: request format, authentication, response fields and disposable email detection results. - [Bulk checks](https://irondome.dev/docs/api/bulk.md): Check up to 100 email addresses with POST /v1/check/bulk. Request examples, ordered results and per-email usage. - [Health](https://irondome.dev/docs/api/health.md): GET /healthz checks IronDome endpoint availability without checking an email. See response examples and connection warmup guidance. - [Free usage](https://irondome.dev/docs/api/usage.md): Read the shared monthly free allowance with GET /v1/usage at api.irondome.dev. Understand approximate counters and paid-context errors. - [Errors](https://irondome.dev/docs/errors.md): Handle IronDome API errors for invalid requests, authentication, quotas and service failures. See response formats and when to retry. ## Guides - [Plans and limits](https://irondome.dev/docs/plans.md): Understand free quota, paid pricing, per-email usage, and request limits. All plans use api.irondome.dev. - [Plans and migration](https://irondome.dev/docs/guides/migrate.md): Keep one account key across plans and upgrade to SDK 0.2.0. Replace legacy credentials and use the unified IronDome API origin. - [Performance and warmup](https://irondome.dev/docs/guides/performance.md): Reduce email-check latency with HTTP connection reuse, signup-page warmup and bulk requests. Configure client pools and timeouts. - [Signup validation](https://irondome.dev/docs/guides/signup.md): Add server-side disposable email checks before account creation. Handle rejected addresses, API errors and timeouts without skipping ownership verification. ## SDKs - [SDK overview](https://irondome.dev/docs/sdks.md): Choose a JavaScript, Python, Go, or Rust client for IronDome. Learn installation availability, connection reuse, bulk checks, and errors. - [JavaScript / Node.js](https://irondome.dev/docs/guides/node.md): Check emails with the IronDome Node.js client. Reuse its HTTPS pool, classify API errors, and submit bulk checks. - [Python](https://irondome.dev/docs/guides/python.md): Detect disposable emails in Python with synchronous or asynchronous IronDome clients. Includes connection reuse and API error handling. - [Go](https://irondome.dev/docs/guides/go.md): Check disposable email addresses in Go with the IronDome SDK. Reuse an HTTP transport, set request deadlines and handle API errors. - [Rust](https://irondome.dev/docs/guides/rust.md): Detect disposable emails in Rust using an asynchronous IronDome client. Share connection pools across tasks and configure timeouts. - [Edge & Serverless](https://irondome.dev/docs/guides/edge-serverless.md): Integrate disposable email checks in serverless functions. Choose Node.js, Deno or portable Fetch clients for Supabase, Vercel and Workers. ## Platform guides - [Cloudflare Workers](https://irondome.dev/docs/guides/workers.md): Call IronDome from Cloudflare Workers using Fetch. Store your API key as a Worker secret and handle email-check responses inside requests. - [Supabase Auth](https://irondome.dev/docs/guides/supabase.md): Use IronDome with Supabase’s Before User Created hook to reject disposable-email signups. Follow setup, test outcomes and troubleshoot failures. - [Vercel Functions](https://irondome.dev/docs/guides/vercel.md): Add IronDome disposable email checks to Vercel Functions. Choose the Node.js adapter or portable Edge client and configure server secrets. - [Deno](https://irondome.dev/docs/guides/deno.md): Check disposable emails in Deno with the IronDome SDK. Configure network permissions, protect your API key and reuse a native HTTP client.