Skip to main content
Version: 2.0.0

API reference

Authentication

Two different credential types, don't mix them up:

  • Service API key (Authorization: Bearer $GENESIS_API_KEY) — for server-to-server calls like creating users or configuring SSO. Never expose this in client-side code.
  • Session token — short-lived, returned by POST /v1/genesis/sessions, used to act on behalf of one logged-in user.

Create a user

POST /v1/genesis/users

{
"email": "jordan@acme.com",
"roles": ["member"]
}

Response201 Created

{
"id": "usr_3f8a2c",
"email": "jordan@acme.com",
"roles": ["member"],
"created": "2026-07-20T09:14:22Z"
}

Start a session

POST /v1/genesis/sessions

{
"email": "jordan@acme.com",
"password": "user-entered-password"
}

Response200 OK

{
"session_id": "sess_6k2p9x",
"user_id": "usr_3f8a2c",
"expires_at": "2026-07-21T09:14:22Z",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}

If MFA is enabled on the account, this returns 403 mfa_required instead — resubmit to /v1/genesis/sessions/mfa with the same credentials plus mfa_code to complete login.

Configure SSO

POST /v1/genesis/sso/connections

{
"domain": "acme.com",
"protocol": "saml",
"metadata_url": "https://acme.okta.com/app/exkabc123/sso/saml/metadata"
}

protocol is "saml" or "oidc". Once created and active, password login is disabled for every user on that domain.

Errors

HTTP statuscodeMeaning
401invalid_credentialsEmail/password didn't match
403mfa_requiredCredentials were correct; MFA challenge must be completed to finish login
403sso_requiredThis email's domain has an active SSO connection; password login is disabled
429too_many_attemptsAccount temporarily locked after 5 failed attempts within 15 minutes

too_many_attempts lockouts clear automatically after 15 minutes — there is no manual-unlock endpoint by design, to avoid creating an account-takeover vector via support-initiated unlocks.

Rate limits

20 login attempts/minute per IP address, independent of the per-account lockout above — this limits credential-stuffing attempts across many accounts from one source.

Support

For questions about Genesis, contact the product team or visit the community forum.