Skip to content
IRONDOME
Docs menu

Guides

Plans and migration

Keep one account key across plans and upgrade to SDK 0.2.0. Replace legacy credentials and use the unified IronDome API origin.

On this page

Manage free and pay-as-you-go access from your IronDome account. All checks use https://api.irondome.dev; normal plan changes keep both your unified account key and the API origin unchanged.

Enable paid access

  1. Open billing, complete setup, and confirm paid access is active.
  2. Keep using your existing unified account key and SDK client. Wait for the account policy update to publish.
  3. Send a controlled check, confirm success, and review recorded usage. The check consumes usage; accounting can lag.

A submitted billing form or pending plan update is not proof authorization has changed. Confirm account state before enabling production traffic.

Upgrade to SDK 0.2.0

Version 0.2.0 defaults to https://api.irondome.dev. Update your dependency and use the constructor for your language:

SDK Install Constructor
JavaScript npm install @irondome-dev/sdk@0.2.0 new IronDome({ apiKey })
Go go get github.com/IrondomeDev/sdks/go@v0.2.0 irondome.New(key, irondome.Options{})
Rust irondome-sdk = "=0.2.0" in Cargo.toml Client::new(key, Options::default())
Python Public tagged source; PyPI pending Client(key) or AsyncClient(key)

Go's old New(key, origin, options) becomes New(key, options). Rust's old Client::new(key, origin, options) becomes Client::new(key, options). For trusted staging, set Go's Options.BaseURL or Rust's Options::base_url instead. Update Go imports to github.com/IrondomeDev/sdks/go.

Remove legacy free origins from your configuration. Single checks, bulk checks and health retain their routes and response contract: /v1/check, /v1/check/bulk and /healthz. Review errors and client lifecycles before deploying.

Replace a legacy key

Existing dome_free_v1. and dome_live_v1. keys are retired. Create a new unified account key in API keys; newly issued keys begin with dome_acct_v1.. Treat the complete credential as opaque: editing a prefix does not migrate a signed key.

  1. Save the newly issued key in your server's secret manager.
  2. Change the API origin to https://api.irondome.dev. The old free.irondome.dev endpoint returns HTTP 410 Gone; SDK 0.2.0 rejects legacy free origins.
  3. Update all deployments and recreate clients that hold the replaced credential. Drain outstanding work before closing old clients.
  4. Perform one controlled check and confirm success. This consumes usage.
  5. Revoke any replaced credential still listed as active.

This is a one-time credential migration. Future normal plan changes use the same unified account key. Supabase native hooks keep their installation URL and signing secret; SDK upgrades do not replace hook configuration.

Handle quota exhaustion

HTTP 429 monthly_quota_exceeded means free-quota policy denies another check. Retrying does not reset it. Wait for the UTC monthly reset or explicitly arrange paid access.

Avoid automatic fallback between credentials or plans: it can change costs without the operator's knowledge. A quota failure is not a classification.

Read usage

Use GET /v1/usage for a free allowance. It returns HTTP 403 free_usage_only for a paid context. Read paid usage and invoices in the dashboard and billing page.

Verify integrations

Retest Supabase Auth and your server's signup flow after plan or credential changes. Keep failures separate from allowed-email results.

Review plans and limits for counting and asynchronous quota behavior.