Identity, tenants and permissions as a service

Ship sign-up, sign-in and access control without building them.

Give every customer of your product their own isolated workspace, their own roles and their own permissions. You define what a permission means; we handle who the user is, which tenant they belong to and what they are allowed to do.

Create a free accountSign inRead the developer guide

Start with 10 requests a day before you add a card. No contract, no sales call.

How the platform sits between your apps and your customers Three client applications send sign-in and permission requests to the identity platform, which keeps separate tenants for each customer. Web app Mobile app Backend API Identity Tenant Aown roles Tenant Bown members Tenant Cown permissions
Your applications talk to one identity layer. Each of your customers gets a tenant that nobody else can see into.

Everything the identity layer needs

Sign-up and sign-in

Email verification, password sign-in and optional passkeys. Use our hosted pages with OpenID Connect, or call plain REST endpoints from your own backend and keep your own screens.

Tenant isolation

Every customer account is its own tenant. Roles, permissions and members belong to exactly one tenant and can never be read or assigned from another.

Roles you define

Register your own permission keys, bundle them into roles and assign roles to members. We never interpret a permission key. Each tenant starts with a protected administrator role and nothing else.

API keys and signed tokens

Exchange your client ID and API key for a short-lived signed token. Rotate keys with a grace period, revoke them instantly and delete them when they are done. Secrets are stored only as hashes.

NIN and BVN checks

Validate national identity and bank verification numbers for your users and optionally require a check before sign-in. Only a keyed hash is stored, never the number.

Budgets and usage alerts

Set an allowance and a period and get an email as usage approaches it. Every request is metered per application, and you see your plan and remaining allowance at all times.

From zero to a signed-in user in four steps

  1. 1

    Create an account

    Register and verify your email in the developer portal.

  2. 2

    Add an application

    You get an application ID and a client/tenant ID, and you become its administrator. Run several applications from one login.

  3. 3

    Generate an API key

    Shown once. Add a card to lift the starter limit, then go to production when you are ready.

  4. 4

    Call the API

    Exchange clientId:apiKey for a token, then send it with X-Application-Id to register and sign in your users.

curl -X POST https://<this-host>/application/auth \
  -H "Authorization: Basic $(printf '%s:%s' "$CLIENT_ID" "$API_KEY" | base64 -w0)"

curl -X POST https://<this-host>/tenant/user/login \
  -H "Authorization: Bearer $TOKEN" -H "X-Application-Id: $APPLICATION_ID" \
  -H "content-type: application/json" -d '{"email":"user@example.com","password":"…"}'

Two ways to integrate

REST application flow

The quickest start. Your backend posts credentials to /tenant/user/register and /tenant/user/login and gets tenant-scoped tokens back. You build your own screens.

  • Self-service in minutes
  • One tenant per application
  • Budgets, metering and KYC built in

Read the REST guide

Hosted OpenID Connect flow

Users sign up and sign in on our pages with the authorization-code flow and PKCE, so your backend never sees a password. Applications are registered by the platform operators.

  • Credentials never touch your servers
  • Several customer tenants per application
  • Passkeys and account recovery on hosted pages

Read the hosted guide

Simple, usage-based pricing

Billed in US dollars. Cards can be charged in USD or NGN. Every call made on behalf of your application counts as one request.

Loading current prices…

Identity checks such as NIN and BVN are priced per call and shown in your dashboard. Adding a card places a small refundable charge to prove it works.

Built to be trusted with identity

Secrets are never readable

API keys are stored as hashes and shown once. Rotate, revoke or delete them yourself at any time.

Operators cannot see your users

The platform owners see aggregate statistics only. There is no screen or API that lists your users, their emails or their identity records.

Strict by default

Pages run under a strict content security policy, privileged operators confirm with passkeys, and every sensitive change is written to an audit log.

Ready to stop building auth?

Create a free accountRead the developer guide