SCIM 2.0 Provisioning
Cirrux supports SCIM 2.0 (System for Cross-domain Identity Management) for automated user provisioning and deprovisioning. Connect your identity provider — such as Okta, Azure AD, or OneLogin — to automatically manage users in your Cirrux workspace.
Getting started
Authentication
SCIM requests are authenticated using bearer tokens. Generate a token from the Cirrux admin panel under your workspace settings. The token is shown once at creation — store it securely in your identity provider.
Include the token in every request as an Authorization header:
Base URL
All SCIM endpoints are available under:
Make sure your identity provider is configured with this base URL. All request and response bodies use the application/scim+json content type.
Endpoints
API reference
| Method | Path | Description |
|---|---|---|
| GET | /Users | List and filter users |
| GET | /Users/:id | Get a single user |
| POST | /Users | Create (provision) a user |
| PUT | /Users/:id | Replace a user |
| PATCH | /Users/:id | Partial update (e.g. deactivate) |
| DELETE | /Users/:id | Delete a user |
| GET | /ServiceProviderConfig | SCIM service provider configuration |
| GET | /Schemas | Supported SCIM schemas |
| GET | /ResourceTypes | Supported resource types |
User schema
The following SCIM User attributes are mapped to Cirrux:
| SCIM attribute | Cirrux field | Notes |
|---|---|---|
id | Membership UUID | Read-only, assigned by Cirrux |
externalId | External ID | Your IDP's identifier for the user |
userName | Primary email address | Must be an email at a verified domain |
name.givenName | First name | |
name.familyName | Last name | |
emails[0].value | Primary email address | Same as userName |
active | Membership status | false deactivates the user and mailbox |
Provisioning lifecycle
Creating a user
When your identity provider sends a POST /Users request, Cirrux will:
- Create a new user account with the provided name
- Create a mailbox with an email address at your workspace’s default SCIM domain
- Add the user as a member of your workspace
- Store the external ID for future correlation
The default SCIM domain determines which domain is used for new mailbox addresses. Configure this in the admin panel under your workspace settings before provisioning users.
Deactivating and reactivating
When your identity provider deactivates a user (typically via PATCH /Users/:id with active: false), Cirrux will:
- Deactivate the user’s workspace membership
- Soft-delete their mailbox, which stops billing for that mailbox
- Revoke all active sessions
When a user is reactivated (active: true), a new mailbox is created with their email address. Previous mailbox data remains archived and is not automatically restored, ensuring no unintended access to prior messages.
Filtering
The GET /Users endpoint supports SCIM filter syntax for looking up users. Supported filters:
userName eq "user@example.com"— find by email addressexternalId eq "ext-123"— find by external IDemails.value eq "user@example.com"— find by email (alias for userName)
Pagination is supported via startIndex and count query parameters.
Identity provider setup
Okta
- In Okta, go to Applications → Create App Integration → SCIM 2.0
- Set the SCIM connector base URL to
https://api.cirrux.co/scim/v2 - Set the unique identifier field to
userName - Enable the provisioning actions you need: Create Users, Update User Attributes, Deactivate Users
- Under Authentication Mode, select HTTP Header and paste your SCIM bearer token
- Test the connection and save
Microsoft Entra ID (Azure AD)
- In the Azure portal, go to Enterprise Applications → create a new application
- Under Provisioning, set the mode to Automatic
- Set the Tenant URL to
https://api.cirrux.co/scim/v2 - Set the Secret Token to your SCIM bearer token
- Test the connection, then configure attribute mappings
- Map
userPrincipalNametouserName, andobjectIdtoexternalId - Enable provisioning and set the desired scope