SailPoint Identities API

Use this API to retrieve and manage public identity information. Public identities represent users within the Identity Security Cloud platform, including their attributes, lifecycle state, and manager relationships.

OpenAPI Specification

sailpoint-identities-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Identity Security Cloud V3 Access Profiles Identities API
  description: Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. The V3 APIs provide core endpoints covering access profiles, certifications, identities, roles, search, sources, transforms, workflows, and more. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.
  termsOfService: https://developer.sailpoint.com/discuss/tos
  contact:
    name: Developer Relations
    url: https://developer.sailpoint.com/discuss/api-help
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
    identifier: MIT
  version: 3.0.0
servers:
- url: https://{tenant}.api.identitynow.com/v3
  description: Production API server.
  variables:
    tenant:
      default: sailpoint
      description: The name of your tenant, typically your company's name.
- url: https://{apiUrl}/v3
  description: V3 API server.
  variables:
    apiUrl:
      default: sailpoint.api.identitynow.com
      description: The API URL of your tenant.
security:
- oauth2: []
- personalAccessToken: []
tags:
- name: Identities
  description: Use this API to retrieve and manage public identity information. Public identities represent users within the Identity Security Cloud platform, including their attributes, lifecycle state, and manager relationships.
  externalDocs:
    description: SailPoint Identities Documentation
    url: https://developer.sailpoint.com/docs/api/v3/get-public-identities/
paths:
  /public-identities:
    get:
      operationId: getPublicIdentities
      tags:
      - Identities
      summary: List public identities
      description: Get a list of public identities. This endpoint returns a paged list of public identity objects that can be filtered and sorted.
      parameters:
      - name: add-core-filters
        in: query
        description: Set to true to exclude incomplete identities and uncorrelated accounts from the results.
        required: false
        schema:
          type: boolean
          default: false
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Count'
      - name: filters
        in: query
        description: 'Filter results using the standard syntax described in V3 API Standard Collection Parameters. Filtering is supported for the following fields and operators: id (eq, in), name (eq, sw, co), alias (eq, sw, co), email (eq, sw, co), status (eq).'
        required: false
        schema:
          type: string
        example: name eq "John Smith"
      - name: sorters
        in: query
        description: 'Sort results using the standard syntax. Sorting is supported for the following fields: name, alias, email.'
        required: false
        schema:
          type: string
        example: name,-email
      responses:
        '200':
          description: List of public identities.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicIdentity'
          headers:
            X-Total-Count:
              description: Total number of results matching the query.
              schema:
                type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity:read
  /public-identities/{id}:
    get:
      operationId: getPublicIdentity
      tags:
      - Identities
      summary: Get a public identity
      description: Get the details of a public identity by its ID.
      parameters:
      - name: id
        in: path
        description: The identity ID.
        required: true
        schema:
          type: string
        example: 2c9180857182305e0171993735622948
      responses:
        '200':
          description: A public identity object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicIdentity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity:read
  /identity-profiles:
    get:
      operationId: listIdentityProfiles
      tags:
      - Identities
      summary: List identity profiles
      description: Get a list of identity profiles. Identity profiles define how identity attributes are mapped from source account attributes and configure lifecycle states.
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Count'
      - name: filters
        in: query
        description: 'Filter results using the standard syntax. Filtering is supported for the following fields: id (eq, in), name (eq, sw), priority (eq, gt, lt, ge, le).'
        required: false
        schema:
          type: string
        example: name eq "HR Profile"
      - name: sorters
        in: query
        description: 'Sort results using the standard syntax. Sorting is supported for the following fields: name, priority, created, modified.'
        required: false
        schema:
          type: string
        example: name,-priority
      responses:
        '200':
          description: List of identity profiles.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IdentityProfile'
          headers:
            X-Total-Count:
              description: Total number of results matching the query.
              schema:
                type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity-profile:read
    post:
      operationId: createIdentityProfile
      tags:
      - Identities
      summary: Create an identity profile
      description: Create an identity profile. An identity profile defines the mapping between source account attributes and identity attributes and configures lifecycle states for identities.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityProfile'
      responses:
        '201':
          description: Identity profile created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProfile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity-profile:manage
  /identity-profiles/{identity-profile-id}:
    get:
      operationId: getIdentityProfile
      tags:
      - Identities
      summary: Get an identity profile
      description: Get the details of an identity profile by its ID.
      parameters:
      - name: identity-profile-id
        in: path
        description: The identity profile ID.
        required: true
        schema:
          type: string
        example: 2b838de9-db9b-abcf-e646-d4f274ad4238
      responses:
        '200':
          description: An identity profile object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProfile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity-profile:read
    patch:
      operationId: updateIdentityProfile
      tags:
      - Identities
      summary: Update an identity profile
      description: Update an existing identity profile using a JSON Patch document.
      parameters:
      - name: identity-profile-id
        in: path
        description: The identity profile ID.
        required: true
        schema:
          type: string
        example: 2b838de9-db9b-abcf-e646-d4f274ad4238
      requestBody:
        required: true
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchOperation'
      responses:
        '200':
          description: Updated identity profile.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProfile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity-profile:manage
    delete:
      operationId: deleteIdentityProfile
      tags:
      - Identities
      summary: Delete an identity profile
      description: Delete an identity profile by its ID.
      parameters:
      - name: identity-profile-id
        in: path
        description: The identity profile ID.
        required: true
        schema:
          type: string
        example: 2b838de9-db9b-abcf-e646-d4f274ad4238
      responses:
        '202':
          description: Identity profile delete request accepted. This is a long-running asynchronous operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResultSimplified'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - oauth2:
        - idn:identity-profile:manage
components:
  responses:
    Forbidden:
      description: Forbidden - Returned if the user you are running as does not have access to this endpoint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseDto'
    NotFound:
      description: Not Found - Returned if the specified resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseDto'
    InternalServerError:
      description: Internal Server Error - Returned if there is an unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseDto'
    Unauthorized:
      description: Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseDto'
    TooManyRequests:
      description: Too Many Requests - Returned in response to too many requests in a given period of time, rate limited. The Retry-After header in the response includes how long to wait before trying again.
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseDto'
    BadRequest:
      description: Client Error - Returned if the request body is invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseDto'
  schemas:
    TaskResultSimplified:
      type: object
      description: A simplified task result for asynchronous operations.
      properties:
        id:
          type: string
          description: The task ID.
          examples:
          - 464ae7bf-791e-49fd-b746-06a2e4a89635
        type:
          type: string
          description: The type of task.
          examples:
          - TASK_RESULT
        name:
          type:
          - string
          - 'null'
          description: The task name.
    ErrorResponseDto:
      type: object
      description: Error response body.
      properties:
        detailCode:
          type: string
          description: Fine-grained error code providing more detail.
          examples:
          - 400.1 Bad Request Content
        trackingId:
          type: string
          description: Unique tracking ID for the error.
          examples:
          - e7eab60924f64aa284175b9fa3309599
        messages:
          type: array
          description: Generic localized reason for error.
          items:
            type: object
            properties:
              locale:
                type: string
                description: The locale for the message text.
                examples:
                - en-US
              localeOrigin:
                type: string
                description: An indicator of how the locale was selected.
                enum:
                - DEFAULT
                - REQUEST
                examples:
                - DEFAULT
              text:
                type: string
                description: The actual text of the error message.
                examples:
                - The request was syntactically correct but its content is semantically invalid.
        causes:
          type: array
          description: Plain-text descriptive reasons to provide additional detail to the text provided in the messages field.
          items:
            type: object
            properties:
              locale:
                type: string
                examples:
                - en-US
              localeOrigin:
                type: string
                enum:
                - DEFAULT
                - REQUEST
              text:
                type: string
    OwnerReference:
      type: object
      description: Reference to the owner of the object.
      properties:
        type:
          type: string
          description: Owner type. Must be either left null or set to IDENTITY on input, otherwise a 400 Bad Request error will result.
          enum:
          - IDENTITY
          examples:
          - IDENTITY
        id:
          type: string
          description: The owner's identity ID.
          examples:
          - 2c9180a46faadee4016fb4e018c20639
        name:
          type: string
          description: The owner's name. If set, it must match the current value of the owner's display name, otherwise a 400 Bad Request error will result.
          examples:
          - support
    SourceReference:
      type: object
      description: Reference to a source.
      properties:
        type:
          type: string
          description: The source object type.
          enum:
          - SOURCE
          examples:
          - SOURCE
        id:
          type: string
          description: The source ID.
          examples:
          - 2c9180835d191a86015d28455b4b232a
        name:
          type: string
          description: The source name.
          examples:
          - HR Active Directory
    IdentityReference:
      type:
      - object
      - 'null'
      description: Reference to an identity.
      properties:
        type:
          type: string
          description: The type of the referenced object.
          enum:
          - IDENTITY
          examples:
          - IDENTITY
        id:
          type: string
          description: The identity ID.
          examples:
          - 2c9180a46faadee4016fb4e018c20639
        name:
          type: string
          description: Human-readable display name of the identity.
          examples:
          - Thomas Edison
    IdentityProfile:
      type: object
      description: An identity profile defines the mapping between source account attributes and identity attributes and configures lifecycle states for identities.
      required:
      - name
      - authoritativeSource
      properties:
        id:
          type: string
          description: The identity profile ID.
          readOnly: true
          examples:
          - 2b838de9-db9b-abcf-e646-d4f274ad4238
        name:
          type: string
          description: The identity profile name.
          examples:
          - HR Employees
        description:
          type:
          - string
          - 'null'
          description: The identity profile description.
          examples:
          - My custom flat file profile
        owner:
          $ref: '#/components/schemas/OwnerReference'
        priority:
          type: integer
          format: int64
          description: The identity profile priority.
          examples:
          - 10
        authoritativeSource:
          $ref: '#/components/schemas/SourceReference'
        identityRefreshRequired:
          type: boolean
          default: false
          description: Set to true if an identity refresh is necessary, typically when a change has been made on the source.
          examples:
          - true
        identityCount:
          type: integer
          format: int32
          description: Number of identities belonging to the identity profile.
          readOnly: true
          examples:
          - 8
        hasTimeBasedAttr:
          type: boolean
          default: false
          description: Indicates the value of the requiresPeriodicRefresh attribute for the identity profile.
          examples:
          - true
        created:
          type: string
          format: date-time
          description: Date and time the profile was created.
          readOnly: true
          examples:
          - '2023-01-03T21:16:22.432Z'
        modified:
          type: string
          format: date-time
          description: Date and time the profile was last modified.
          readOnly: true
          examples:
          - '2023-01-05T18:40:35.772Z'
    JsonPatchOperation:
      type: object
      description: A JSON Patch operation as defined in RFC 6902.
      required:
      - op
      - path
      properties:
        op:
          type: string
          description: The operation to perform.
          enum:
          - add
          - remove
          - replace
          - move
          - copy
          - test
          examples:
          - replace
        path:
          type: string
          description: The JSON pointer path for the operation.
          examples:
          - /description
        value:
          description: The value for the operation (required for add, replace, test).
    IdentityAttribute:
      type: object
      description: A public identity attribute key-value pair.
      properties:
        key:
          type: string
          description: The attribute key.
          examples:
          - country
        name:
          type: string
          description: Human-readable display name of the attribute.
          examples:
          - Country
        value:
          type:
          - string
          - 'null'
          description: The attribute value.
          examples:
          - US
    PublicIdentity:
      type: object
      description: Details about a public identity.
      properties:
        id:
          type: string
          description: The identity ID.
          examples:
          - 2c9180857182305e0171993735622948
        name:
          type: string
          description: Human-readable display name of the identity.
          examples:
          - Alison Ferguso
        alias:
          type: string
          description: Alternate unique identifier for the identity.
          examples:
          - alison.ferguso
        email:
          type:
          - string
          - 'null'
          description: Email address of the identity.
          examples:
          - alison.ferguso@acme-solar.com
        status:
          type:
          - string
          - 'null'
          description: The lifecycle status for the identity.
          examples:
          - Active
        identityState:
          type:
          - string
          - 'null'
          description: The current state of the identity, which determines how Identity Security Cloud interacts with the identity. Active identities are included in identity picklists in Request Center, identity processing, and more. Inactive identities are excluded from these features.
          enum:
          - ACTIVE
          - INACTIVE_SHORT_TERM
          - INACTIVE_LONG_TERM
          - null
          examples:
          - ACTIVE
        manager:
          $ref: '#/components/schemas/IdentityReference'
        attributes:
          type: array
          description: The public identity attributes of the identity.
          items:
            $ref: '#/components/schemas/IdentityAttribute'
  parameters:
    Offset:
      name: offset
      in: query
      description: Offset into the full result set. Usually specified with limit to paginate through the results.
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    Count:
      name: count
      in: query
      description: If true, the total count of items in the full result set is included in the X-Total-Count response header. Only items in the current page are returned. Requesting a count can decrease performance.
      required: false
      schema:
        type: boolean
        default: false
    Limit:
      name: limit
      in: query
      description: Maximum number of results to return. Maximum value is 250.
      required: false
      schema:
        type: integer
        minimum: 0
        maximum: 250
        default: 250
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication. Use client credentials or authorization code flow to obtain access tokens.
      flows:
        clientCredentials:
          tokenUrl: https://{tenant}.api.identitynow.com/oauth/token
          scopes:
            idn:identity:read: Read identity information
            idn:identity-profile:read: Read identity profiles
            idn:identity-profile:manage: Manage identity profiles
            idn:access-profile:read: Read access profiles
            idn:access-profile:manage: Manage access profiles
            idn:entitlement:read: Read entitlements
            idn:sources:read: Read sources
            idn:role-unchecked:read: Read roles
            idn:role-unchecked:manage: Manage roles
            idn:certification:read: Read certifications
            idn:certification:manage: Manage certifications
        authorizationCode:
          authorizationUrl: https://{tenant}.identitynow.com/oauth/authorize
          tokenUrl: https://{tenant}.api.identitynow.com/oauth/token
          scopes:
            idn:identity:read: Read identity information
            idn:identity-profile:read: Read identity profiles
            idn:identity-profile:manage: Manage identity profiles
            idn:access-profile:read: Read access profiles
            idn:access-profile:manage: Manage access profiles
            idn:entitlement:read: Read entitlements
            idn:sources:read: Read sources
            idn:role-unchecked:read: Read roles
            idn:role-unchecked:manage: Manage roles
            idn:certification:read: Read certifications
            idn:certification:manage: Manage certifications
    personalAccessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Personal access token (PAT) authentication. Generate a PAT in Identity Security Cloud and use it as a bearer token.