Summary and recommendation
Chorus.ai does not expose a public REST API for user management. There are no documented endpoints for creating, updating, or deactivating users programmatically.
Since the ZoomInfo acquisition, any future API surface may be gated through the ZoomInfo developer portal rather than a standalone Chorus.ai API - but no such user management API is currently documented there either.
The only supported automated provisioning path is SAML 2.0 JIT (Just-in-Time) provisioning via Okta or Entra ID. SCIM is not available; no SCIM endpoint is publicly documented for Chorus.ai as of the policy date. Enterprise plan is required for SSO/JIT, and SSO must be configured as a prerequisite.
API quick reference
| Has user API | No |
| SCIM available | No |
| SCIM plan required | Enterprise |
Authentication
Auth method: Not documented
User object / data model
User object field mapping is not yet verified for this app.
Core endpoints
Endpoint coverage is not yet verified for this app.
Rate limits, pagination, and events
Rate limits: Not documented
Rate-limit headers: No
Retry-After header: No
Rate-limit notes: Not documented
Pagination method: none
Default page size: 0
Max page size: 0
Pagination pointer: Not documented
Webhooks available: No
Webhook notes: No publicly documented webhook system for user lifecycle events in Chorus.ai.
Alternative event strategy: User provisioning is handled via SSO/JIT through Okta or Azure AD SAML integrations configured in the Chorus.ai admin settings.
SCIM API status
- SCIM available: No
- SCIM version: Not documented
- Plan required: Enterprise
- Endpoint: Not documented
Limitations:
- No SCIM endpoint is publicly documented for Chorus.ai as of the policy date.
- User provisioning relies on SSO (SAML JIT) via Okta or Entra ID.
- Enterprise plan is required for SSO/JIT provisioning.
- SSO must be configured as a prerequisite for any automated provisioning.
Common scenarios
For teams using an MCP server with ~100 deep IT/identity integrations, Chorus.ai represents a gap: there is no API surface to hook into for automated user lifecycle events. The three realistic operational scenarios are all constrained.
JIT provisioning via Okta or Entra ID creates a Chorus.ai account on the user's first SSO login, but role assignment is not automated and must be completed manually in the admin UI afterward. Deprovisioning via IdP (removing the app assignment in Okta or disabling the user in Entra ID) blocks future logins but does not deactivate the Chorus.ai account - a manual step in the admin panel is still required to fully revoke access. Bulk user management has no API or documented CSV import path; all operations go through the admin UI.
Provision a new user via Okta SSO (JIT)
- Configure SAML 2.0 SSO in Chorus.ai admin settings using Okta as the IdP.
- Assign the Chorus.ai application to the user in Okta.
- User logs in via SSO for the first time; Chorus.ai creates the account automatically via JIT provisioning.
- Admin assigns the user a role (e.g., Rep, Manager) inside the Chorus.ai admin UI post-provisioning.
Watch out for: JIT provisioning only creates the account on first login; the user must actively log in. Role assignment is not automated and must be done manually in Chorus.ai.
Deprovision a user
- Remove or disable the user's assignment to the Chorus.ai app in Okta or Entra ID.
- This blocks future SSO logins but does not automatically deactivate the account in Chorus.ai.
- Manually deactivate or remove the user in the Chorus.ai admin panel to fully revoke access.
Watch out for: There is no automated deprovisioning; blocking SSO only prevents login but the Chorus.ai account may remain active until manually deactivated.
Bulk user management via ZoomInfo admin
- Log in to the ZoomInfo/Chorus.ai admin console.
- Navigate to User Management to view, invite, or deactivate users manually.
- No API or CSV bulk import is publicly documented for Chorus.ai user management.
Watch out for: All bulk operations must be performed manually through the admin UI; no programmatic bulk user management API is available.
Why building this yourself is a trap
The core automation trap in Chorus.ai is the deprovisioning gap: disabling a user in your IdP stops SSO logins but leaves the Chorus.ai account in an active state until an admin manually deactivates it.
This creates a window where a departed employee's account technically persists, which is a compliance and access-control risk for orgs with audit requirements.
JIT provisioning also only fires on first login, meaning a user assigned in Okta but who has not yet logged in has no Chorus.ai account to manage - role assignment cannot be pre-staged. There are no webhooks for user lifecycle events, no retry-after headers, and no pagination model to evaluate because there is no API.
Any workflow automation for Chorus.ai user management currently requires either direct UI interaction or IdP-side controls with the understanding that they are incomplete without a manual Chorus.ai step.
Automate Chorus.ai workflows without one-off scripts
Stitchflow builds and maintains end-to-end IT automation across your SaaS stack, including apps without APIs. Built for exactly how your company works, with human approvals where they matter.