Descope Scim API

The Scim API from Descope — 6 operation(s) for scim.

OpenAPI Specification

descope-scim-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Descope Apps Scim API
  description: Descope API
  contact:
    name: Descope
    url: https://descope.com
    email: support@descope.com
  version: 0.0.1
servers:
- url: https://api.descope.com
  description: Descope Production
- url: '{customUrl}'
  description: Custom server URL
  variables:
    customUrl:
      default: https://api.descope.com
      description: Your Descope API base URL
security:
- Descope Project ID: []
  Descope Project ID:Refresh JWT: []
  Descope Project ID:Session JWT: []
  Descope Project ID and Management Key: []
  Descope Project ID:Access Key: []
tags:
- name: Scim
paths:
  /scim/v2/Groups:
    get:
      tags:
      - Scim
      summary: Search SCIM Groups
      description: '### Search SCIM groups, using a valid access key.


        This endpoint allows administrators to search SCIM groups. These groups have been created and associated to the Application and Descope tenant.


        The response includes an array of group objects within the Resources object. These group objects include details about the groups including the members.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and has the tenant admin role.


        ### Next Steps


        Once you have this data, you can [Update an Existing SCIM Group](/api/management/tenants/scim/update-scim-group) or [Delete an Existing SCIM Group](/api/management/tenants/scim/delete-scim-group). You can add or remove users from the SCIM groups via [Update SCIM Group](/api/management/tenants/scim/update-scim-group).


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: SearchSCIMGroups
      parameters:
      - name: filter
        in: query
        schema:
          type: string
      - name: startIndex
        in: query
        schema:
          type: integer
          format: int32
      - name: count
        in: query
        schema:
          type: integer
          format: int32
      - name: excludedAttributes
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGetGroupsResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 1
      x-meta:
        title: Search SCIM Groups | Scim Management
        description: Search SCIM groups, using a valid access key.
        keywords: api, scim management
    post:
      tags:
      - Scim
      summary: Create SCIM Group
      description: '### Create a SCIM group, using a valid access key.


        This endpoint allows administrators to create new SCIM groups within their environement. When creating the group, you can configure the groupId, displayName, and it''s members.


        The response includes the new group''s group object which includes details about the groups including the members.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### Next Steps


        Once you have created the group, you can later add or remove users from the SCIM groups via [Update SCIM Group](/api/management/tenants/scim/update-scim-group).


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: CreateSCIMGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCIMGroupRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGroupResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 3
      x-meta:
        title: Create SCIM Group | Scim Management
        description: Create a SCIM group, using a valid access key.
        keywords: api, scim management
  /scim/v2/Groups/{groupId}:
    get:
      tags:
      - Scim
      summary: Load SCIM Group
      description: '### Load an existing SCIM group, using a valid access key.


        This endpoint allows administrators to load an existing SCIM group using the SCIM groupId, which is a required field, and optionally the displayName.


        The response includes the group''s object which includes details about the groups including the members.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### Next Steps


        Once you have this data, you can add or remove users from the SCIM groups via [Update SCIM Group](/api/management/tenants/scim/update-scim-group).


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: LoadSCIMGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: displayName
        in: query
        schema:
          type: string
      - name: externalId
        in: query
        schema:
          type: string
      - name: excludedAttributes
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGroupResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 2
      x-meta:
        title: Load SCIM Group | Scim Management
        description: Load an existing SCIM group, using a valid access key.
        keywords: api, scim management
    put:
      tags:
      - Scim
      summary: Update SCIM Group
      description: '### Update an existing SCIM group, using a valid access key.


        This endpoint allows administrators to update an existing SCIM group using the SCIM group ID, which is a required field. You can update the display name and members through this API endpoint.


        The response includes the group''s object which includes details about the groups including the members.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: UpdateSCIMGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCIMGroupRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGroupResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 4
      x-meta:
        title: Update SCIM Group | Scim Management
        description: Update an existing SCIM group, using a valid access key.
        keywords: api, scim management
    delete:
      tags:
      - Scim
      summary: Delete SCIM Group
      description: '### Delete an existing SCIM group, using a valid access key.


        This endpoint allows administrators to delete an existing SCIM group using using the SCIM groupId, which is a required field, and optionally the displayName.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: DeleteSCIMGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      - name: displayName
        in: query
        schema:
          type: string
      - name: externalId
        in: query
        schema:
          type: string
      - name: excludedAttributes
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content: {}
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 5
      x-meta:
        title: Delete SCIM Group | Scim Management
        description: Delete an existing SCIM group, using a valid access key.
        keywords: api, scim management
    patch:
      tags:
      - Scim
      summary: Patch SCIM Group
      description: Patch SCIM Group, using a valid access key.
      operationId: PatchSCIMGroup
      parameters:
      - name: groupId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCIMPatchRequest'
        required: true
      responses:
        '200':
          description: OK
          content: {}
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 5
      x-meta:
        title: Patch SCIM Group | Scim Management
        description: Patch SCIM Group, using a valid access key.
        keywords: api, scim management
  /scim/v2/Users:
    get:
      tags:
      - Scim
      summary: Search SCIM Users
      description: '### Search SCIM users, using a valid access key.


        This endpoint allows administrators to search SCIM users. These users have been created and associated to the Application and Descope tenant.


        The response includes an array of user objects within the Resources object. These user objects include details about the users including their email, phone, username, name, etc.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### Next Steps


        Once you have user data, you can utilize [Update SCIM Group](/api/management/tenants/scim/update-scim-group) to add or remove the user on groups.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: SearchSCIMUsers
      parameters:
      - name: filter
        in: query
        schema:
          type: string
      - name: startIndex
        in: query
        schema:
          type: integer
          format: int32
      - name: count
        in: query
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGetUsersResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 6
      x-meta:
        title: Search SCIM Users | Scim Management
        description: Search SCIM users, using a valid access key.
        keywords: api, scim management
  /scim/v2/Users/{userId}:
    get:
      tags:
      - Scim
      summary: Load SCIM User
      description: '### Load an existing SCIM user, using a valid access key.


        This endpoint allows administrators to load an existing SCIM user.


        The response includes the user''s object, which includes details about the users including their email, phone, username, name, etc.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### Next Steps


        Once you have user data, you can utilize [Update SCIM Group](/api/management/tenants/scim/update-scim-group) to add or remove the user on groups.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: LoadSCIMUser
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGetUserResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 7
      x-meta:
        title: Load SCIM User | Scim Management
        description: Load an existing SCIM user, using a valid access key.
        keywords: api, scim management
    put:
      tags:
      - Scim
      summary: Update SCIM User
      description: '### Update an existing SCIM user, using a valid access key.


        This endpoint allows administrators to update an existing SCIM user. Through this API endpoint, administrators can update the displayName, phoneNumbers, emails, and if the user is active.


        The response includes the user''s object, which includes details about the users including their email, phone, username, name, etc.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: UpdateSCIMUser
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCIMUserRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGetUserResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 9
      x-meta:
        title: Update SCIM User | Scim Management
        description: Update an existing SCIM user, using a valid access key.
        keywords: api, scim management
    delete:
      tags:
      - Scim
      summary: Delete SCIM User
      description: '### Delete an existing SCIM User, using a valid access key.


        This API endpoint allows administrators to delete an existing SCIM user from the Descope tenant.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: DeleteSCIMUser
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      - name: displayName
        in: query
        description: "The following values are manipulated by the marshaler in httpgateway/marshaler.go\n in case of changing or adding new ones, need to edit the marshaler as well"
        schema:
          type: string
      - name: active
        in: query
        schema:
          type: boolean
      - name: name.givenName
        in: query
        schema:
          type: string
      - name: name.familyName
        in: query
        schema:
          type: string
      - name: name.middleName
        in: query
        schema:
          type: string
      - name: userName
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content: {}
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 11
      x-meta:
        title: Delete SCIM User | Scim Management
        description: Delete an existing SCIM User, using a valid access key.
        keywords: api, scim management
    patch:
      tags:
      - Scim
      summary: Patch SCIM User
      description: Patch SCIM User, using a valid access key.
      operationId: SCIMPatchUser
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SCIMPatchRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMGetUserResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 10
      x-meta:
        title: Patch SCIM User | Scim Management
        description: Patch SCIM User, using a valid access key.
        keywords: api, scim management
  /scim/v2/ResourceTypes:
    get:
      tags:
      - Scim
      summary: Load SCIM Resource Types
      description: '### Load SCIM resource types, using a valid access key.


        This API endpoint allows administrators to load the resource types available within the SCIM provisioning. The response includes an array of the available resource types.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: LoadSCIMResourceTypes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMResourceTypesResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 11
      x-meta:
        title: Load SCIM Resource Types | Scim Management
        description: Load SCIM resource types, using a valid access key.
        keywords: api, scim management
  /scim/v2/ServiceProviderConfig:
    get:
      tags:
      - Scim
      summary: Load SCIM Service Provider Config
      description: '### Load the supported SCIM provisioning service provider configuration, using a valid access key.


        This API endpoint allows administrators to load the supported SCIM provisioning service provider configuration. The response includes detailed information on the applicable configurations and schemas within your IdP for SCIM provisioning.


        It is important to note the bearer token for SCIM API endpoints. The format is `ProjectId:AccessKey` the access key must be associated with the applicable tenant and associated with the tenant admin role.


        ### See also


        - See [SCIM Management](/scim) for further details on managing SCIM provisioning.'
      operationId: LoadSCIMServiceProviderConfig
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SCIMServiceProviderConfigResponse'
      security:
      - Descope Project ID:Access Key: []
      x-publishYaml: scimManagement
      x-order: 12
      x-meta:
        title: Load SCIM Service Provider Config | Scim Management
        description: Load the supported SCIM provisioning service provider configuration, using a valid access key.
        keywords: api, scim management
components:
  schemas:
    SCIMGroupRequest:
      type: object
      properties:
        groupId:
          type: string
        displayName:
          type: string
        members:
          type: array
          items:
            $ref: '#/components/schemas/SCIMGroupMember'
        externalId:
          type: string
        excludedAttributes:
          type: string
    Bulk:
      type: object
      properties:
        supported:
          type: boolean
        maxOperations:
          type: integer
          format: int32
        maxPayloadSize:
          type: integer
          format: int32
    SCIMServiceProviderConfigResponse:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        documentationUri:
          type: string
        patch:
          $ref: '#/components/schemas/Supported'
        bulk:
          $ref: '#/components/schemas/Bulk'
        filter:
          $ref: '#/components/schemas/Filter'
        changePassword:
          $ref: '#/components/schemas/Supported'
        sort:
          $ref: '#/components/schemas/Supported'
        etag:
          $ref: '#/components/schemas/Supported'
        authenticationSchemes:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationSchemes'
    SCIMPatchOperation:
      type: object
      properties:
        op:
          type: string
        path:
          type: string
        valueString:
          type: string
          description: "The following values are manipulated by the marshaler in httpgateway/marshaler.go\n in case of changing or adding new ones, need to edit the marshaler as well"
        valueBoolean:
          type: boolean
        valueArray:
          type: array
          items:
            $ref: '#/components/schemas/SCIMPatchOperationValue'
        valueID:
          type: string
        valueDisplayName:
          type: string
    SCIMGetUsersResource:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        id:
          type: string
        userName:
          type: string
        meta:
          $ref: '#/components/schemas/SCIMGetUsersResourceMeta'
        emails:
          type: array
          items:
            $ref: '#/components/schemas/SCIMUserEmail'
        name:
          $ref: '#/components/schemas/SCIMUserName'
        active:
          type: boolean
        displayName:
          type: string
        detail:
          type: string
        attributes:
          type: object
        status:
          type: integer
          format: int32
    SCIMUserRequest:
      type: object
      properties:
        userId:
          type: string
        displayName:
          type: string
          description: "The following values are manipulated by the marshaler in httpgateway/marshaler.go\n in case of changing or adding new ones, need to edit the marshaler as well"
        emails:
          type: array
          items:
            $ref: '#/components/schemas/SCIMUserEmail'
        active:
          type: boolean
        name:
          $ref: '#/components/schemas/SCIMUserName'
        userName:
          type: string
        attributes:
          type: object
    SCIMGroupResponse:
      type: object
      properties:
        displayName:
          type: string
        schemas:
          type: array
          items:
            type: string
        id:
          type: string
        members:
          type: array
          items:
            $ref: '#/components/schemas/SCIMGroupMember'
        meta:
          $ref: '#/components/schemas/SCIMGroupResourceMeta'
        externalId:
          type: string
        detail:
          type: string
        status:
          type: integer
          format: int32
    SCIMGetGroupsResponse:
      type: object
      properties:
        totalResults:
          type: integer
          format: int32
        startIndex:
          type: integer
          format: int32
        itemsPerPage:
          type: integer
          format: int32
        schemas:
          type: array
          items:
            type: string
        Resources:
          type: array
          items:
            $ref: '#/components/schemas/SCIMGroupResponse'
        detail:
          type: string
        status:
          type: integer
          format: int32
    SCIMResourceTypesResponse:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/ResourceType'
    ResourceType:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        id:
          type: string
        name:
          type: string
        description:
          type: string
        endpoint:
          type: string
        schema:
          type: string
    SCIMPatchOperationValue:
      type: object
      properties:
        value:
          type: string
          description: "The following values are manipulated by the marshaler in httpgateway/marshaler.go\n in case of changing or adding new ones, need to edit the marshaler as well"
        display:
          type: string
    SCIMGetUsersResourceMeta:
      type: object
      properties:
        created:
          type: object
        location:
          type: string
        lastModified:
          type: object
        resourceType:
          type: string
    Supported:
      type: object
      properties:
        supported:
          type: boolean
    SCIMGroupMember:
      type: object
      properties:
        value:
          type: string
        display:
          type: string
    SCIMGetUserResponse:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/SCIMGetUsersResource'
    SCIMGetUsersResponse:
      type: object
      properties:
        totalResults:
          type: integer
          format: int32
        startIndex:
          type: integer
          format: int32
        itemsPerPage:
          type: integer
          format: int32
        schemas:
          type: array
          items:
            type: string
        Resources:
          type: array
          items:
            $ref: '#/components/schemas/SCIMGetUsersResource'
        detail:
          type: string
        status:
          type: integer
          format: int32
    SCIMGroupResourceMeta:
      type: object
      properties:
        created:
          type: object
        location:
          type: string
        lastModified:
          type: object
        resourceType:
          type: string
    Filter:
      type: object
      properties:
        supported:
          type: boolean
        maxResults:
          type: integer
          format: int32
    AuthenticationSchemes:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        primary:
          type: boolean
        specUri:
          type: string
        type:
          type: string
    SCIMUserName:
      type: object
      properties:
        givenName:
          type: string
        familyName:
          type: string
        middleName:
          type: string
    SCIMPatchRequest:
      type: object
      properties:
        userId:
          type: string
        groupId:
          type: string
        operations:
          type: array
          items:
            $ref: '#/components/schemas/SCIMPatchOperation'
    SCIMUserEmail:
      type: object
      properties:
        value:
          type: string
        primary:
          type: boolean
        type:
          type: string
  securitySchemes:
    Descope Project ID:
      type: http
      scheme: bearer
      bearerFormat: Project ID
      description: Project ID as bearer token.
    Descope Project ID:Refresh JWT:
      type: http
      scheme: bearer
      bearerFormat: Project ID:Refresh JWT
      description: Project ID:Refresh JWT as bearer token.
    Descope Project ID:Access Key:
      type: http
      scheme: bearer
      bearerFormat: ProjectId:AccessKey
      description: Project ID:Access Key as bearer token.
    Descope Project ID:Session JWT:
      type: http
      scheme: bearer
      bearerFormat: Project ID:Session JWT
      description: Project ID:Session JWT as bearer token.
    Descope Project ID and Management Key:
      type: http
      description: Project ID:Management Key as bearer token.
      scheme: bearer
      bearerFormat: ProjectId:ManagementKey
externalDocs:
  description: Descope Server
  url: https://docs.descope.com