For AI agents: the complete documentation index is at https://docs.routebase.dev/llms.txt. Every page is also available as Markdown by appending index.md to its URL or by sending Accept: text/markdown.
API Reference

14 endpoints

SCIM 2.0 user and group provisioning, as consumed by Okta, Microsoft Entra ID and other identity providers. Available on plans that include SSO.

Describe what this SCIM service supports

GET /scim/v2/{orgSlug}/ServiceProviderConfig

Returns the SCIM service provider configuration, which identity providers read during setup to learn which operations are available.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The service provider configuration.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

List the supported resource types

GET /scim/v2/{orgSlug}/ResourceTypes

Returns the SCIM resource types this service exposes, which are User and Group.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The resource types.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

List the supported schemas

GET /scim/v2/{orgSlug}/Schemas

Returns the SCIM schemas backing the User and Group resources.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The schemas.

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

List users

GET /scim/v2/{orgSlug}/Users

Returns the provisioned users of an organization in a SCIM ListResponse envelope. Identity providers use the filter parameter to look a user up by userName before deciding whether to create or update.

Parameters

Name In Type Required Description
filter query string no SCIM filter expression, for example userName eq "ada@example.com".
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — A SCIM ListResponse of users.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:ListResponse.
totalResults integer (int32) yes Total number of matching users, ignoring paging.
startIndex integer (int32) yes 1-based index of the first entry in this page.
itemsPerPage integer (int32) yes How many entries this page holds.
Resources ScimUserResource[] yes The users on this page. Capitalised because SCIM defines it that way.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Provision a user

POST /scim/v2/{orgSlug}/Users

Creates a user in the organization. A user provisioned this way joins with the default member role, and further role changes stay with Routebase rather than the identity provider.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/scim+json

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:User.
id string yes SCIM id of the user.
externalId string null no
userName string yes The login name, which is the email address.
name ScimName null no
emails ScimEmail[] yes Email addresses of the user. Exactly one carries primary.
active boolean yes Setting this to false deactivates the user without deleting the record.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

Responses

201 — The user was provisioned.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:User.
id string yes SCIM id of the user.
externalId string null no
userName string yes The login name, which is the email address.
name ScimName null no
emails ScimEmail[] yes Email addresses of the user. Exactly one carries primary.
active boolean yes Setting this to false deactivates the user without deleting the record.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

409 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Get a user

GET /scim/v2/{orgSlug}/Users/{id}

Returns one provisioned user.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The user.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:User.
id string yes SCIM id of the user.
externalId string null no
userName string yes The login name, which is the email address.
name ScimName null no
emails ScimEmail[] yes Email addresses of the user. Exactly one carries primary.
active boolean yes Setting this to false deactivates the user without deleting the record.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Replace a user

PUT /scim/v2/{orgSlug}/Users/{id}

Replaces the attributes of a user wholesale. Attributes you leave out are cleared, so send the complete resource rather than a partial one.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/scim+json

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:User.
id string yes SCIM id of the user.
externalId string null no
userName string yes The login name, which is the email address.
name ScimName null no
emails ScimEmail[] yes Email addresses of the user. Exactly one carries primary.
active boolean yes Setting this to false deactivates the user without deleting the record.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

Responses

200 — The updated user.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:User.
id string yes SCIM id of the user.
externalId string null no
userName string yes The login name, which is the email address.
name ScimName null no
emails ScimEmail[] yes Email addresses of the user. Exactly one carries primary.
active boolean yes Setting this to false deactivates the user without deleting the record.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Patch a user

PATCH /scim/v2/{orgSlug}/Users/{id}

Applies a SCIM PatchOp to a user. This is the call an identity provider makes to deactivate someone, by setting active to false, which is a soft removal that keeps the audit trail intact.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/scim+json

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:PatchOp.
Operations ScimPatchOperation[] yes The operations to apply, in order. Capitalised because SCIM defines it that way.

Responses

200 — The patched user.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:User.
id string yes SCIM id of the user.
externalId string null no
userName string yes The login name, which is the email address.
name ScimName null no
emails ScimEmail[] yes Email addresses of the user. Exactly one carries primary.
active boolean yes Setting this to false deactivates the user without deleting the record.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Deprovision a user

DELETE /scim/v2/{orgSlug}/Users/{id}

Removes a user from the organization.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

204 — The user was removed.

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

List groups

GET /scim/v2/{orgSlug}/Groups

Returns the provisioned groups of an organization in a SCIM ListResponse envelope. Groups map onto Routebase teams, and a group mapping decides which role its members receive.

Parameters

Name In Type Required Description
filter query string no SCIM filter expression, for example displayName eq "Engineering".
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — A SCIM ListResponse of groups.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:ListResponse.
totalResults integer (int32) yes Total number of matching groups, ignoring paging.
startIndex integer (int32) yes 1-based index of the first entry in this page.
itemsPerPage integer (int32) yes How many entries this page holds.
Resources ScimGroupResource[] yes The groups on this page. Capitalised because SCIM defines it that way.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Provision a group

POST /scim/v2/{orgSlug}/Groups

Creates a group and adds the members you send with it.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/scim+json

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:Group.
id string yes SCIM id of the group, assigned by Routebase.
externalId string null no
displayName string yes Group name, which is what a group mapping matches on.
members ScimGroupMemberRef[] yes Users in the group. Add and remove them with a PatchOp rather than by replacing the list.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

Responses

201 — The group was provisioned.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:Group.
id string yes SCIM id of the group, assigned by Routebase.
externalId string null no
displayName string yes Group name, which is what a group mapping matches on.
members ScimGroupMemberRef[] yes Users in the group. Add and remove them with a PatchOp rather than by replacing the list.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

409 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Get a group

GET /scim/v2/{orgSlug}/Groups/{id}

Returns one provisioned group with its members.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

200 — The group.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:Group.
id string yes SCIM id of the group, assigned by Routebase.
externalId string null no
displayName string yes Group name, which is what a group mapping matches on.
members ScimGroupMemberRef[] yes Users in the group. Add and remove them with a PatchOp rather than by replacing the list.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Patch a group

PATCH /scim/v2/{orgSlug}/Groups/{id}

Applies a SCIM PatchOp to a group, which is how an identity provider adds and removes members as people join and leave a team.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Request body

Required.

Content type: application/scim+json

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:PatchOp.
Operations ScimPatchOperation[] yes The operations to apply, in order. Capitalised because SCIM defines it that way.

Responses

200 — The patched group.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:schemas:core:2.0:Group.
id string yes SCIM id of the group, assigned by Routebase.
externalId string null no
displayName string yes Group name, which is what a group mapping matches on.
members ScimGroupMemberRef[] yes Users in the group. Add and remove them with a PatchOp rather than by replacing the list.
meta ScimMeta yes Resource metadata written by Routebase, not by the identity provider.

400 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.

Deprovision a group

DELETE /scim/v2/{orgSlug}/Groups/{id}

Removes a group. Its members keep their organization membership.

Parameters

Name In Type Required Description
X-RB-Region header string no Region of your organization. US organizations must send us; EU organizations leave the header out. Without it a US call is routed to the EU region and answered with 401.

Responses

204 — The group was removed.

404 — A SCIM error envelope.

Property Type Required Description
schemas string[] yes Always contains urn:ietf:params:scim:api:messages:2.0:Error.
detail string yes What went wrong, written for a person reading a provisioning log.
status string yes The HTTP status code, as a string.
scimType string null no

429 — The rate limit was exceeded. The Retry-After header gives the seconds to wait. SCIM is counted per source IP.

Property Type Required Description
type string no A URI identifying the problem type.
title string no A short summary of the problem type.
status integer (int32) yes The HTTP status code.
detail string no A human readable explanation.
instance string no The path that produced the error.
code string no The stable machine readable error code, for example CONCURRENCY_CONFLICT, PROJECT_LOCKED, API_KEY_SCOPE_DENIED or NOT_A_MEMBER.