REST & Protocol API Reference
The complete architectural reference for every endpoint across the SSO.ID v2 Authorization & Federation Server (https://{your-tenant}.sso.id/auth) and the Core Management & Provisioning API (https://{your-tenant}.sso.id/api).
Two Specialized Engines, One Unified Identity Platform
To guarantee sub-50ms login redirects while scaling complex enterprise management operations, SSO.ID v2 separates runtime protocol execution from management plane APIs:
1. Protocol Engine (Auth.SSO.Id)
Base URL: https://{your-tenant}.sso.id/auth (or your verified Custom Domain e.g. https://login.acme.com)
Handles OIDC Discovery, JWKS public keys, OAuth 2.0 authorization & token exchange, SAML 2.0 IdP/SP bindings, and FIDO2 WebAuthn Passkey ceremonies.
2. Management & SCIM Engine (Core.SSO.Id)
Base URL: https://{your-tenant}.sso.id/api
Handles Applications, Connections, Users, Roles, Groups, Organizations, Organization Units, Multi-Factor, Tenant Governance, Custom Domains, SCIM 2.0, Audit Logs, and Compliance.
Standard Request Headers for https://{your-tenant}.sso.id/api
| Header Name | Required | Example Value | Purpose |
|---|---|---|---|
Authorization |
Yes (Protected APIs) | Bearer eyJhbGciOiJSUzI1Ni... |
RS256-signed JWT Access Token or SCIM 2.0 Bearer Token (for /api/scim/v2/*). |
X-Tenant-Id |
Recommended | 8f9d2a1c-4b3e-4d5a-9c1b-7e2f8a6d4c10 |
Scopes Management API operations to the active Tenant Workspace when an admin manages multiple tenants. |
X-Region |
Optional | US or EU |
Routes requests to the US (us-east) or EU (eu-central Frankfurt GDPR) data residency cluster. |
Content-Type |
Yes (POST/PUT/PATCH) | application/json |
Use application/scim+json for SCIM 2.0 endpoints and application/x-www-form-urlencoded for OAuth2 token requests. |
1. OpenID Connect, OAuth 2.0 & Passkey Endpoints (Auth.SSO.Id)
Runtime authentication endpoints hosted on https://{your-tenant}.sso.id/auth (with direct token issuance also available on https://{your-tenant}.sso.id/api/oauth2/token).
| Method | Endpoint Path | Description & Key Parameters |
|---|---|---|
| GET | /auth/.well-known/openid-configuration |
OIDC Discovery metadata document. Optional query: ?appId={applicationId}. (Also aliased at /api/oidc/openid-configuration). |
| GET | /auth/.well-known/jwks.json |
JSON Web Key Set (JWKS) containing active RSA/ECDSA public keys (kid, n, e, alg, use) for verifying JWT signatures. Optional query: ?appId={applicationId}. (Also aliased at /api/oidc/jwks). |
| GET | /auth/oauth/authorize |
Initiates interactive OAuth 2.0 / OIDC login. Supports client_id, response_type=code|token|id_token, redirect_uri, scope, state, code_challenge, code_challenge_method=S256, organizationId, organizationUnitId, connectionId, tenant_id, login_hint. |
| POST | /auth/oauth/token |
Exchanges authorization code, refresh token, user credentials, or client credentials for JWT tokens. Supports grant_type=authorization_code | refresh_token | password | client_credentials. |
| POST | https://{your-tenant}.sso.id/api/oauth2/token |
Direct Core API OAuth 2.0 token issuance endpoint supporting JSON and form-urlencoded payloads for confidential backends and M2M services. |
| GET | /auth/oauth/userinfo |
Returns standard OIDC claims (sub, name, email, email_verified, picture, roles) for the authenticated Bearer access token. |
| GET / POST | /auth/oauth/logout |
RP-Initiated Single Logout. Clears SSO session and redirects to post_logout_redirect_uri when validated with id_token_hint. |
| POST | /auth/oauth/passkey/register-begin |
Generates FIDO2 WebAuthn PublicKeyCredentialCreationOptions challenge for enrolling a new biometric or hardware passkey. |
| POST | /auth/oauth/passkey/register-complete |
Verifies attestation response from navigator.credentials.create() and persists the public key credential on the user profile. |
| POST | /auth/oauth/passkey/auth-begin |
Generates FIDO2 WebAuthn PublicKeyCredentialRequestOptions challenge for passwordless passkey sign-in. |
| POST | /auth/oauth/passkey/auth-complete |
Verifies cryptographic signature from navigator.credentials.get() and issues an authenticated SSO session / authorization grant. |
2. SAML 2.0 Identity Provider & Service Provider Endpoints
| Method | Endpoint Path | Role | Description |
|---|---|---|---|
| GET | https://{your-tenant}.sso.id/auth/saml/metadata?appId={id} |
IdP | Returns signed SAML 2.0 Identity Provider Metadata XML (EntityDescriptor, KeyDescriptor X.509 cert, SingleSignOnService, SingleLogoutService) for a specific Application. |
| GET | https://{your-tenant}.sso.id/auth/saml/GetIDPMetadataBase64?appId={id} |
IdP | Returns the Application's SAML 2.0 IdP Metadata encoded as Base64 for automated SDK/CLI provisioning. |
| GET / POST | https://{your-tenant}.sso.id/auth/Saml/Login |
IdP | SAML 2.0 Single Sign-On endpoint. Accepts SAMLRequest and RelayState via HTTP-Redirect (Deflate + Base64 query string) or HTTP-POST binding. |
| GET / POST | https://{your-tenant}.sso.id/auth/saml/logout |
IdP / SP | SAML 2.0 Single Logout (SLO) endpoint (also routed at /auth/saml/slo). |
| POST / GET | https://{your-tenant}.sso.id/auth/saml/acs |
SP | Assertion Consumer Service (ACS) endpoint where external Enterprise SAML IdPs (Okta, Azure AD, Ping) POST signed SAMLResponse assertions. |
| GET | https://{your-tenant}.sso.id/auth/Saml/SPMetadata |
SP | Downloads SSO.ID's SAML 2.0 Service Provider (SP) Metadata XML for uploading into an external Enterprise IdP. |
3. SCIM 2.0 Provisioning Endpoints (Core.SSO.Id)
All SCIM 2.0 endpoints are available at both the tenant root https://{your-tenant}.sso.id/api/scim/v2/* and connection-scoped https://{your-tenant}.sso.id/api/scim/v2/connections/{connectionId}/*. Authenticate with Authorization: Bearer {scim_token}.
| Method | Endpoint Path | SCIM 2.0 Operation (RFC 7643 / RFC 7644) |
|---|---|---|
| GET | /api/scim/v2/ServiceProviderConfig |
Returns SCIM 2.0 Service Provider Configuration capabilities (PATCH, filter, sort, pagination). |
| GET | /api/scim/v2/Schemas |
Returns supported SCIM 2.0 schemas (User and Group). |
| GET | /api/scim/v2/ResourceTypes |
Returns SCIM resource type descriptors for Users and Groups. |
| GET | /api/scim/v2/Users |
Lists or filters provisioned users (e.g., ?filter=userName eq "[email protected]"&startIndex=1&count=100). |
| GET | /api/scim/v2/Users/{id} |
Retrieves a single SCIM 2.0 User resource by ID. |
| POST | /api/scim/v2/Users |
Provisions a new user with attribute mappings and optional JIT group/role assignment. |
| PUT | /api/scim/v2/Users/{id} |
Replaces all attributes of an existing SCIM User resource. |
| PATCH | /api/scim/v2/Users/{id} |
Applies SCIM PatchOp operations (e.g., {"op":"replace","path":"active","value":false} to suspend an offboarded employee). |
| DELETE | /api/scim/v2/Users/{id} |
Deprovisions a user according to the connection's deprovision policy (suspend, revoke sessions, or delete). |
| GET | /api/scim/v2/Groups |
Lists SCIM 2.0 Groups (/api/scim/v2/Groups/{id} retrieves a single group). |
| POST | /api/scim/v2/Groups |
Creates a SCIM 2.0 Group and syncs member user IDs. (Also supports PUT /Groups/{id} and DELETE /Groups/{id}). |
4. Applications, App Pages, APIs & Signing Keys (Core.SSO.Id)
| Method | Endpoint Path | Description |
|---|---|---|
| GET | /api/applications |
Lists all registered applications in the current tenant with pagination and search filters. |
| POST | /api/applications |
Creates a new Application (SPA, Web, Native, M2M, or SAML 2.0) and generates clientId, clientSecret, and signing key pair. |
| GET | /api/applications/{id} |
Retrieves full configuration for an Application, including protocol settings, Redirect URIs, token lifetimes, override flags, and custom claims. |
| PUT | /api/applications/{id} |
Updates an Application's settings, branding overrides, security policies, token lifetimes, or SAML/OIDC configurations. |
| DELETE | /api/applications/{id} |
Deletes an Application and revokes its active client credentials. |
| GET / POST | /api/applications/{id}/menus |
Retrieves or creates hierarchical App Pages / Navigation Menus for dynamic frontend rendering and CRUD permission assignment. (Also supports PUT /api/applications/{id}/menus/{menuId} and DELETE). |
| GET / POST | /api/applications/{id}/apis |
Lists or registers backend API endpoints belonging to the Application so Roles can be granted granular API-level access. (Also supports PUT and DELETE /api/applications/{id}/apis/{apiId}). |
| GET / POST | /api/applications/{id}/connections |
Lists or enables identity connections (Google, GitHub, Okta SAML, Azure AD OIDC) for the Application. (DELETE /api/applications/{id}/connections/{connectionId} disables a connection). |
| GET / PUT | /api/applications/{id}/factors |
Gets or updates enabled Multi-Factor Authentication factors (TOTP, Email OTP, SMS, Passkeys) for the Application. |
| GET / POST | /api/applications/{id}/organizations |
Lists or links B2B Customer Organizations authorized to access this Application. |
| GET / POST | /api/applications/{id}/users |
Lists or assigns specific Users directly to the Application (DELETE /api/applications/{id}/users/{userId} removes access). |
| GET | /api/applications/metadata?id={id} |
Downloads SAML 2.0 / OIDC Federation Metadata XML for the specified Application. |
| GET | /api/applications/certificate?id={id} |
Downloads the X.509 signing certificate (.cer / .pem) for the Application. |
| GET | /api/signing-keys |
Lists all cryptographic signing keys (active, previous, and revoked) across the tenant. |
| POST | /api/signing-keys/rotate |
Performs zero-downtime cryptographic key rotation, promoting a new primary key while retaining the previous key in JWKS for token verification grace periods. |
| POST | /api/signing-keys/import |
Imports a custom PEM/PFX X.509 signing certificate and private key. |
| POST | /api/signing-keys/revoke/{id} |
Immediately revokes a compromised signing key and removes it from JWKS. |
| GET | /api/signing-keys/download-cert/{id} |
Downloads the public X.509 certificate for a specific signing key ID. |
5. Identity Connections & Live Testing (Core.SSO.Id)
| Method | Endpoint Path | Description |
|---|---|---|
| GET | /api/connections |
Lists all configured OAuth 2.0, OpenID Connect, and SAML 2.0 connections in the tenant. |
| GET | /api/connections/defaults |
Returns pre-configured templates for popular providers (Google, GitHub, Microsoft, Apple, LinkedIn, Facebook, Okta, Auth0, Keycloak). |
| POST | /api/connections |
Creates a new Identity Connection including protocol endpoints, attribute mappings, group/role mappings, and SCIM provisioning rules. |
| PUT | /api/connections/{id} |
Updates an existing Identity Connection. (DELETE /api/connections/{id} removes it). |
| POST | /api/connections/test |
Pre-Create Live Connection Test: Initiates a sandboxed handshake against an external OAuth2/OIDC/SAML provider before saving the connection to verify credentials and inspect live claims. |
| GET | /api/connections/{id}/health |
Checks real-time reachability, discovery document validity, and certificate expiration of a saved connection. |
| GET | /api/connections/sp-metadata |
Returns SSO.ID's SAML 2.0 Service Provider (SP) Metadata XML for configuring external enterprise IdPs. |
| GET | /api/connections/sp-certificate |
Downloads SSO.ID's SAML SP X.509 signing/encryption certificate. |
6. Users, Roles, Menus & Groups (Core.SSO.Id)
| Method | Endpoint Path | Description |
|---|---|---|
| GET / POST | /api/users |
Lists directory users (with pagination/filtering) or creates a new user account directly. |
| POST | /api/users/invite |
Sends an email invitation link to onboard a user (POST /api/users/{userId}/resend-invite resends the token). |
| GET / PUT | /api/users/self |
Retrieves or updates the currently authenticated user's own profile (POST /api/users/self/change-password updates password). |
| GET | /api/users/current/applications |
Returns all Applications the logged-in user is authorized to launch in the End-User App Launcher Portal. |
| GET | /api/users/{userId}/sessions |
Lists all active device/browser sessions for a user (DELETE /api/users/{userId}/sessions/{sessionId} revokes one session; DELETE /api/users/{userId}/sessions/revoke-all revokes all sessions everywhere). |
| GET | /api/users/{userId}/tenant-ownership |
Inspects which Tenants a user owns or belongs to before account deletion or transfer. |
| GET / POST | /api/roles |
Lists or creates RBAC Roles in the current tenant (PUT /api/roles/{id} and DELETE /api/roles/{id} modify or remove roles). |
| GET / PUT | /api/roles/{roleId}/applications/{appId}/menu-access |
Retrieves or updates granular CRUD permissions (view, add, update, delete) across an Application's hierarchical App Pages tree for a Role. |
| GET / PUT | /api/roles/{roleId}/applications/{appId}/api-access |
Retrieves or updates which backend Application API endpoints (GET, POST, PUT, DELETE) a Role is permitted to invoke. |
| GET / POST | /api/roles/{roleId}/applications/{appId}/users |
Lists or assigns users to a Role within the context of a specific Application. |
| GET / POST | /api/groups |
Lists or creates User Groups (PUT /api/groups/{id}, DELETE /api/groups/{id}). |
| POST / DELETE | /api/groups/{id}/applications/{applicationId} |
Grants or revokes an entire Group's access to an Application. |
| POST / DELETE | /api/groups/{id}/users |
Adds or removes users (DELETE /api/groups/{id}/users/{userId}) from a Group. |
7. B2B Organizations & Organization Units (Core.SSO.Id)
| Method | Endpoint Path | Description |
|---|---|---|
| GET / POST | /api/organizations |
Lists or creates B2B Customer Organizations (Tier 3 of the 4-Tier Policy Cascade). |
| GET / PUT / DELETE | /api/organizations/{id} |
Gets, updates, or deletes an Organization, including its override flags (overrideGeneral, overrideBranding, overrideSecurity, overrideTokens, overrideMfa). |
| GET / POST / DELETE | /api/organizations/{id}/connections |
Manages organization-specific SSO Connections (including assignToOrganizationOnly connections dedicated to a single enterprise customer). |
| GET / PUT | /api/organizations/{id}/factors |
Configures MFA factors enforced specifically for members of this Organization. |
| GET / POST | /api/organizations/{organizationId}/users |
Lists or assigns users (and their Application Roles) within an Organization. |
| GET / POST | /api/organization-units |
Lists or creates hierarchical Organization Units / Sub-Departments (Tier 4 of the 4-Tier Cascade). Also supports PUT /api/organization-units/{id}, DELETE /api/organization-units/{id}, and nested /connections, /groups, /factors, and /users sub-resources. |
8. Tenant Settings, 1-Click Custom Domains, Members & Stripe Billing
| Method | Endpoint Path | Description |
|---|---|---|
| GET / PUT | /api/settings/tenant |
Retrieves or saves the comprehensive Tenant Settings payload (General, Branding, Password Policy, Session Policy, Token Settings, Threat Detection, IP/Country Geofencing, Compliance, and Governance). |
| POST | /api/settings/tenant/detect-dns-provider |
Inspects NS/SOA records for a custom domain (e.g., login.yourcompany.com) to automatically detect Cloudflare, GoDaddy, Hostinger, or Namecheap. |
| POST | /api/settings/tenant/auto-connect/{provider} |
1-Click Automated DNS CNAME & SSL provisioning for cloudflare, godaddy, hostinger, or namecheap. |
| POST | /api/settings/tenant/verify-domain |
Verifies DNS CNAME propagation and provisions the managed TLS certificate for the tenant's custom domain. |
| GET / PUT | /api/settings/tenant/email-templates |
Retrieves or customizes transactional HTML email templates (Welcome, Invite, Password Reset, Email Verification, MFA OTP, Security Alert). |
| POST | /api/settings/tenant/smtp |
Configures or tests custom SMTP relay credentials (also managed via /api/smtp and /api/smtp/test). |
| POST | /api/settings/tenant/governance/support-token |
Generates a time-bound, auditable Support Access Delegation Token for temporary vendor troubleshooting. |
| POST | /api/tenant-management |
Creates a new isolated Tenant workspace (with dedicated database schema migration via POST /api/tenant-management/{tenantSlug}/migrate). |
| GET / POST | /api/tenants/{tenantId}/members |
Lists or invites administrative Tenant Members (POST /api/tenants/{tenantId}/members/invite). |
| GET / POST | /api/tenants/{tenantId}/roles |
Lists or creates administrative Tenant Roles with menu-level access control (PUT /api/tenants/{tenantId}/roles/{roleId}/menus). |
| GET | /api/stripe/usage-summary |
Returns current tenant resource consumption vs plan quotas (MAUs, Applications, Organizations, Connections). |
| POST | /api/stripe/create-checkout-session |
Creates a Stripe Checkout session for upgrading to Growth, Business, or Enterprise service plans. |
9. Tamper-Evident Audit Logs, SIEM, Compliance & Analytics
| Method | Endpoint Path | Description |
|---|---|---|
| GET | /api/audit-logs |
Queries immutable administrative and authentication audit logs with filtering by actor, entity, action, status, IP, and date range. |
| GET | /api/audit-logs/{id} |
Retrieves full audit record including before/after JSON state diff and SHA-256 hash chain signature. |
| GET | /api/audit-logs/verify-integrity |
Cryptographically verifies the SHA-256 tamper-evident hash chain across stored audit log entries to prove zero log manipulation for SOC 2 / ISO 27001 auditors. |
| GET | /api/audit-logs/export-siem |
Exports audit events formatted for SIEM ingestion (generic_json, splunk_hec, datadog, aws_cloudwatch). |
| GET | /api/compliance/readiness-report |
Evaluates tenant security settings against GDPR, HIPAA, SOC 2, and ISO 27001 controls and returns a live readiness score. |
| POST | /api/compliance/apply-preset |
One-click application of regulatory security baselines (gdpr, hipaa, soc2, iso27001). |
| GET | /api/compliance/export-my-data |
GDPR Article 15 / 20 Right to Access & Data Portability JSON export for the authenticated user (DELETE /api/compliance/delete-my-account executes GDPR Article 17 Right to Erasure). |
| GET | /api/analytics/dashboard-stats |
Executive telemetry summary (also see /api/analytics/login-trends, /mfa-statistics, /user-growth, /authentication-stats, /compliance-metrics, /top-applications). |
You are an expert SDK architect. Build a strongly-typed **SSO.ID v2 Management API Client (`SsoIdManagementClient`)** targeting `https://{your-tenant}.sso.id/api`.
### Requirements
1. **Authentication & Headers**:
- Accept `{ baseUrl: 'https://{your-tenant}.sso.id/api', tenantId: string, region?: 'US' | 'EU', accessTokenProvider: () => Promise }`.
- Automatically inject `Authorization: Bearer `, `X-Tenant-Id: `, and `X-Region: ` on every request.
2. **Resource Modules to Generate**:
- `applications`: `list()`, `get(id)`, `create(payload)`, `update(id, payload)`, `delete(id)`, `getMenus(id)`, `getApis(id)`, `getConnections(id)`, `getFactors(id)`
- `connections`: `list()`, `getDefaults()`, `create(payload)`, `testLiveConnection(payload)`, `checkHealth(id)`
- `users`: `list(params)`, `invite(payload)`, `getSessions(userId)`, `revokeAllSessions(userId)`
- `roles`: `list()`, `create(payload)`, `setMenuAccess(roleId, appId, permissions)`, `setApiAccess(roleId, appId, apiIds)`
- `organizations`: `list()`, `create(payload)`, `update(id, payload)`, `assignConnection(orgId, connectionId)`
- `scim`: `listUsers(filter)`, `provisionUser(scimUser)`, `deactivateUser(userId)`
- `auditLogs`: `query(filters)`, `verifyIntegrity()`, `exportSiem(format)`
3. Include automatic exponential backoff on `429 Too Many Requests` and typed error classes.