Skip to content

SCIM 2.0

SCIM 2.0 service provider for user and group provisioning from your identity provider.

GET /scim/v2/ServiceProviderConfig

Authentication: None: the request is authenticated by the signature described above.

Status Description
200 Capabilities of the SCIM service.

Example 200

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
],
"patch": {
"supported": true
},
"bulk": {
"supported": false,
"maxOperations": 0,
"maxPayloadSize": 0
},
"filter": {
"supported": true,
"maxResults": 200
},
"changePassword": {
"supported": false
},
"sort": {
"supported": true
},
"etag": {
"supported": false
},
"authenticationSchemes": [
{
"type": "oauthbearertoken",
"name": "OAuth Bearer Token",
"primary": true
}
]
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ServiceProviderConfig"

GET /scim/v2/ResourceTypes

Authentication: None: the request is authenticated by the signature described above.

Status Description
200 Supported resource types (User, Group).

Example 200

{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 2,
"Resources": [
{
"id": "User",
"name": "User",
"endpoint": "/Users",
"schema": "urn:ietf:params:scim:schemas:core:2.0:User"
},
{
"id": "Group",
"name": "Group",
"endpoint": "/Groups",
"schema": "urn:ietf:params:scim:schemas:core:2.0:Group"
}
]
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/ResourceTypes"

GET /scim/v2/Schemas

Authentication: None: the request is authenticated by the signature described above.

Status Description
200 Supported schemas.

Example 200

{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 2,
"Resources": [
{
"id": "urn:ietf:params:scim:schemas:core:2.0:User",
"name": "User",
"description": "User Account"
},
{
"id": "urn:ietf:params:scim:schemas:core:2.0:Group",
"name": "Group",
"description": "Group"
}
]
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Schemas"

GET /scim/v2/Users

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
filter query string no SCIM filter, for example userName eq "jane.doe@example.com". and is supported.
startIndex query integer no
count query integer no
Status Description
200 Users of the token’s tenant.
401 SCIM token missing, invalid, revoked or expired.

Example 200

{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "jane.doe@example.com",
"userName": "jane.doe@example.com",
"name": {
"givenName": "Jane",
"familyName": "Doe",
"formatted": "Jane Doe"
},
"displayName": "Jane Doe",
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true,
"meta": {
"resourceType": "User",
"location": "/scim/v2/Users/jane.doe@example.com"
}
}
]
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN"

POST /scim/v2/Users

Authentication: SCIM token: Authorization: Bearer <token>

application/scim+json

Name Type Required Description
schemas array<string> yes
id string no
externalId string \ null no
userName string yes
name object no
name.givenName string no
name.familyName string no
name.formatted string no
displayName string no
emails array<object> no
emails[].value string (email) no
emails[].type string no
emails[].primary boolean no
active boolean no
userType string no
title string \ null no
locale string \ null no
timezone string \ null no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User object no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber string \ null no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department string \ null no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager object \ null no
meta object no
meta.resourceType string no
meta.created string \ null (date-time) no
meta.lastModified string \ null (date-time) no
meta.location string no
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "jane.doe@example.com",
"externalId": "00u1a2b3c4D5e6F7g8h9",
"name": {
"givenName": "Jane",
"familyName": "Doe"
},
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true
}
Status Description
201 User created.
400 Invalid SCIM request.
401 SCIM token missing, invalid, revoked or expired.
409 A user with this userName already exists.

Example 201

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "jane.doe@example.com",
"externalId": "00u1a2b3c4D5e6F7g8h9",
"userName": "jane.doe@example.com",
"name": {
"givenName": "Jane",
"familyName": "Doe",
"formatted": "Jane Doe"
},
"displayName": "Jane Doe",
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true,
"userType": "User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "E-10442",
"department": "Finance",
"manager": null
},
"meta": {
"resourceType": "User",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Users/jane.doe@example.com"
}
}
Finestra del terminale
curl -X POST "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN" \
-H "Content-Type: application/scim+json" \
--data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"userName":"jane.doe@example.com","externalId":"00u1a2b3c4D5e6F7g8h9","name":{"givenName":"Jane","familyName":"Doe"},"emails":[{"value":"jane.doe@example.com","type":"work","primary":true}],"active":true}'

GET /scim/v2/Users/{id}

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes
Status Description
200 User.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.

Example 200

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "jane.doe@example.com",
"externalId": "00u1a2b3c4D5e6F7g8h9",
"userName": "jane.doe@example.com",
"name": {
"givenName": "Jane",
"familyName": "Doe",
"formatted": "Jane Doe"
},
"displayName": "Jane Doe",
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true,
"userType": "User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "E-10442",
"department": "Finance",
"manager": null
},
"meta": {
"resourceType": "User",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Users/jane.doe@example.com"
}
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN"

PUT /scim/v2/Users/{id}

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes

application/scim+json

Name Type Required Description
schemas array<string> yes
id string no
externalId string \ null no
userName string yes
name object no
name.givenName string no
name.familyName string no
name.formatted string no
displayName string no
emails array<object> no
emails[].value string (email) no
emails[].type string no
emails[].primary boolean no
active boolean no
userType string no
title string \ null no
locale string \ null no
timezone string \ null no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User object no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.employeeNumber string \ null no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.department string \ null no
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager object \ null no
meta object no
meta.resourceType string no
meta.created string \ null (date-time) no
meta.lastModified string \ null (date-time) no
meta.location string no
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "jane.doe@example.com",
"externalId": "00u1a2b3c4D5e6F7g8h9",
"userName": "jane.doe@example.com",
"name": {
"givenName": "Jane",
"familyName": "Doe",
"formatted": "Jane Doe"
},
"displayName": "Jane Doe",
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true,
"userType": "User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "E-10442",
"department": "Finance",
"manager": null
},
"meta": {
"resourceType": "User",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Users/jane.doe@example.com"
}
}
Status Description
200 User replaced.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.

Example 200

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "jane.doe@example.com",
"externalId": "00u1a2b3c4D5e6F7g8h9",
"userName": "jane.doe@example.com",
"name": {
"givenName": "Jane",
"familyName": "Doe",
"formatted": "Jane Doe"
},
"displayName": "Jane Doe",
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true,
"userType": "User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "E-10442",
"department": "Finance",
"manager": null
},
"meta": {
"resourceType": "User",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Users/jane.doe@example.com"
}
}
Finestra del terminale
curl -X PUT "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN" \
-H "Content-Type: application/scim+json" \
--data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"id":"jane.doe@example.com","externalId":"00u1a2b3c4D5e6F7g8h9","userName":"jane.doe@example.com","name":{"givenName":"Jane","familyName":"Doe","formatted":"Jane Doe"},"displayName":"Jane Doe","emails":[{"value":"jane.doe@example.com","type":"work","primary":true}],"active":true,"userType":"User","urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{"employeeNumber":"E-10442","department":"Finance","manager":null},"meta":{"resourceType":"User","created":"2026-11-01T08:00:00.000Z","lastModified":"2026-11-01T08:00:00.000Z","location":"/scim/v2/Users/jane.doe@example.com"}}'

PATCH /scim/v2/Users/{id}

Supports add, replace and remove operations, for example deactivating with {"op":"replace","path":"active","value":false}.

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes

application/scim+json

Name Type Required Description
schemas array<string> no
Operations array<object> yes
Operations[].op string (add, replace, remove, Add, Replace, Remove) yes
Operations[].path string no
Operations[].value no
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "active",
"value": false
}
]
}
Status Description
200 User updated.
400 Invalid SCIM request.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.

Example 200

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": "jane.doe@example.com",
"externalId": "00u1a2b3c4D5e6F7g8h9",
"userName": "jane.doe@example.com",
"name": {
"givenName": "Jane",
"familyName": "Doe",
"formatted": "Jane Doe"
},
"displayName": "Jane Doe",
"emails": [
{
"value": "jane.doe@example.com",
"type": "work",
"primary": true
}
],
"active": true,
"userType": "User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "E-10442",
"department": "Finance",
"manager": null
},
"meta": {
"resourceType": "User",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Users/jane.doe@example.com"
}
}
Finestra del terminale
curl -X PATCH "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN" \
-H "Content-Type: application/scim+json" \
--data '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"replace","path":"active","value":false}]}'

DELETE /scim/v2/Users/{id}

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes
Status Description
204 User deprovisioned.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.
Finestra del terminale
curl -X DELETE "https://exocortex-api.ai-exo-cortex.com/scim/v2/Users/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN"

GET /scim/v2/Groups

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
filter query string no SCIM filter, for example userName eq "jane.doe@example.com". and is supported.
startIndex query integer no
count query integer no
Status Description
200 Groups of the token’s tenant.
401 SCIM token missing, invalid, revoked or expired.

Example 200

{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "grp_service_desk_l1",
"displayName": "Service Desk L1",
"members": [
{
"value": "jane.doe@example.com",
"type": "User",
"display": "jane.doe@example.com"
}
],
"meta": {
"resourceType": "Group",
"location": "/scim/v2/Groups/grp_service_desk_l1"
}
}
]
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN"

POST /scim/v2/Groups

Authentication: SCIM token: Authorization: Bearer <token>

application/scim+json

Name Type Required Description
schemas array<string> yes
id string no
displayName string yes
externalId string \ null no
members array<object> no
members[].value string yes
members[].type string no
members[].display string no
meta object no
meta.resourceType string no
meta.created string \ null (date-time) no
meta.lastModified string \ null (date-time) no
meta.location string no
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"displayName": "Service Desk L1",
"members": [
{
"value": "jane.doe@example.com"
}
]
}
Status Description
201 Group created.
400 Invalid SCIM request.
401 SCIM token missing, invalid, revoked or expired.

Example 201

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "grp_service_desk_l1",
"displayName": "Service Desk L1",
"externalId": null,
"members": [
{
"value": "jane.doe@example.com",
"type": "User",
"display": "jane.doe@example.com"
}
],
"meta": {
"resourceType": "Group",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Groups/grp_service_desk_l1"
}
}
Finestra del terminale
curl -X POST "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN" \
-H "Content-Type: application/scim+json" \
--data '{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"displayName":"Service Desk L1","members":[{"value":"jane.doe@example.com"}]}'

GET /scim/v2/Groups/{id}

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes
Status Description
200 Group.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.

Example 200

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "grp_service_desk_l1",
"displayName": "Service Desk L1",
"externalId": null,
"members": [
{
"value": "jane.doe@example.com",
"type": "User",
"display": "jane.doe@example.com"
}
],
"meta": {
"resourceType": "Group",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Groups/grp_service_desk_l1"
}
}
Finestra del terminale
curl -X GET "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN"

PATCH /scim/v2/Groups/{id}

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes

application/scim+json

Name Type Required Description
schemas array<string> no
Operations array<object> yes
Operations[].op string (add, replace, remove, Add, Replace, Remove) yes
Operations[].path string no
Operations[].value no
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "add",
"path": "members",
"value": [
{
"value": "john.smith@example.com"
}
]
}
]
}
Status Description
200 Group updated.
400 Invalid SCIM request.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.

Example 200

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"id": "grp_service_desk_l1",
"displayName": "Service Desk L1",
"externalId": null,
"members": [
{
"value": "jane.doe@example.com",
"type": "User",
"display": "jane.doe@example.com"
}
],
"meta": {
"resourceType": "Group",
"created": "2026-11-01T08:00:00.000Z",
"lastModified": "2026-11-01T08:00:00.000Z",
"location": "/scim/v2/Groups/grp_service_desk_l1"
}
}
Finestra del terminale
curl -X PATCH "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN" \
-H "Content-Type: application/scim+json" \
--data '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"add","path":"members","value":[{"value":"john.smith@example.com"}]}]}'

DELETE /scim/v2/Groups/{id}

Authentication: SCIM token: Authorization: Bearer <token>

Name In Type Required Description
id path string yes
Status Description
204 Group deleted.
401 SCIM token missing, invalid, revoked or expired.
404 Resource not found in the token’s tenant.
Finestra del terminale
curl -X DELETE "https://exocortex-api.ai-exo-cortex.com/scim/v2/Groups/jane.doe@example.com" \
-H "Authorization: Bearer $EXO_SCIM_TOKEN"

Page generated from the OpenAPI specification of the integration API, version 1.1.0.