SCIM API v1.0

Introduction

The SCIM REST API allows for creating and updating Users, Groups (referred to as Roles on the OwnIdP dashboard), Organizations, OrganizationUsers and RelyingParties (referred to as Service providers on the OwnIdP dashboard).
A complete list of all schema specifications is accessible via the https://example.tenant.com/ciam/1.0/scim/v2/Schemas endpoint.

Actors

  • A SystemUser

Preconditions

  • The SystemUser's shared secret token key should be included in the Authorization HTTP header. The key should be prefixed by the string literal "Token", with whitespace separating the two strings. For example: Authorization: Token r454f2529f2cd27e1722e67a624b2b18335e6c21
  • For POST and PATCH request, the Content-Type HTTP header should be application/json.
  • The SystemUser's linked OrganizationUser needs to have the correct OwnIdP permissions to access the SCIM endpoint.

Exceptions

No secret token (or an incorrect one) is included in the request's header.

  1. 1.
    The response will be in the form of a HTTP UNAUTHORISED (401).

A secret token is included in the request's header but the SystemUser's OrganizationUser doesn't have the right OwnIdP permissions.

  1. 1.
    The response will be in the form of a HTTP FORBIDDEN (403).

Order of execution

In the use case of initial setup, the right order of execution is as follows:
  1. 1.
    Create the Groups (using POST on the Groups endpoint)
  2. 2.
    Create the Organisations (using POST on the Organizations endpoint)
  3. 3.
    Add the Groups to the Organisations (using PATCH on the Organizations endpoint)
  4. 4.
    Create the Users (using POST on the Users endpoint)
  5. 5.
    Create the OrganizationUsers (using POST on the OrganizationUsers endpoint)
  6. 6.
    Add the Groups to the OrganizationUsers (using PATCH on the OrganizationUsers endpoint)

Endpoints

Note: When filtering by custom attributes (Users, Organizations and OrganizationUsers endpoints only), the customerAttributeName must be entered exactly as it was created.

Users

  • Core schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User
  • Extension schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User
  • Endpoint: https://example.tenant.com/ciam/1.0/scim/v2/Users
  • Allow: GET, POST, DELETE, PATCH
  • Filter options for Users (for an example, see below):
    • id (uuid)
    • externalId (string)
    • userName (string)
    • givenName (string)
    • familyName (string)
    • name (string)
    • emails(string)
    • active (boolean)
    • isShadowUser (boolean)
    • created (date)
    • lastModified (date)
    • customAttributeName (value)
  • GET all users example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 8,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:ietf:params:scim:schemas:core:2.0:User",
      12
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User"
      13
      ],
      14
      "id": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      15
      "externalId": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      16
      "userName": "john-doe",
      17
      "name": {
      18
      "givenName": "John",
      19
      "familyName": "Doe",
      20
      "formatted": "John Doe"
      21
      },
      22
      "displayName": "John Doe",
      23
      "emails": [
      24
      {
      25
      "value": "[email protected]",
      26
      "primary": true
      27
      }
      28
      ],
      29
      "active": true,
      30
      "x509Certificates":[],
      31
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User": {
      32
      33
      },
      34
      "meta": {
      35
      "resourceType": "User",
      36
      "created": "2020-08-07T07:39:53.394952+00:00",
      37
      "lastModified": "2020-08-07T07:39:53.394952+00:00",
      38
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Users/04a0c61-132f-4c47-ae9b-ea2b79046254"
      39
      }
      40
      },
      41
      ...
      42
      ]
      43
      }
      Copied!
    • Note: This will show maximum 50 records by default. Use count as query parameter to change the default max limit. For example, use https://example.tenant.com/ciam/1.0/scim/v2/Users?count=100 to show 100 records.
  • GET single user example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users/b04a0c61-132f-4c47-ae9b-ea2b79046254
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:User",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User"
      5
      ],
      6
      "id": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      7
      "externalId": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      8
      "userName": "john-doe",
      9
      "name": {
      10
      "givenName": "John",
      11
      "familyName": "Doe",
      12
      "formatted": "John Doe"
      13
      },
      14
      "displayName": "John Doe",
      15
      "emails": [
      16
      {
      17
      "value": "[email protected]",
      18
      "primary": true
      19
      }
      20
      ],
      21
      "active": true,
      22
      "x509Certificates":[],
      23
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User": {
      24
      25
      },
      26
      "meta": {
      27
      "resourceType": "User",
      28
      "created": "2020-08-07T07:39:53.394952+00:00",
      29
      "lastModified": "2020-08-07T07:39:53.394952+00:00",
      30
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Users/04a0c61-132f-4c47-ae9b-ea2b79046254"
      31
      }
      32
      }
      Copied!
  • GET response attribute filtering example (can also be used in combination with standard filtering):
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users?attributes=userName
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 8,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "id": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      11
      "userName": "john-doe"
      12
      },
      13
      {
      14
      "id": "c159dc61-132f-4c47-ae9b-ea2b79046254",
      15
      "userName": "Tony-coen"
      16
      },
      17
      ...
      18
      ]
      19
      }
      Copied!
    Multiple values can be passed in the attributes filter, example:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/Users?attributes=displayName, userName
    Copied!
    Example with standard filter and response attribute filter:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/Users?filter=externalId eq "17e78087-ea19-4cd0-a38a-732a4f898413"&attributes=displayName
    Copied!
  • GET users using filter example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users?filter=name.givenName Eq "John" and active Eq "True"
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 1,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:ietf:params:scim:schemas:core:2.0:User",
      12
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User"
      13
      ],
      14
      "id": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      15
      "externalId": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      16
      "userName": "john-doe",
      17
      "name": {
      18
      "givenName": "John",
      19
      "familyName": "Doe",
      20
      "formatted": "John Doe"
      21
      },
      22
      "displayName": "John Doe",
      23
      "emails": [
      24
      {
      25
      "value": "[email protected]",
      26
      "primary": true
      27
      }
      28
      ],
      29
      "active": true,
      30
      "x509Certificates":[],
      31
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User": {
      32
      33
      },
      34
      "meta": {
      35
      "resourceType": "User",
      36
      "created": "2020-08-07T07:39:53.394952+00:00",
      37
      "lastModified": "2020-08-07T07:39:53.394952+00:00",
      38
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Users/04a0c61-132f-4c47-ae9b-ea2b79046254"
      39
      }
      40
      }
      41
      ]
      42
      }
      Copied!
  • POST example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users
      Copied!
    • Request body:
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:User",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User"
      5
      ],
      6
      "name": {"givenName": "Jane", "familyName": "Doe"},
      7
      "emails": [{"value": "[email protected]", "primary": "true"}],
      8
      "userName": "jane-doe",
      9
      "password": "[email protected]#",
      10
      "resetPassword": true,
      11
      "customAttributes": [{"id": "b04a0c61-132f-4c47-ae9b-ea2b79046254", "value": "test"}]
      12
      }
      Copied!
    • Response: 201 Created
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:User",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User"
      5
      ],
      6
      "id": "e82a9c37-acb0-454c-a901-35968bdba84b",
      7
      "externalId": null,
      8
      "userName": "jane-doe",
      9
      "name": {
      10
      "givenName": "Jane",
      11
      "familyName": "Doe",
      12
      "formatted": "Jane Doe"
      13
      },
      14
      "displayName": "Jane Doe",
      15
      "emails": [
      16
      {
      17
      "value": "[email protected]",
      18
      "primary": true
      19
      }
      20
      ],
      21
      "active": true,
      22
      "x509Certificates": [],
      23
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User": {
      24
      25
      },
      26
      "meta": {
      27
      "resourceType": "User",
      28
      "created": "2020-08-07T08:32:52.503969+00:00",
      29
      "lastModified": "2020-08-07T08:32:52.503969+00:00",
      30
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Users/e82a9c37-acb0-454c-a901-35968bdba84b"
      31
      }
      32
      }
      Copied!
  • You can specify if a user has to reset its password before logging in for the first time with the resetPassword field
    • Example:
      1
      {
      2
      "name": {"givenName": "Jane", "familyName": "Doe"},
      3
      "emails": [{"value": "[email protected]", "primary": "true"}],
      4
      "userName": "jane-doe",
      5
      "password": "[email protected]#",
      6
      "resetPassword": true,
      7
      }
      Copied!
  • DELETE example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users/e82a9c37-acb0-454c-a901-35968bdba84b
      Copied!
    • Response: 204 No Content
  • PATCH example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Users/e82a9c37-acb0-454c-a901-35968bdba84b
      Copied!
    • Request body:
      1
      {
      2
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      3
      "Operations": [
      4
      {"op": "replace", "path": "externalId", "value": "123456"},
      5
      {"op": "replace", "path": "name.givenName", "value": "Jane1"},
      6
      {"op": "replace", "path": "name.familyName", "value": "Doe1"},
      7
      {"op": "replace", "path": "userName", "value": "jane1-doe1"},
      8
      {"op": "replace", "path": "active", "value": false},
      9
      {"op": "replace", "path": "password", "value": "[email protected]#3"},
      10
      {"op": "replace", "path": "emails", "value": {"value": "[email protected]", "primary": "true"}}
      11
      ]
      12
      }
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:User",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User"
      5
      ],
      6
      "id": "e82a9c37-acb0-454c-a901-35968bdba84b",
      7
      "externalId": "123456",
      8
      "userName": "jane1-doe1",
      9
      "name": {
      10
      "givenName": "Jane1",
      11
      "familyName": "Doe1",
      12
      "formatted": "Jane1 Doe1"
      13
      },
      14
      "displayName": "Jane1 Doe1",
      15
      "emails": [
      16
      {
      17
      "value": "[email protected]",
      18
      "primary": true
      19
      }
      20
      ],
      21
      "active": false,
      22
      "x509Certificates": [],
      23
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:User": {
      24
      25
      },
      26
      "meta": {
      27
      "resourceType": "User",
      28
      "created": "2020-08-07T08:32:52.503969+00:00",
      29
      "lastModified": "2020-08-08T08:32:52.503969+00:00",
      30
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Users/e82a9c37-acb0-454c-a901-35968bdba84b"
      31
      }
      32
      }
      Copied!

Groups

  • Core schema specification: https://example.tenant.com/ciam/1.0/scim/v2/urn:ietf:params:scim:schemas:core:2.0:Group
  • Extension schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:connectis:ciam:scim:schemas:extension:1.0:Group
  • Endpoint: https://example.tenant.com/ciam/1.0/scim/v2/Groups
  • Note: "Groups" are referred to as "Roles" on the front-end dashboard.
  • Allow: GET, POST, DELETE, PATCH
  • Filter options for Groups (for an example, see below):
    • id (uuid)
    • externalId (string)
    • displayName (string)
    • description (string)
  • GET all groups example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 4,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:ietf:params:scim:schemas:core:2.0:Group",
      12
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group"
      13
      ],
      14
      "id": "17e78087-ea19-4cd0-a38a-732a4f898413",
      15
      "externalId": "17e78087-ea19-4cd0-a38a-732a4f898413",
      16
      "displayName": "Test Group",
      17
      "members": [
      18
      {
      19
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      20
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      21
      "display": "Test Organization - John Doe"
      22
      "type": "OrganizationUser"
      23
      }
      24
      ],
      25
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group": {
      26
      "order": 6,
      27
      "description": "Description for Test Group"
      28
      },
      29
      "meta": {
      30
      "resourceType": "Group",
      31
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413"
      32
      }
      33
      },
      34
      ...
      35
      ]
      36
      }
      Copied!
    • Note: This will show maximum 50 records by default. Use count as query parameter to change the default max limit. For example, use https://example.tenant.com/ciam/1.0/scim/v2/Groups?count=100 to show 100 records.
  • GET single group example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:Group",
      4
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group"
      5
      ],
      6
      "id": "17e78087-ea19-4cd0-a38a-732a4f898413",
      7
      "externalId": "17e78087-ea19-4cd0-a38a-732a4f898413",
      8
      "displayName": "Test Group",
      9
      "members": [
      10
      {
      11
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      12
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      13
      "display": "Test Organization - John Doe"
      14
      "type": "OrganizationUser"
      15
      }
      16
      ],
      17
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group": {
      18
      "order": 6,
      19
      "description": "Description for Test Group"
      20
      },
      21
      "meta": {
      22
      "resourceType": "Group",
      23
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413"
      24
      }
      25
      }
      Copied!
  • GET response attribute filtering example (can also be used in combination with standard filtering):
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups?attributes=displayName
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 5,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "id": "17e78087-ea19-4cd0-a38a-732a4f898413",
      11
      "displayName": "Test Group"
      12
      },
      13
      ...
      14
      ]
      15
      }
      Copied!
    Multiple values can be passed in the attributes filter, example:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/Groups?attributes=displayName, externalId
    Copied!
    Example with standard filter and response attribute filter:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/Groups?filter=externalId eq "17e78087-ea19-4cd0-a38a-732a4f898413"&attributes=displayName
    Copied!
  • GET groups using filter example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups?filter=displayName Eq "Test Group
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 1,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:ietf:params:scim:schemas:core:2.0:Group",
      12
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group"
      13
      ],
      14
      "id": "17e78087-ea19-4cd0-a38a-732a4f898413",
      15
      "externalId": "17e78087-ea19-4cd0-a38a-732a4f898413",
      16
      "displayName": "Test Group",
      17
      "members": [
      18
      {
      19
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      20
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      21
      "display": "Test Organization - John Doe"
      22
      "type": "OrganizationUser"
      23
      }
      24
      ],
      25
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group": {
      26
      "order": 6,
      27
      "description": "Description for Test Group"
      28
      },
      29
      "meta": {
      30
      "resourceType": "Group",
      31
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413"
      32
      }
      33
      }
      34
      ]
      35
      }
      Copied!
  • POST example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups
      Copied!
    • Request body:
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:Group",
      4
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group"
      5
      ],
      6
      "displayName": "Test Group"
      7
      }
      Copied!
    • Response: 201 Created
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:Group",
      4
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group"
      5
      ],
      6
      "id": "17e78087-ea19-4cd0-a38a-732a4f898413",
      7
      "externalId": null,
      8
      "displayName": "Test Group",
      9
      "members": [],
      10
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group": {
      11
      "order": 6,
      12
      "description": ""
      13
      },
      14
      "meta": {
      15
      "resourceType": "Group",
      16
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413"
      17
      }
      18
      }
      Copied!
  • DELETE example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413
      Copied!
    • Response: 204 No Content
  • PATCH example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413
      Copied!
    • Request body:
      1
      {
      2
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      3
      "Operations": [
      4
      {"op": "replace", "path": "externalId", "value": "123456"},
      5
      {"op": "replace", "path": "displayName", "value": "Updated Test Group"},
      6
      {"op": "replace", "path": "order", "value": "15"},
      7
      {"op": "replace", "path": "description", "value": "Description for Updated Test Group"}
      8
      ]
      9
      }
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:schemas:core:2.0:Group",
      4
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group"
      5
      ],
      6
      "id": "17e78087-ea19-4cd0-a38a-732a4f898413",
      7
      "externalId": "123456,
      8
      "displayName": "Updated Test Group",
      9
      "members": [],
      10
      "urn:connectis:ciam:scim:schemas:extension:1.0:Group": {
      11
      "order": 15,
      12
      "description": "Description for Updated Test Group"
      13
      },
      14
      "meta": {
      15
      "resourceType": "Group",
      16
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413"
      17
      }
      18
      }
      Copied!

Organisations

  • Core schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:connectis:ciam:scim:schemas:core:1.0:Organization
  • Extension schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization
  • Endpoint: https://example.tenant.com/ciam/1.0/scim/v2/Organizations
  • Allow: GET, POST, DELETE, PATCH
  • Filter options for Organisations (for an example, see below):
    • id (uuid)
    • externalId (string)
    • name (string)
    • active (boolean)
    • parent (uuid)
    • cc (string)
    • branchNumber(string)
    • organizationCode (string)
    • customAttributeName (value)
  • GET all organizations example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 5,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:connectis:ciam:scim:schemas:core:1.0:Organization",
      12
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization"
      13
      ],
      14
      "id": "f39322c6-7234-478a-a976-9a7409c0b085",
      15
      "externalId": "f39322c6-7234-478a-a976-9a7409c0b085",
      16
      "name": "Test Organization",
      17
      "active": true,
      18
      "parent": {
      19
      "value": "03eb07ff-e21b-48e3-9f7c-147ec69bccba",
      20
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/5b55284a-f330-424f-8dc0-afac7d4cf51f",
      21
      "display": "Parent Organization",
      22
      "type": "Organization"
      23
      },
      24
      "organizationUsers": [
      25
      {
      26
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      27
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      28
      "display": "Test Organization - John Doe"
      29
      "type": "OrganizationUser"
      30
      }
      31
      ],
      32
      "groups": [
      33
      {
      34
      "value": "50945e0d-53e8-46fe-88fe-94f571ffec5d",
      35
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/50945e0d-53e8-46fe-88fe-94f571ffec5d",
      36
      "display": "Test Group"
      37
      "type": "Group"
      38
      },
      39
      ],
      40
      "meta": {
      41
      "resourceType": "Organization",
      42
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085"
      43
      }
      44
      },
      45
      ...
      46
      ]
      47
      }
      Copied!
    • Note: This will show maximum 50 records by default. Use count as query parameter to change the default max limit. For example, use https://example.tenant.com/ciam/1.0/scim/v2/Organizations?count=100 to show 100 records.
  • GET single organisation example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:connectis:ciam:scim:schemas:core:1.0:Organization",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization"
      5
      ],
      6
      "id": "f39322c6-7234-478a-a976-9a7409c0b085",
      7
      "externalId": "f39322c6-7234-478a-a976-9a7409c0b085",
      8
      "name": "Test Organization",
      9
      "active": true,
      10
      "parent": {
      11
      "value": "03eb07ff-e21b-48e3-9f7c-147ec69bccba",
      12
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/5b55284a-f330-424f-8dc0-afac7d4cf51f",
      13
      "display": "Parent Organization",
      14
      "type": "Organization"
      15
      },
      16
      "organizationUsers": [
      17
      {
      18
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      19
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      20
      "display": "Test Organization - John Doe"
      21
      "type": "OrganizationUser"
      22
      }
      23
      ],
      24
      "groups": [
      25
      {
      26
      "value": "50945e0d-53e8-46fe-88fe-94f571ffec5d",
      27
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/50945e0d-53e8-46fe-88fe-94f571ffec5d",
      28
      "display": "Test Group"
      29
      "type": "Group"
      30
      },
      31
      ],
      32
      "meta": {
      33
      "resourceType": "Organization",
      34
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085"
      35
      }
      36
      }
      Copied!
  • GET response attribute filtering example (can also be used in combination with standard filtering):
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations?attributes=name
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 5,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "id": "f39322c6-7234-478a-a976-9a7409c0b085",
      11
      "name": "Test Organization",
      12
      },
      13
      ...
      14
      ]
      15
      }
      Copied!
    Multiple values can be passed in the attributes filter, example:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/Organizations?attributes=name, active
    Copied!
    Example with standard filter and response attribute filter:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/Organizations?filter=name eq "OrganizationName"&attributes=user
    Copied!
  • GET organizations using filter example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations?filter=name Eq "Test Organization"
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 1,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:connectis:ciam:scim:schemas:core:1.0:Organization",
      12
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization"
      13
      ],
      14
      "id": "f39322c6-7234-478a-a976-9a7409c0b085",
      15
      "externalId": "f39322c6-7234-478a-a976-9a7409c0b085",
      16
      "name": "Test Organization",
      17
      "active": true,
      18
      "parent": {
      19
      "value": "03eb07ff-e21b-48e3-9f7c-147ec69bccba",
      20
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/5b55284a-f330-424f-8dc0-afac7d4cf51f",
      21
      "display": "Parent Organization",
      22
      "type": "Organization"
      23
      },
      24
      "organizationUsers": [
      25
      {
      26
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      27
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      28
      "display": "Test Organization - John Doe"
      29
      "type": "OrganizationUser"
      30
      }
      31
      ],
      32
      "groups": [
      33
      {
      34
      "value": "50945e0d-53e8-46fe-88fe-94f571ffec5d",
      35
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/50945e0d-53e8-46fe-88fe-94f571ffec5d",
      36
      "display": "Test Group"
      37
      "type": "Group"
      38
      },
      39
      ],
      40
      "meta": {
      41
      "resourceType": "Organization",
      42
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085"
      43
      }
      44
      }
      45
      ]
      46
      }
      Copied!
  • POST example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations
      Copied!
    • Request body:
      1
      {
      2
      "schemas": [
      3
      "urn:connectis:ciam:scim:schemas:core:1.0:Organization",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization"
      5
      ],
      6
      "name": "Test Organization",
      7
      "active": true,
      8
      "parent": "03eb07ff-e21b-48e3-9f7c-147ec69bccba",
      9
      "cc": "987654321",
      10
      "branchNumber": "12345",
      11
      "organizationCode": "6789"
      12
      "customAttributes": [{"id": "b04a0c61-132f-4c47-ae9b-ea2b79046254", "value": "test"}],
      13
      "groups": ["b04a0c61-132f-4c47-ae9b-ea2b79046254", "b04a0c61-132f-4c47-ae9b-ea2b79046254", ]
      14
      }
      Copied!
    • Response: 201 Created
      1
      {
      2
      "schemas": [
      3
      "urn:connectis:ciam:scim:schemas:core:1.0:Organization",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization"
      5
      ],
      6
      "id": "f39322c6-7234-478a-a976-9a7409c0b085",
      7
      "externalId": null,
      8
      "name": "Test Organization",
      9
      "active": true,
      10
      "parent": {
      11
      "value": "03eb07ff-e21b-48e3-9f7c-147ec69bccba",
      12
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/5b55284a-f330-424f-8dc0-afac7d4cf51f",
      13
      "display": "Parent Organization",
      14
      "type": "Organization"
      15
      },
      16
      "organizationUsers": [],
      17
      "groups": [],
      18
      "meta": {
      19
      "resourceType": "Organization",
      20
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085"
      21
      }
      22
      }
      Copied!
  • DELETE example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085
      Copied!
    • Response: 204 No Content
Warning: Do not delete your main organisation with OrganisationID 1 (ciam/organisations/1/). This will cause you to lose the option to login with your MySignicat account.
  • PATCH example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085
      Copied!
    • Request body:
      1
      {
      2
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
      3
      "Operations": [
      4
      {"op": "replace", "path": "externalId", "value": "123456"},
      5
      {"op": "replace", "path": "name", "value": "Updated Test Organization"},
      6
      {"op": "replace", "path": "active", "value": false},
      7
      {"op": "replace", "path": "parent", "value": "ed32c069-2248-4d03-b3f3-335cd2c3e730"},
      8
      {"op": "replace", "path": "cc", "value": "123456789"},
      9
      {"op": "replace", "path": "branchNumber", "value": "5623"},
      10
      {"op": "replace", "path": "organizationCode", "value": "325621"},
      11
      {"op": "add", "path": "groups", "value": [{"value": "50945e0d-53e8-46fe-88fe-94f571ffec5d"}]},
      12
      {"op": "remove", "path": "groups", "value": [{"value": "5edd5205-f2d0-4b7d-aeac-f43dcc98b2b1"}]},
      13
      ]
      14
      }
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:connectis:ciam:scim:schemas:core:1.0:Organization",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:Organization"
      5
      ],
      6
      "id": "f39322c6-7234-478a-a976-9a7409c0b085",
      7
      "externalId": "123456",
      8
      "name": "Updated Test Organization",
      9
      "active": false,
      10
      "parent": {
      11
      "value": "ed32c069-2248-4d03-b3f3-335cd2c3e730",
      12
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/ed32c069-2248-4d03-b3f3-335cd2c3e730",
      13
      "display": "New Parent Organization",
      14
      "type": "Organization"
      15
      },
      16
      "organizationUsers": [
      17
      {
      18
      "value": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      19
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a",
      20
      "display": "Updated Test Organization - John Doe"
      21
      "type": "OrganizationUser"
      22
      }
      23
      ],
      24
      "groups": [
      25
      {
      26
      "value": "50945e0d-53e8-46fe-88fe-94f571ffec5d",
      27
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/50945e0d-53e8-46fe-88fe-94f571ffec5d",
      28
      "display": "Test Groups"
      29
      "type": "Group"
      30
      },
      31
      ],
      32
      "meta": {
      33
      "resourceType": "Organization",
      34
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085"
      35
      }
      36
      }
      Copied!

OrganizationUsers

  • Core schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:connectis:ciam:scim:schemas:core:1.0:OrganizationUser
  • Extension schema specification: https://example.tenant.com/ciam/1.0/scim/v2/Schemas/urn:example.tenant.com:ciam:scim:schemas:extension:1.0:OrganizationUser
  • Endpoint: https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers
  • Allow: GET, POST, DELETE, PATCH
  • Filter options for OrganizationsUsers (for an example, see below):
    • id (uuid)
    • externalId (string)
    • active (boolean)
    • customAttributeName (value)
    • user(uuid)
  • GET all organization-users example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 2,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:connectis:ciam:scim:schemas:core:1.0:OrganizationUser",
      12
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:OrganizationUser"
      13
      ],
      14
      "id": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      15
      "externalId": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      16
      "displayName": "Test Organization - John Doe",
      17
      "active": true,
      18
      "organization": {
      19
      "value": "f39322c6-7234-478a-a976-9a7409c0b085",
      20
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085",
      21
      "display": "Test Organization",
      22
      "type": "Organization"
      23
      },
      24
      "user": {
      25
      "value": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      26
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Users/b04a0c61-132f-4c47-ae9b-ea2b79046254",
      27
      "display": "John Doe"
      28
      "type": "User"
      29
      },
      30
      "invitedBy": {
      31
      "value": "edd68232-0766-411b-8050-1ff35b4e6276",
      32
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Users/edd68232-0766-411b-8050-1ff35b4e6276",
      33
      "display": "Test User"
      34
      "type": "User"
      35
      },
      36
      "groups": [
      37
      {
      38
      "value": "17e78087-ea19-4cd0-a38a-732a4f898413",
      39
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413",
      40
      "display": "Test Group"
      41
      "type": "Group"
      42
      }
      43
      ],
      44
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:OrganizationUser": {
      45
      46
      },
      47
      "meta": {
      48
      "resourceType": "OrganizationUser",
      49
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a"
      50
      }
      51
      },
      52
      ...
      53
      ]
      54
      }
      Copied!
    • Note: This will show maximum 50 records by default. Use count as query parameter to change the default max limit. For example, use https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers?count=100 to show 100 records.
  • GET single organization-user example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:connectis:ciam:scim:schemas:core:1.0:OrganizationUser",
      4
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:OrganizationUser"
      5
      ],
      6
      "id": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      7
      "externalId": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      8
      "displayName": "Test Organization - John Doe",
      9
      "active": true,
      10
      "organization": {
      11
      "value": "f39322c6-7234-478a-a976-9a7409c0b085",
      12
      $ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085",
      13
      "display": "Test Organization",
      14
      "type": "Organization"
      15
      },
      16
      "user": {
      17
      "value": "b04a0c61-132f-4c47-ae9b-ea2b79046254",
      18
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Users/b04a0c61-132f-4c47-ae9b-ea2b79046254",
      19
      "display": "John Doe"
      20
      "type": "User"
      21
      },
      22
      "invitedBy": {
      23
      "value": "edd68232-0766-411b-8050-1ff35b4e6276",
      24
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Users/edd68232-0766-411b-8050-1ff35b4e6276",
      25
      "display": "Test User"
      26
      "type": "User"
      27
      },
      28
      "groups": [
      29
      {
      30
      "value": "17e78087-ea19-4cd0-a38a-732a4f898413",
      31
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Groups/17e78087-ea19-4cd0-a38a-732a4f898413",
      32
      "display": "Test Group"
      33
      "type": "Group"
      34
      }
      35
      ],
      36
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:OrganizationUser": {
      37
      38
      },
      39
      "meta": {
      40
      "resourceType": "OrganizationUser",
      41
      "location": "https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers/add4cac2-613f-449b-ae1c-97ce7be22a4a"
      42
      }
      43
      }
      Copied!
  • GET response attribute filtering example (can also be used in combination with standard filtering):
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUser?attributes=displayName
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 1,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "id": "50945e0d-53e8-46fe-88fe-94f571ffec5d",
      11
      "displayName": "1st Organization AdminUser",
      12
      },
      13
      ...
      14
      ]
      15
      }
      Copied!
    Multiple values can be passed in the attributes filter, example:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUser?attributes=displayName, active
    Copied!
    Example with standard filter and response attribute filter:
    1
    https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUser?filter=displayName eq "OrganizationAdmin"&attributes=organization
    Copied!
  • GET organization-user using filter example:
    • Request:
      1
      https://example.tenant.com/ciam/1.0/scim/v2/OrganizationUsers?filter=active Eq "True"
      Copied!
    • Response: 200 OK
      1
      {
      2
      "schemas": [
      3
      "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      4
      ],
      5
      "totalResults": 2,
      6
      "itemsPerPage": 50,
      7
      "startIndex": 1,
      8
      "Resources": [
      9
      {
      10
      "schemas": [
      11
      "urn:connectis:ciam:scim:schemas:core:1.0:OrganizationUser",
      12
      "urn:example.tenant.com:ciam:scim:schemas:extension:1.0:OrganizationUser"
      13
      ],
      14
      "id": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      15
      "externalId": "add4cac2-613f-449b-ae1c-97ce7be22a4a",
      16
      "displayName": "Test Organization - John Doe",
      17
      "active": true,
      18
      "organization": {
      19
      "value": "f39322c6-7234-478a-a976-9a7409c0b085",
      20
      "$ref": "https://example.tenant.com/ciam/1.0/scim/v2/Organizations/f39322c6-7234-478a-a976-9a7409c0b085",
      21