Domainee Docs

Authentication

Bearer-token auth with API keys you mint from the dashboard.

The Domainee REST API uses Bearer-token authentication with API keys you mint from the Developers page.

API key format

sk_live_<48 random base64url chars>

Total length: 56 characters. The sk_live_ prefix is constant; the rest is cryptographically random.

Sending the key

Every request to https://api.domainee.dev/v1/* must include:

Authorization: Bearer sk_live_...

Example:

curl https://api.domainee.dev/v1/domains \
  -H "Authorization: Bearer $DOMAINEE_API_KEY"

The header name and Bearer scheme are case-insensitive (authorization: bearer works too), per RFC 7235.

Workspace scoping

Every API key belongs to exactly one workspace — the workspace it was created in. All resources you create with that key (domains, webhook endpoints) belong to the same workspace and are billed against its subscription.

If you have multiple workspaces, each one needs its own key.

Managing keys

In the dashboard at /developers:

  • New key — generates a fresh key. Plaintext is shown ONCE in a modal — copy it before closing.
  • Revoke — invalidates the key immediately. Any in-flight requests with the revoked key get 401.

We never store the plaintext server-side; only a SHA-256 hash and the first 16 characters (the sk_live_xxxx… prefix) for display in the dashboard.

Storing keys safely

  • Treat keys as production credentials. Keep them in your secret manager (Doppler, AWS Secrets Manager, Railway env vars, etc.).
  • Don't commit them to git or include them in client-side code. They're server-side only — anyone with a key can manage all domains in your workspace.
  • Rotate on compromise. Revoke + mint a new key whenever you suspect leakage.
  • Use one key per environment. Production app uses one key, staging uses another. If staging leaks, only staging is exposed.

Test credentials

Domainee currently runs in live mode only. Use a workspace dedicated to testing if you need a sandbox.

Errors

StatusWhen it fires
401 unauthorizedMissing Authorization header
401 unauthorizedAPI key not found, malformed, or revoked
429 rate_limitedExceeded 60 req/min per key (configurable on request)

A revoked key returns 401 with {"error":"unauthorized","message":"Invalid API key"}.

On this page