Identity Security Cloud V2024 API (v2024)

Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.

Access Model Metadata

Use this API to create and manage metadata attributes for your Access Model. Access Model Metadata allows you to add contextual information to your ISC Access Model items using pre-defined metadata for risk, regulations, privacy levels, etc., or by creating your own metadata attributes to reflect the unique needs of your organization. This release of the API includes support for entitlement metadata. Support for role and access profile metadata will be introduced in a subsequent release.

Common usages for Access Model metadata include:

  • Organizing and categorizing access items to make it easier for your users to search for and find the access rights they want to request, certify, or manage.

  • Providing richer information about access that is being acted on to allow stakeholders to make better decisions when approving, certifying, or managing access rights.

  • Identifying access that may requires additional approval requirements or be subject to more frequent review.

List access model metadata attributes

Get a list of Access Model Metadata Attributes

Authorizations:
Personal Access TokenClient Credentials
query Parameters
filters
string
Example: filters=name eq "Privacy"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

key: eq

name: eq

type: eq

status: eq

objectTypes: eq

Supported composite operators are and, or

sorters
string <comma-separated>
Example: sorters=name,-key

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, key

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create access model metadata attribute

Create a new Access Model Metadata Attribute.

Authorizations:
Personal Access TokenClient Credentials
Request Body schema: application/json

Attribute to create

key
string

Technical name of the Attribute. This is unique and cannot be changed after creation.

name
string

The display name of the key.

multiselect
boolean
Default: false

Indicates whether the attribute can have multiple values.

status
string

The status of the Attribute.

type
string

The type of the Attribute. This can be either "custom" or "governance".

objectTypes
Array of strings or null

An array of object types this attributes values can be applied to. Possible values are "all" or "entitlement". Value "all" means this attribute can be used with all object types that are supported.

description
string

The description of the Attribute.

Array of objects or null (AttributeValueDTO)

Responses

Request samples

Content type
application/json
{
  • "key": "iscPrivacy",
  • "name": "Privacy",
  • "multiselect": false,
  • "status": "active",
  • "type": "governance",
  • "objectTypes": [
    ],
  • "description": "Specifies the level of privacy associated with an access item.",
  • "values": [
    ]
}

Response samples

Content type
application/json
{
  • "key": "iscPrivacy",
  • "name": "Privacy",
  • "multiselect": false,
  • "status": "active",
  • "type": "governance",
  • "objectTypes": [
    ],
  • "description": "Specifies the level of privacy associated with an access item.",
  • "values": [
    ]
}

Get access model metadata attribute

Get single Access Model Metadata Attribute

Authorizations:
Personal Access TokenClient Credentials
path Parameters
key
required
string
Example: iscPrivacy

Technical name of the Attribute.

Responses

Response samples

Content type
application/json
{
  • "key": "iscPrivacy",
  • "name": "Privacy",
  • "multiselect": false,
  • "status": "active",
  • "type": "governance",
  • "objectTypes": [
    ],
  • "description": "Specifies the level of privacy associated with an access item.",
  • "values": [
    ]
}

Update access model metadata attribute

Update an existing Access Model Metadata Attribute.
The following fields are patchable: name, description, multiselect, values

Authorizations:
Personal Access TokenClient Credentials
path Parameters
key
required
string
Example: iscPrivacy

Technical name of the Attribute.

Request Body schema: application/json-patch+json

JSON Patch array to apply

Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "key": "iscPrivacy",
  • "name": "Privacy",
  • "multiselect": false,
  • "status": "active",
  • "type": "governance",
  • "objectTypes": [
    ],
  • "description": "Specifies the level of privacy associated with an access item.",
  • "values": [
    ]
}

List access model metadata values

Get a list of Access Model Metadata Attribute Values

Authorizations:
Personal Access TokenClient Credentials
path Parameters
key
required
string
Example: iscPrivacy

Technical name of the Attribute.

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create access model metadata value

Create a new value for an existing Access Model Metadata Attribute.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
key
required
string
Example: iscPrivacy

Technical name of the Attribute.

Request Body schema: application/json

Attribute value to create

value
string

Technical name of the Attribute value. This is unique and cannot be changed after creation.

name
string

The display name of the Attribute value.

status
string

The status of the Attribute value.

Responses

Request samples

Content type
application/json
{
  • "value": "public",
  • "name": "Public",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "value": "public",
  • "name": "Public",
  • "status": "active"
}

Get access model metadata value

Get single Access Model Metadata Attribute Value

Authorizations:
Personal Access TokenClient Credentials
path Parameters
key
required
string
Example: iscPrivacy

Technical name of the Attribute.

value
required
string
Example: public

Technical name of the Attribute value.

Responses

Response samples

Content type
application/json
{
  • "value": "public",
  • "name": "Public",
  • "status": "active"
}

Update access model metadata value

Update an existing Access Model Metadata Attribute Value.
The following fields are patchable: name

Authorizations:
Personal Access TokenClient Credentials
path Parameters
key
required
string
Example: iscPrivacy

Technical name of the Attribute.

value
required
string
Example: public

Technical name of the Attribute value.

Request Body schema: application/json-patch+json

JSON Patch array to apply

Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "value": "public",
  • "name": "Public",
  • "status": "active"
}

Access Profiles

Use this API to implement and customize access profile functionality. With this functionality in place, administrators can create access profiles and configure them for use throughout Identity Security Cloud, enabling users to get the access they need quickly and securely.

Access profiles group entitlements, which represent access rights on sources.

For example, an Active Directory source in Identity Security Cloud can have multiple entitlements: the first, 'Employees,' may represent the access all employees have at the organization, and a second, 'Developers,' may represent the access all developers have at the organization.

An administrator can then create a broader set of access in the form of an access profile, 'AD Developers' grouping the 'Employees' entitlement with the 'Developers' entitlement.

When users only need Active Directory employee access, they can request access to the 'Employees' entitlement.

When users need both Active Directory employee and developer access, they can request access to the 'AD Developers' access profile.

Identity Security Cloud uses access profiles in many features, including the following:

  • Provisioning: When you use the Provisioning Service, lifecycle states and roles both grant access to users in the form of access profiles.

  • Certifications: You can approve or revoke access profiles in certification campaigns, just like entitlements.

  • Access Requests: You can assign access profiles to applications, and when a user requests access to the app associated with an access profile and someone approves the request, access is granted to both the application and its associated access profile.

  • Roles: You can group one or more access profiles into a role to quickly assign access items based on an identity's role.

In Identity Security Cloud, administrators can use the Access drop-down menu and select Access Profiles to view, configure, and delete existing access profiles, as well as create new ones. Administrators can enable and disable an access profile, and they can also make the following configurations:

  • Manage Entitlements: Manage the profile's access by adding and removing entitlements.

  • Access Requests: Configure access profiles to be requestable and establish an approval process for any requests that the access profile be granted or revoked. Do not configure an access profile to be requestable without first establishing a secure access request approval process for the access profile.

  • Multiple Account Options: Define the logic Identity Security Cloud uses to provision access to an identity with multiple accounts on the source.

Refer to Managing Access Profiles for more information about access profiles.

List access profiles

Get a list of access profiles.

Note: When you filter for access profiles that have the '+' symbol in their names, the response is blank.

Authorizations:
Personal Access Token
query Parameters
for-subadmin
string
Example: for-subadmin=8c190e6787aa4ed9a90bd9d5344523fb

Filters the returned list according to what is visible to the indicated ROLE_SUBADMIN or SOURCE_SUBADMIN identity. The value of the parameter is either an identity ID or the special value me, which is shorthand for the calling identity's ID.

If you specify an identity that isn't a subadmin, the API returns a 400 Bad Request error.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=name eq "SailPoint Support"

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

created: gt, ge, le

modified: gt, lt, ge, le

owner.id: eq, in

requestable: eq

source.id: eq, in

Supported composite operators are and, or

Filtering is not supported for access profiles and entitlements that have the '+' symbol in their names.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, created, modified

for-segment-ids
string <comma-separated>
Example: for-segment-ids=0b5c9f25-83c6-4762-9073-e38f7bb2ae26,2e8d8180-24bc-4d21-91c6-7affdb473b0d

Filters access profiles to only those assigned to the segment(s) with the specified IDs. If segmentation is currently unavailable, specifying this parameter results in an error.

include-unsegmented
boolean
Default: true

Indicates whether the response list should contain unsegmented access profiles. If for-segment-ids is absent or empty, specifying include-unsegmented as false results in an error.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create access profile

Create an access profile. A user with ROLE_SUBADMIN or SOURCE_SUBADMIN authority must be associated with the access profile's source. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles. However, any new access profiles as well as any updates to existing descriptions are limited to 2000 characters.

Note: To use this endpoint, you need all the listed scopes.

Authorizations:
Personal Access Token
Request Body schema: application/json
name
required
string

Access profile name.

description
string or null

Access profile description.

enabled
boolean
Default: false

Indicates whether the access profile is enabled. If it's enabled, you must include at least one entitlement.

required
object or null (OwnerReference)

Owner of the object.

required
object (AccessProfileSourceRef)
Array of objects or null (EntitlementRef)

List of entitlements associated with the access profile. If enabled is false, this can be empty. Otherwise, it must contain at least one entitlement.

requestable
boolean
Default: true

Indicates whether the access profile is requestable by access request. Currently, making an access profile non-requestable is only supported for customers enabled with the new Request Center. Otherwise, attempting to create an access profile with a value false in this field results in a 400 error.

object or null (Requestability)
object or null (Revocability)
segments
Array of strings or null

List of segment IDs, if any, that the access profile is assigned to.

object (AttributeDTOList)
object or null (ProvisioningCriteriaLevel1)

Defines matching criteria for an account to be provisioned with a specific access profile.

Array of objects or null (AdditionalOwnerRef)

List of additional owner references beyond the primary owner. Each entry may be an identity (IDENTITY) or a governance group (GOVERNANCE_GROUP).

Responses

Request samples

Content type
application/json
{
  • "name": "Employee-database-read-write",
  • "description": "Collection of entitlements to read/write the employee database",
  • "enabled": true,
  • "owner": {
    },
  • "source": {
    },
  • "entitlements": [
    ],
  • "requestable": true,
  • "accessRequestConfig": {
    },
  • "revocationRequestConfig": {
    },
  • "segments": [
    ],
  • "accessModelMetadata": {
    },
  • "provisioningCriteria": {
    },
  • "additionalOwners": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "2c91808a7190d06e01719938fcd20792",
  • "name": "Employee-database-read-write",
  • "description": "Collection of entitlements to read/write the employee database",
  • "created": "2021-03-01T22:32:58.104Z",
  • "modified": "2021-03-02T20:22:28.104Z",
  • "enabled": true,
  • "owner": {
    },
  • "source": {
    },
  • "entitlements": [
    ],
  • "requestable": true,
  • "accessRequestConfig": {
    },
  • "revocationRequestConfig": {
    },
  • "segments": [
    ],
  • "accessModelMetadata": {
    },
  • "provisioningCriteria": {
    },
  • "additionalOwners": [
    ]
}

Get an access profile

This API returns an Access Profile by its ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c9180837ca6693d017ca8d097500149

ID of the Access Profile

Responses

Response samples

Content type
application/json
{
  • "id": "2c91808a7190d06e01719938fcd20792",
  • "name": "Employee-database-read-write",
  • "description": "Collection of entitlements to read/write the employee database",
  • "created": "2021-03-01T22:32:58.104Z",
  • "modified": "2021-03-02T20:22:28.104Z",
  • "enabled": true,
  • "owner": {
    },
  • "source": {
    },
  • "entitlements": [
    ],
  • "requestable": true,
  • "accessRequestConfig": {
    },
  • "revocationRequestConfig": {
    },
  • "segments": [
    ],
  • "accessModelMetadata": {
    },
  • "provisioningCriteria": {
    },
  • "additionalOwners": [
    ]
}

Patch a specified access profile

This API updates an existing Access Profile. The following fields are patchable:

name

description

enabled

owner

additionalOwners

requestable

accessRequestConfig

revokeRequestConfig

segments

entitlements

provisioningCriteria

source (must be updated with entitlements belonging to new source in the same API call)

If you need to change the source of the access profile, you can do so only if you update the entitlements in the same API call. The new entitlements can only come from the target source that you want to change to. Look for the example "Replace Source" in the examples dropdown.

A user with SOURCE_SUBADMIN may only use this API to patch Access Profiles which are associated with Sources they are able to administer.

The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing access profiles, however, any new access profiles as well as any updates to existing descriptions will be limited to 2000 characters.

You can only add or replace entitlements that exist on the source that the access profile is attached to. You can use the list entitlements endpoint with the filters query parameter to get a list of available entitlements on the access profile's source.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121919ecca

ID of the Access Profile to patch

Request Body schema: application/json-patch+json
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
Example

Add one or more entitlements to the end of the list

[
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "2c91808a7190d06e01719938fcd20792",
  • "name": "Employee-database-read-write",
  • "description": "Collection of entitlements to read/write the employee database",
  • "created": "2021-03-01T22:32:58.104Z",
  • "modified": "2021-03-02T20:22:28.104Z",
  • "enabled": true,
  • "owner": {
    },
  • "source": {
    },
  • "entitlements": [
    ],
  • "requestable": true,
  • "accessRequestConfig": {
    },
  • "revocationRequestConfig": {
    },
  • "segments": [
    ],
  • "accessModelMetadata": {
    },
  • "provisioningCriteria": {
    },
  • "additionalOwners": [
    ]
}

Delete the specified access profile

This API deletes an existing Access Profile.

The Access Profile must not be in use, for example, Access Profile can not be deleted if they belong to an Application, Life Cycle State or a Role. If it is, a 400 error is returned.

A user with SOURCE_SUBADMIN must be able to administer the Source associated with the Access Profile.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121919ecca

ID of the Access Profile to delete

Responses

Response samples

Content type
application/json

Returned when an access profile cannot be deleted as it's being used

{
  • "detailCode": "400.2.1.0 Object in use by another",
  • "trackingId": "c9c1033c55b84ebc9e93e926dcf8b8b3",
  • "messages": [
    ]
}

Delete access profile(s)

This endpoint initiates a bulk deletion of one or more access profiles. When the request is successful, the endpoint returns the bulk delete's task result ID. To follow the task, you can use Get Task Status by ID, which will return the task result's status and information. This endpoint can only bulk delete up to a limit of 50 access profiles per request. By default, if any of the indicated access profiles are in use, no deletions will be performed and the inUse field of the response indicates the usages that must be removed first. If the request field bestEffortOnly is true, however, usages are reported in the inUse response field but all other indicated access profiles will be deleted. A SOURCE_SUBADMIN user can only use this endpoint to delete access profiles associated with sources they're able to administer.

Authorizations:
Personal Access Token
Request Body schema: application/json
accessProfileIds
Array of strings

List of IDs of Access Profiles to be deleted.

bestEffortOnly
boolean

If true, silently skip over any of the specified Access Profiles if they cannot be deleted because they are in use. If false, no deletions will be attempted if any of the Access Profiles are in use.

Responses

Request samples

Content type
application/json
{
  • "bestEffortOnly": true,
  • "accessProfileIds": [
    ]
}

Response samples

Content type
application/json
{
  • "pending": [ ],
  • "inUse": [
    ]
}

List access profile's entitlements

Use this API to get a list of an access profile's entitlements. A SOURCE_SUBADMIN user must have access to the source associated with the specified access profile.

Note: When you filter for access profiles that have the '+' symbol in their names, the response is blank.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121919ecca

ID of the access profile containing the entitlements.

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=attribute eq "memberOf"

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

attribute: eq, sw

value: eq, sw

created: gt, lt, ge, le

modified: gt, lt, ge, le

owner.id: eq, in

source.id: eq, in

Filtering is not supported for access profiles and entitlements that have the '+' symbol in their names.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, attribute, value, created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update access profile(s) requestable field.

This API initiates a bulk update of field requestable for one or more Access Profiles.

If any of the indicated Access Profiles is exists in Organization,then those Access Profiles will be added in updated list of the response.Requestable field of these Access Profiles marked as true or false.

If any of the indicated Access Profiles is not does not exists in Organization,then those Access Profiles will be added in notFound list of the response. Access Profiles marked as notFound will not be updated. A SOURCE_SUBADMIN may only use this API to update Access Profiles which are associated with Sources they are able to administer.

Authorizations:
Personal Access Token
header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json
Array
id
string

Access Profile ID.

requestable
boolean

Access Profile is requestable or not.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Access Request Approvals

Use this API to implement and customize access request approval functionality. With this functionality in place, administrators can delegate qualified users to review users' requests for access or managers' requests to revoke team members' access to applications, entitlements, or roles.
This enables more qualified users to review access requests and the others to spend their time on other tasks.

In Identity Security Cloud, users can request access to applications, entitlements, and roles, and managers can request that team members' access be revoked.
For applications and entitlements, administrators can set access profiles to require approval from the access profile owner, the application owner, the source owner, the requesting user's manager, or a governance group for access to be granted or revoked.
For roles, administrators can also set roles to allow access requests and require approval from the role owner, the requesting user's manager, or a governance group for access to be granted or revoked.
If the administrator designates a governance group as the required approver, any governance group member can approve the requests.

When a user submits an access request, Identity Security Cloud sends the first required approver in the queue an email notification, based on the access request configuration's approval and reminder escalation configuration.

In Approvals in Identity Security Cloud, required approvers can view pending access requests under the Requested tab and approve or deny them, or the approvers can reassign the requests to different reviewers for approval.
If the required approver approves the request and is the only reviewer required, Identity Security Cloud grants or revokes access, based on the request.
If multiple reviewers are required, Identity Security Cloud sends the request to the next reviewer in the queue, based on the access request configuration's approval reminder and escalation configuration.
The required approver can then view any completed access requests under the Reviewed tab.

Refer to Access Requests for more information about access request approvals.

Pending access request approvals list

This endpoint returns a list of pending approvals. See "owner-id" query parameter below for authorization info.

Authorizations:
Personal Access Token
query Parameters
owner-id
string
Example: owner-id=2c91808568c529c60168cca6f90c1313

If present, the value returns only pending approvals for the specified identity.

  • ORG_ADMIN users can call this with any identity ID value.
  • ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used.
  • Non-ORG_ADMIN users can only specify me or pass their own identity ID value.
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=id eq "2c91808568c529c60168cca6f90c1313"

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

requestedFor.id: eq, in

modified: gt, lt, ge, le, eq, in

accessRequestId: eq, in

created: gt, lt, ge, le, eq, in

sorters
string <comma-separated>
Example: sorters=modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Completed access request approvals list

This endpoint returns list of completed approvals. See owner-id query parameter below for authorization info.

Authorizations:
Personal Access Token
query Parameters
owner-id
string
Example: owner-id=2c91808568c529c60168cca6f90c1313

If present, the value returns only completed approvals for the specified identity.

  • ORG_ADMIN users can call this with any identity ID value.
  • ORG_ADMIN users can also fetch all the approvals in the org, when owner-id is not used.
  • Non-ORG_ADMIN users can only specify me or pass their own identity ID value.
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=id eq "2c91808568c529c60168cca6f90c1313"

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, ge, gt, le, lt, ne, isnull, sw

requestedFor.id: eq, in, ge, gt, le, lt, ne, isnull, sw

modified: gt, lt, ge, le, eq, in, ne, sw

sorters
string <comma-separated>
Example: sorters=modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Approve access request approval

Use this endpoint to approve an access request approval. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.

Authorizations:
Personal Access Token
path Parameters
approvalId
required
string
Example: 2c91808b7294bea301729568c68c002e

Approval ID.

Request Body schema: application/json

Reviewer's comment.

comment
string or null

Comment content.

created
string <date-time>

Date and time comment was created.

Responses

Request samples

Content type
application/json
{
  • "comment": "This is a comment.",
  • "created": "2017-07-11T18:45:37.098Z"
}

Response samples

Content type
application/json
{ }

Reject access request approval

Use this API to reject an access request approval. Only the owner of the approval and admin users are allowed to perform this action.

Authorizations:
Personal Access Token
path Parameters
approvalId
required
string
Example: 2c91808b7294bea301729568c68c002e

Approval ID.

Request Body schema: application/json

Reviewer's comment.

comment
string or null

Comment content.

created
string <date-time>

Date and time comment was created.

Responses

Request samples

Content type
application/json
{
  • "comment": "This is a comment.",
  • "created": "2017-07-11T18:45:37.098Z"
}

Response samples

Content type
application/json
{ }

Forward access request approval

Use this API to forward an access request approval to a new owner. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action. Only the owner of the approval and ORG_ADMIN users are allowed to perform this action.

Authorizations:
Personal Access Token
path Parameters
approvalId
required
string
Example: 2c91808b7294bea301729568c68c002e

Approval ID.

Request Body schema: application/json

Information about the forwarded approval.

newOwnerId
required
string [ 1 .. 255 ] characters

The Id of the new owner

comment
required
string [ 1 .. 255 ] characters

The comment provided by the forwarder

Responses

Request samples

Content type
application/json
{
  • "newOwnerId": "2c91808568c529c60168cca6f90c1314",
  • "comment": "2c91808568c529c60168cca6f90c1313"
}

Response samples

Content type
application/json
{ }

Get access requests approvals number

Use this API to return the number of pending, approved and rejected access requests approvals. See the "owner-id" query parameter for authorization information. info.

Authorizations:
Personal Access Token
query Parameters
owner-id
string
Example: owner-id=2c91808568c529c60168cca6f90c1313

The ID of the owner or approver identity of the approvals. If present, the value returns approval summary for the specified identity.

  • ORG_ADMIN users can call this with any identity ID value.
  • ORG_ADMIN user can also fetch all the approvals in the org, when owner-id is not used.
  • Non ORG_ADMIN users can only specify me or pass their own identity ID value.
from-date
string
Example: from-date=from-date=2020-03-19T19:59:11Z

This is the date and time the results will be shown from. It must be in a valid ISO-8601 format.

Responses

Response samples

Content type
application/json
{
  • "pending": 0,
  • "approved": 0,
  • "rejected": 0
}

Access request approvers

This API endpoint returns the list of approvers for the given access request id.

Authorizations:
Personal Access Token
path Parameters
accessRequestId
required
string
Example: 2c91808568c529c60168cca6f90c1313

Access Request ID.

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=100

Max number of results to return.

offset
integer <int32> >= 0
Example: offset=10

Offset into the full result set. Usually specified with limit to paginate through the results. Defaults to 0 if not specified.

count
boolean
Default: false

If this is true, the X-Total-Count response header populates with the number of results that would be returned if limit and offset were ignored.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Access Request Identity Metrics

Use this API to implement access request identity metrics functionality. With this functionality in place, access request reviewers can see relevant details about the requested access item and associated source activity. This allows reviewers to see how many of the identities who share a manager with the access requester have this same type of access and how many of them have had activity in the related source. This additional context about whether the access has been granted before and how often it has been used can help those approving access requests make more informed decisions.

Return access request identity metrics

Use this API to return information access metrics.

Authorizations:
Personal Access Token
path Parameters
identityId
required
string
Example: 7025c863-c270-4ba6-beea-edf3cb091573

Manager's identity ID.

requestedObjectId
required
string
Example: 2db501be-f0fb-4cc5-a695-334133c52891

Requested access item's ID.

type
required
string
Enum: "ENTITLEMENT" "ROLE" "ACCESS_PROFILE"
Example: ENTITLEMENT

Requested access item's type.

Responses

Response samples

Content type
application/json
{ }

Access Requests

Use this API to implement and customize access request functionality. With this functionality in place, users can request access to applications, entitlements, or roles, and managers can request that team members' access be revoked. This allows users to get access to the tools they need quickly and securely, and it allows managers to take away access to those tools.

Identity Security Cloud's Access Request service allows end users to request access that requires approval before it can be granted to users and enables qualified users to review those requests and approve or deny them.

In the Request Center in Identity Security Cloud, users can view available applications, roles, and entitlements and request access to them. If the requested tools requires approval, the requests appear as 'Pending' under the My Requests tab until the required approver approves, rejects, or cancels them.

Users can use My Requests to track and/or cancel the requests.

In My Team on the Identity Security Cloud Home, managers can submit requests to revoke their team members' access. They can use the My Requests tab under Request Center to track and/or cancel the requests.

Refer to Requesting Access for more information about access requests.

Submit access request

Use this API to submit an access request in Identity Security Cloud (ISC), where it follows any ISC approval processes.

:::info The ability to request access using this API is constrained by the Access Request Segments defined in the API token's user context. :::

Access requests are processed asynchronously by ISC. A successful response from this endpoint means that the request has been submitted to ISC and is queued for processing. Because this endpoint is asynchronous, it does not return an error if you submit duplicate access requests in quick succession or submit an access request for access that is already in progress, approved, or rejected.

It is best practice to check for any existing access requests that reference the same access items before submitting a new access request. This can be accomplished by using the List Access Request Status or the Pending Access Request Approvals APIs. You can also use the Search API to check the existing access items an identity has before submitting an access request to ensure that you aren't requesting access that is already granted. If you use this API to request access that an identity already has, without changing the account details or end date information from the existing assignment, the API will cancel the request as a duplicate.

There are two types of access request:

GRANT_ACCESS

  • Can be requested for multiple identities in a single request.
  • Supports self request and request on behalf of other users. Refer to the Get Access Request Configuration endpoint for request configuration options.
  • Allows any authenticated token (except API) to call this endpoint to request to grant access to themselves. Depending on the configuration, a user can request access for others.
  • Roles, access profiles and entitlements can be requested.
  • You can specify a startDate to set or alter a sunrise date-time on an assignment. The startDate must be a future date-time, in the UTC timezone. Additionally, if the user already has the access assigned with a sunrise date and its yet to be provisioned, you can also submit a request without a startDate to request immediate provisioning after approval.
  • If a startDate is specified, then the requested role, access profile, or entitlement will be provisioned on that date and time.
  • You can specify a removeDate to set or alter a sunset date-time on an assignment. The removeDate must be a future date-time, in the UTC timezone. Additionally, if the user already has the access assigned with a sunset date, you can also submit a request without a removeDate to request removal of the sunset date and time.
  • If a removeDate is specified, then the requested role, access profile, or entitlement will be removed on that date and time.
  • Now supports an alternate field 'requestedForWithRequestedItems' for users to specify account selections while requesting items where they have more than one account on the source.

:::caution

If any entitlements are being requested, then the maximum number of entitlements that can be requested is 25, and the maximum number of identities that can be requested for is 10. If you exceed these limits, the request will fail with a 400 error. If you are not requesting any entitlements, then there are no limits.

:::

REVOKE_ACCESS

  • Can only be requested for a single identity at a time.
  • You cannot use an access request to revoke access from an identity if that access has been granted by role membership or by birthright provisioning.
  • Does not support self request. Only manager can request to revoke access for their directly managed employees.
  • If a removeDate is specified, then the requested role, access profile, or entitlement will be removed on that date and time.
  • Roles, access profiles, and entitlements can be requested for revocation.
  • Revoke requests for entitlements are limited to 1 entitlement per access request currently.
  • You cannot specify a 'startDate' in a REVOKE_ACCESS request, as startDate is only applicable for GRANT_ACCESS requests to indicate when the access should be provisioned, and it does not make sense in the context of revoking access.
  • You can specify a removeDate to add or alter a sunset date and time on an assignment. The removeDate must be a future date-time, in the UTC timezone. If the user already has the access assigned with a sunset date and time, the removeDate must be a date-time earlier than the existing sunset date and time.
  • Allows a manager to request to revoke access for direct employees. A user with ORG_ADMIN authority can also request to revoke access from anyone.
  • Now supports REVOKE_ACCESS requests for identities with multiple accounts on a single source, with the help of 'assignmentId' and 'nativeIdentity' fields. These fields should be used within the 'requestedItems' section for the revoke requests.
  • Usage of 'requestedForWithRequestedItems' field is not supported for revoke requests.
Authorizations:
Personal Access Token
Request Body schema: application/json
requestedFor
required
Array of strings

A list of Identity IDs for whom the Access is requested. If it's a Revoke request, there can only be one Identity ID.

requestType
string or null (AccessRequestType)
Enum: "GRANT_ACCESS" "REVOKE_ACCESS" "MODIFY_ACCESS" null

Access request type. Defaults to GRANT_ACCESS. REVOKE_ACCESS type can only have a single Identity ID in the requestedFor field. MODIFY_ACCESS type is used for updating access expiration dates or other access modifications.

required
Array of objects (Access Request Item) non-empty
object

Arbitrary key-value pairs. They will never be processed by the IdentityNow system but will be returned on associated APIs such as /account-activities.

Array of objects or null (RequestedForDtoRef)

Additional submit data structure with requestedFor containing requestedItems allowing distinction for each request item and Identity.

  • Can only be used when 'requestedFor' and 'requestedItems' are not separately provided
  • Adds ability to specify which account the user wants the access on, in case they have multiple accounts on a source
  • Allows the ability to request items with different start dates
  • Allows the ability to request items with different remove dates
  • Also allows different combinations of request items and identities in the same request
  • Only for use in GRANT_ACCESS type requests

Responses

Request samples

Content type
application/json
{
  • "requestedFor": "2c918084660f45d6016617daa9210584",
  • "requestType": "GRANT_ACCESS",
  • "requestedItems": [
    ],
  • "clientMetadata": {
    },
  • "requestedForWithRequestedItems": [
    ]
}

Response samples

Content type
application/json
{
  • "newRequests": [
    ],
  • "existingRequests": [
    ]
}

Cancel access request

This API endpoint cancels a pending access request. An access request can be cancelled only if it has not passed the approval step. In addition to users with ORG_ADMIN, any user who originally submitted the access request may cancel it.

Authorizations:
Personal Access Token
Request Body schema: application/json
accountActivityId
required
string

This refers to the identityRequestId. To successfully cancel an access request, you must provide the identityRequestId.

comment
required
string

Reason for cancelling the pending access request.

Responses

Request samples

Content type
application/json
{
  • "accountActivityId": "2c91808568c529c60168cca6f90c1313",
  • "comment": "I requested this role by mistake."
}

Response samples

Content type
application/json
{ }

Close access request

This endpoint closes access requests that are stuck in a pending state. It can be used throughout a request's lifecycle even after the approval state, unlike the Cancel Access Request endpoint.

To find pending access requests with the UI, navigate to Search and use this query: status: Pending AND "Access Request". Use the Column Chooser to select 'Tracking Number', and use the 'Download' button to export a CSV containing the tracking numbers.

To find pending access requests with the API, use the List Account Activities endpoint.

Input the IDs from either source.

To track the status of endpoint requests, navigate to Search and use this query: name:"Close Identity Requests". Search will include "Close Identity Requests Started" audits when requests are initiated and "Close Identity Requests Completed" audits when requests are completed. The completion audit will list the identity request IDs that finished in error.

This API triggers the Provisioning Completed event trigger for each access request that is closed.

Authorizations:
Personal Access Token
Request Body schema: application/json
accessRequestIds
required
Array of strings

Access Request IDs for the requests to be closed. Accepts 1-500 Identity Request IDs per request.

message
string
Default: "The IdentityNow Administrator manually closed this request."

Reason for closing the access request. Displayed under Warnings in IdentityNow.

executionStatus
string
Default: "Terminated"
Enum: "Terminated" "Completed"

The request's provisioning status. Displayed as Stage in IdentityNow.

completionStatus
string
Default: "Failure"
Enum: "Success" "Incomplete" "Failure"

The request's overall status. Displayed as Status in IdentityNow.

Responses

Request samples

Content type
application/json
{
  • "accessRequestIds": [
    ],
  • "executionStatus": "Terminated",
  • "completionStatus": "Failure",
  • "message": "The IdentityNow Administrator manually closed this request."
}

Response samples

Content type
application/json
{ }

Bulk cancel access request

This API endpoint allows cancelling pending access requests in bulk. Maximum of 50 access request ids can be provided in the request for one single invocation. Only ORG_ADMIN or users with rights "idn:access-request-administration:write" can cancel the access requests in bulk.

Authorizations:
Personal Access Token
Request Body schema: application/json
accessRequestIds
required
Array of strings

List of access requests ids to cancel the pending requests

comment
required
string

Reason for cancelling the pending access request.

Responses

Request samples

Content type
application/json
{
  • "accessRequestIds": [
    ],
  • "comment": "I requested this role by mistake."
}

Response samples

Content type
application/json
{ }

Get accounts selections for identity

Use this API to fetch account information for an identity against the items in an access request.

Used to fetch accountSelection for the AccessRequest prior to submitting for async processing.

Authorizations:
Personal Access Token
header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json
requestedFor
required
Array of strings

A list of Identity IDs for whom the Access is requested.

requestType
string or null (AccessRequestType)
Enum: "GRANT_ACCESS" "REVOKE_ACCESS" "MODIFY_ACCESS" null

Access request type. Defaults to GRANT_ACCESS. REVOKE_ACCESS type can only have a single Identity ID in the requestedFor field. MODIFY_ACCESS type is used for updating access expiration dates or other access modifications.

required
Array of objects (Access Request Item) [ 1 .. 25 ] items
object

Arbitrary key-value pairs. They will never be processed by the IdentityNow system but will be returned on associated APIs such as /account-activities.

Responses

Request samples

Content type
application/json
{
  • "requestedFor": "2c918084660f45d6016617daa9210584",
  • "requestType": "GRANT_ACCESS",
  • "requestedItems": [
    ],
  • "clientMetadata": {
    }
}

Response samples

Content type
application/json
{
  • "identities": [
    ]
}

Get access request configuration Deprecated

This endpoint returns the current access-request configuration.

Authorizations:
Personal Access Token

Responses

Response samples

Content type
application/json
{
  • "approvalsMustBeExternal": true,
  • "autoApprovalEnabled": true,
  • "reauthorizationEnabled": true,
  • "requestOnBehalfOfConfig": {
    },
  • "approvalReminderAndEscalationConfig": {
    },
  • "entitlementRequestConfig": {
    }
}

Update access request configuration Deprecated

This endpoint replaces the current access-request configuration.

Authorizations:
Personal Access Token
Request Body schema: application/json
approvalsMustBeExternal
boolean
Default: false

If this is true, approvals must be processed by an external system. Also, if this is true, it blocks Request Center access requests and returns an error for any user who isn't an org admin.

autoApprovalEnabled
boolean
Default: false

If this is true and the requester and reviewer are the same, the request is automatically approved.

reauthorizationEnabled
boolean
Default: false

If this is true, reauthorization will be enforced for appropriately configured access items. Enablement of this feature is currently in a limited state.

object (Request On Behalf Of Config)
object (Approval Reminder And Escalation Config)

Configuration for approval reminder and escalation behavior. Important: Modifying this object will override the sp-approval service's reminderConfig and escalationConfig settings. Changes made here take precedence over any configuration set directly in the sp-approval service.

object (Entitlement Request Config)

Responses

Request samples

Content type
application/json
{
  • "approvalsMustBeExternal": true,
  • "autoApprovalEnabled": true,
  • "reauthorizationEnabled": true,
  • "requestOnBehalfOfConfig": {
    },
  • "approvalReminderAndEscalationConfig": {
    },
  • "entitlementRequestConfig": {
    }
}

Response samples

Content type
application/json
{
  • "approvalsMustBeExternal": true,
  • "autoApprovalEnabled": true,
  • "reauthorizationEnabled": true,
  • "requestOnBehalfOfConfig": {
    },
  • "approvalReminderAndEscalationConfig": {
    },
  • "entitlementRequestConfig": {
    }
}

Access request status

Use this API to return a list of access request statuses based on the specified query parameters. If an access request was made for access that an identity already has, the API ignores the access request. These ignored requests do not display in the list of access request statuses. Any user with any user level can get the status of their own access requests. A user with ORG_ADMIN is required to call this API to get a list of statuses for other users.

Authorizations:
Personal Access Token
query Parameters
requested-for
string
Example: requested-for=2c9180877b2b6ea4017b2c545f971429

Filter the results by the identity the requests were made for. me indicates the current user. Mutually exclusive with regarding-identity.

requested-by
string
Example: requested-by=2c9180877b2b6ea4017b2c545f971429

Filter the results by the identity who made the requests. me indicates the current user. Mutually exclusive with regarding-identity.

regarding-identity
string
Example: regarding-identity=2c9180877b2b6ea4017b2c545f971429

Filter the results by the specified identity who is either the requester or target of the requests. me indicates the current user. Mutually exclusive with requested-for and requested-by.

assigned-to
string
Example: assigned-to=2c9180877b2b6ea4017b2c545f971429

Filter the results by the specified identity who is the owner of the Identity Request Work Item. me indicates the current user.

count
boolean
Default: false

If this is true, the X-Total-Count response header populates with the number of results that would be returned if limit and offset were ignored.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=100

Max number of results to return.

offset
integer <int32> >= 0
Example: offset=10

Offset into the full result set. Usually specified with limit to paginate through the results. Defaults to 0 if not specified.

filters
string
Example: filters=accountActivityItemId eq "2c918086771c86df0177401efcdf54c0"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

accessRequestId: eq, ge, gt, le, lt, ne, sw

accountActivityItemId: eq, in, ge, gt, le, ne, sw

created: eq, ge, gt, le, lt, ne

sorters
string <comma-separated>
Example: sorters=created

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: created, modified, accountActivityItemId, name

request-state
string
Example: request-state=request-state=EXECUTING

Filter the results by the state of the request. The only valid value is EXECUTING.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Access request status for administrators

Use this API to get access request statuses of all the access requests in the org based on the specified query parameters. Any user with user level ORG_ADMIN or scope idn:access-request-administration:read can access this endpoint to get the access request statuses

Authorizations:
Personal Access Token
query Parameters
requested-for
string
Example: requested-for=2c9180877b2b6ea4017b2c545f971429

Filter the results by the identity the requests were made for. me indicates the current user. Mutually exclusive with regarding-identity.

requested-by
string
Example: requested-by=2c9180877b2b6ea4017b2c545f971429

Filter the results by the identity who made the requests. me indicates the current user. Mutually exclusive with regarding-identity.

regarding-identity
string
Example: regarding-identity=2c9180877b2b6ea4017b2c545f971429

Filter the results by the specified identity who is either the requester or target of the requests. me indicates the current user. Mutually exclusive with requested-for and requested-by.

assigned-to
string
Example: assigned-to=2c9180877b2b6ea4017b2c545f971429

Filter the results by the specified identity who is the owner of the Identity Request Work Item. me indicates the current user.

count
boolean
Default: false

If this is true, the X-Total-Count response header populates with the number of results that would be returned if limit and offset were ignored.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=100

Max number of results to return.

offset
integer <int32> >= 0
Example: offset=10

Offset into the full result set. Usually specified with limit to paginate through the results. Defaults to 0 if not specified.

filters
string
Example: filters=accountActivityItemId eq "2c918086771c86df0177401efcdf54c0"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

accountActivityItemId: eq, in, ge, gt, le, lt, ne, isnull, sw

accessRequestId: in, eq, ne, ge, gt, le, lt, sw

status: in, eq, ne

created: eq, in, ge, gt, le, lt, ne, isnull, sw

sorters
string <comma-separated>
Example: sorters=created

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: created, modified, accountActivityItemId, name, accessRequestId

request-state
string
Example: request-state=request-state=EXECUTING

Filter the results by the state of the request. The only valid value is EXECUTING.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bulk approve access request

This API endpoint allows approving pending access requests in bulk. Maximum of 50 approval ids can be provided in the request for one single invocation. ORG_ADMIN or users with rights "idn:access-request-administration:write" can approve the access requests in bulk.

Authorizations:
Personal Access Token
Request Body schema: application/json
approvalIds
required
Array of strings

List of approval ids to approve the pending requests

comment
required
string

Reason for approving the pending access request.

Responses

Request samples

Content type
application/json
{
  • "accessRequestIds": [
    ],
  • "comment": "I approve these request items"
}

Response samples

Content type
application/json
{ }

Identity entitlement details

Use this API to return the details for a entitlement on an identity including specific data relating to remove date and the ability to revoke the identity.

Authorizations:
Personal Access Token
path Parameters
identityId
required
string
Example: 7025c863c2704ba6beeaedf3cb091573

The identity ID.

entitlementId
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The entitlement ID

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "identityId": "5928c61f-3f2e-417a-8d65-f76451e2050a",
  • "entitlement": {
    },
  • "sourceId": "b56728da-a24d-4177-a207-2bc4d42cba27",
  • "accountTargets": [
    ]
}

Account Activities

Use this API to implement account activity tracking functionality. With this functionality in place, users can track source account activity in Identity Security Cloud, which greatly improves traceability in the system.

An account activity refers to a log of each action performed on a source account. This is useful for auditing the changes performed on an account throughout its life. In Identity Security Cloud's Search, users can search for account activities and select the activity's row to get an overview of the activity's account action and view its progress, its involved sources, and its most basic metadata, such as the identity requesting the option and the recipient.

Account activity includes most actions Identity Security Cloud completes on source accounts. Users can search in Identity Security Cloud for the following account action types:

  • Access Request: These include any access requests the source account is involved in.

  • Account Attribute Updates: These include updates to a single attribute on an account on a source.

  • Account State Update: These include locking or unlocking actions on an account on a source.

  • Certification: These include actions removing an entitlement from an account on a source as a result of the entitlement's revocation during a certification.

  • Cloud Automated Lifecyclestate: These include automated lifecycle state changes that result in a source account's correlated identity being assigned to a different lifecycle state. Identity Security Cloud replaces the Lifecyclestate variable with the name of the lifecycle state it has moved the account's identity to.

  • Identity Attribute Update: These include updates to a source account's correlated identity attributes as the result of a provisioning action. When you update an identity attribute that also updates an identity's lifecycle state, the cloud automated Lifecyclestate event also displays. Account Activity does not include attribute updates that occur as a result of aggregation.

  • Identity Refresh: These include correlated identity refreshes that occur for an account on a source whenever the account's correlated identity profile gets a new role or updates. These also include refreshes that occur whenever Identity Security Cloud assigns an application to the account's correlated identity based on the application's being assigned to All Users From Source or Specific Users From Source.

  • Lifecycle State Refresh: These include the actions that took place when a lifecycle state changed. This event only occurs after a cloud automated Lifecyclestate change or a lifecycle state change.

  • Lifecycle State Change: These include the account activities that result from an identity's manual assignment to a null lifecycle state.

  • Password Change: These include password changes on sources.

Refer to Account Activity for more information about account activities.

List account activities

This gets a collection of account activities that satisfy the given query parameters.

Authorizations:
Personal Access Token
query Parameters
requested-for
string
Example: requested-for=2c91808568c529c60168cca6f90c1313

The identity that the activity was requested for. me indicates the current user. Mutually exclusive with regarding-identity.

requested-by
string
Example: requested-by=2c91808568c529c60168cca6f90c1313

The identity that requested the activity. me indicates the current user. Mutually exclusive with regarding-identity.

regarding-identity
string
Example: regarding-identity=2c91808568c529c60168cca6f90c1313

The specified identity will be either the requester or target of the account activity. me indicates the current user. Mutually exclusive with requested-for and requested-by.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=type eq "Identity Refresh"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

type: eq, in, ge, le, lt, ne, isnull, sw

created: gt, lt, ge, le, eq, in, ne, isnull, sw

modified: gt, lt, ge, le, eq, in, ne, isnull, sw

sorters
string <comma-separated>
Example: sorters=created

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: type, created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an account activity

This gets a single account activity by its id.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The account activity id

Responses

Response samples

Content type
application/json
{
  • "id": "2c9180835d2e5168015d32f890ca1581",
  • "name": "2c9180835d2e5168015d32f890ca1581",
  • "created": "2017-07-11T18:45:37.098Z",
  • "modified": "2018-06-25T20:22:28.104Z",
  • "completed": "2018-10-19T13:49:37.385Z",
  • "completionStatus": "SUCCESS",
  • "type": "appRequest",
  • "requesterIdentitySummary": {
    },
  • "targetIdentitySummary": {
    },
  • "errors": [
    ],
  • "warnings": [
    ],
  • "items": [
    ],
  • "executionStatus": "COMPLETED",
  • "clientMetadata": {
    }
}

Account Aggregations

Use this API to implement account aggregation progress tracking functionality. With this functionality in place, administrators can view in-progress account aggregations, their statuses, and their relevant details.

An account aggregation refers to the process Identity Security Cloud uses to gather and load account data from a source into Identity Security Cloud.

Whenever Identity Security Cloud is in the process of aggregating a source, it adds an entry to the Aggregation Activity Log, along with its relevant details. To view aggregation activity, administrators can select the Connections drop-down menu, select Sources, and select the relevant source, select its Import Data tab, and select Account Aggregation. In Account Aggregation, administrators can view the account aggregations' statuses and details in the Account Activity Log.

Refer to Loading Account Data for more information about account aggregations.

In-progress account aggregation status

This API returns the status of an in-progress account aggregation, along with the total number of NEW, CHANGED and DELETED accounts found since the previous aggregation, and the number of those accounts that have been processed so far.

Accounts that have not changed since the previous aggregation are not included in totalAccounts and processedAccounts counts returned by this API. This is distinct from Accounts Scanned shown in the Aggregation UI, which indicates total accounts scanned regardless of whether they changed or not.

Since this endpoint reports on the status of an in-progress account aggregation, totalAccounts and processedAccounts may change between calls to this endpoint.

Only available up to an hour after the aggregation completes. May respond with 404 Not Found after that. required to call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808477a6b0c60177a81146b8110b

The account aggregation id

Responses

Response samples

Content type
application/json
{
  • "start": "2021-01-31T14:30:05.104Z",
  • "status": "ACCOUNTS_COLLECTED",
  • "totalAccounts": 520,
  • "processedAccounts": 150,
  • "totalAccountsMarkedForDeletion": 10,
  • "deletedAccounts": 5,
  • "totalIdentities": 300,
  • "processedIdentities": 250
}

Account Usages

Use this API to implement account usage insight functionality. With this functionality in place, administrators can gather information and insights about how their tenants' source accounts are being used. This allows organizations to get the information they need to start optimizing and securing source account usage.

Returns account usage insights

This API returns a summary of account usage insights for past 12 months.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
accountId
required
string
Example: ef38f94347e94562b5bb8424a56397d8

ID of IDN account

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=-date

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: date

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accounts

Use this API to implement and customize account functionality. With this functionality in place, administrators can manage users' access across sources in Identity Security Cloud.

In Identity Security Cloud, an account refers to a user's account on a supported source. This typically includes a unique identifier for the user, a unique password, a set of permissions associated with the source and a set of attributes. Identity Security Cloud loads accounts through the creation of sources in Identity Security Cloud.

Administrators can correlate users' identities with the users' accounts on the different sources they use. This allows Identity Security Cloud to govern the access of identities and all their correlated accounts securely and cohesively.

To view the accounts on a source and their correlated identities, administrators can use the Connections drop-down menu, select Sources, select the relevant source, and select its Account tab.

To view and edit source account statuses for an identity in Identity Security Cloud, administrators can use the Identities drop-down menu, select Identity List, select the relevant identity, and select its Accounts tab. Administrators can toggle an account's Actions to aggregate the account, enable/disable it, unlock it, or remove it from the identity.

Accounts can have the following statuses:

  • Enabled: The account is enabled. The user can access it.

  • Disabled: The account is disabled, and the user cannot access it, but the identity is not disabled in Identity Security Cloud. This can occur when an administrator disables the account or when the user's lifecycle state changes.

  • Locked: The account is locked. This may occur when someone has entered an incorrect password for the account too many times.

  • Pending: The account is currently updating. This status typically lasts seconds.

Administrators can select the source account to view its attributes, entitlements, and the last time the account's password was changed.

Refer to Managing User Accounts for more information about accounts.

Accounts list

List accounts.

Authorizations:
Personal Access TokenClient Credentials
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

detailLevel
string
Enum: "SLIM" "FULL"
Example: detailLevel=FULL

This value determines whether the API provides SLIM or increased level of detail (FULL) for each account in the returned list. FULL is the default behavior.

filters
string
Example: filters=identityId eq "2c9180858082150f0180893dbaf44201"

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, sw

identityId: eq, in, sw

name: eq, in, sw

nativeIdentity: eq, in, sw

hasEntitlements: eq

sourceId: eq, in, sw

uncorrelated: eq

entitlements: eq

origin: eq, in

manuallyCorrelated: eq

identity.name: eq, in, sw

identity.correlated: eq

identity.identityState: eq, in

source.displayableName: eq, in

source.authoritative: eq

source.connectionType: eq, in

recommendation.method: eq, in, isnull

created: eq, ge, gt, le, lt

modified: eq, ge, gt, le, lt

sorters
string <comma-separated>
Example: sorters=id,name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, sourceId, identityId, nativeIdentity, uuid, manuallyCorrelated, entitlements, origin, identity.name, identity.identityState, identity.correlated, source.displayableName, source.authoritative, source.connectionType

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create account

Submit an account creation task - the API then returns the task ID.

You must include the sourceId where the account will be created in the attributes object.

This endpoint creates an account on the source record in your ISC tenant. This is useful for Flat File (DelimitedFile) type sources because it allows you to aggregate new accounts without needing to import a new CSV file every time.

However, if you use this endpoint to create an account for a Direct Connection type source, you must ensure that the account also exists on the target source. The endpoint doesn't actually provision the account on the target source, which means that if the account doesn't also exist on the target source, an aggregation between the source and your tenant will remove it from your tenant.

By providing the account ID of an existing account in the request body, this API will function as a PATCH operation and update the account.

Authorizations:
Personal Access TokenClient Credentials
Request Body schema: application/json
required
object

The schema attribute values for the account

Responses

Request samples

Content type
application/json
{
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Account details

Use this API to return the details for a single account by its ID.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Account ID.

Responses

Response samples

Content type
application/json
{
  • "id": "id12345",
  • "name": "aName",
  • "created": "2015-05-28T14:07:17Z",
  • "modified": "2015-05-28T14:07:17Z",
  • "sourceId": "2c9180835d2e5168015d32f890ca1581",
  • "sourceName": "Employees",
  • "identityId": "2c9180835d2e5168015d32f890ca1581",
  • "cloudLifecycleState": "active",
  • "identityState": "ACTIVE",
  • "connectionType": "direct",
  • "isMachine": true,
  • "recommendation": {
    },
  • "attributes": {
    },
  • "authoritative": false,
  • "description": null,
  • "disabled": false,
  • "locked": false,
  • "nativeIdentity": "552775",
  • "systemAccount": false,
  • "uncorrelated": false,
  • "uuid": "{b0dce506-d6d4-44d2-8a32-d9a5b21fb175}",
  • "manuallyCorrelated": false,
  • "hasEntitlements": true,
  • "identity": {
    },
  • "sourceOwner": {
    },
  • "features": "ENABLE",
  • "origin": "AGGREGATED",
  • "ownerIdentity": {
    }
}

Update account

Use this API to update account details.

This API supports updating an account's correlation by modifying the identityId and manuallyCorrelated fields. To reassign an account from one identity to another, replace the current identityId with a new value. If the account you're assigning was provisioned by Identity Security Cloud (ISC), it's possible for ISC to create a new account for the previous identity as soon as the account is moved. If the account you're assigning is authoritative, this causes the previous identity to become uncorrelated and can even result in its deletion. All accounts that are reassigned will be set to manuallyCorrelated: true unless you specify otherwise.

Note: The attributes field can only be modified for flat file accounts.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Account ID.

Request Body schema: application/json-patch+json

A list of account update operations according to the JSON Patch standard.

Array
object

Responses

Request samples

Content type
application/json-patch+json
Example

Remove account from Identity

[
  • {
    }
]

Response samples

Content type
application/json
{ }

Update account

Use this API to update an account with a PUT request.

This endpoint submits an account update task and returns the task ID.

Note: You can only use this PUT endpoint to update accounts from flat file sources.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Account ID.

Request Body schema: application/json
required
object

The schema attribute values for the account

Responses

Request samples

Content type
application/json
{
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Delete account

Use this API to delete an account. This endpoint submits an account delete task and returns the task ID. This endpoint only deletes the account from IdentityNow, not the source itself, which can result in the account's returning with the next aggregation between the source and IdentityNow. To avoid this scenario, it is recommended that you disable accounts rather than delete them. This will also allow you to reenable the accounts in the future.

NOTE: You can only delete accounts from sources of the "DelimitedFile" type.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Account ID.

Responses

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Account entitlements

This API returns entitlements of the account.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The account id

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Reload account

This API asynchronously reloads the account directly from the connector and performs a one-time aggregation process.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The account id

Responses

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Enable account

This API submits a task to enable account and returns the task ID.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The account id

Request Body schema: application/json
externalVerificationId
string

If set, an external process validates that the user wants to proceed with this request.

forceProvisioning
boolean

If set, provisioning updates the account attribute at the source. This option is used when the account is not synced to ensure the attribute is updated. Providing 'true' for an unlocked account will add and process 'Unlock' operation by the workflow.

Responses

Request samples

Content type
application/json
{
  • "externalVerificationId": "3f9180835d2e5168015d32f890ca1581",
  • "forceProvisioning": false
}

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Disable account

This API submits a task to disable the account and returns the task ID.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The account id

Request Body schema: application/json
externalVerificationId
string

If set, an external process validates that the user wants to proceed with this request.

forceProvisioning
boolean

If set, provisioning updates the account attribute at the source. This option is used when the account is not synced to ensure the attribute is updated. Providing 'true' for an unlocked account will add and process 'Unlock' operation by the workflow.

Responses

Request samples

Content type
application/json
{
  • "externalVerificationId": "3f9180835d2e5168015d32f890ca1581",
  • "forceProvisioning": false
}

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Unlock account

This API submits a task to unlock an account and returns the task ID.
To use this endpoint to unlock an account that has the forceProvisioning option set to true, the idn:accounts-provisioning:manage scope is required.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The account ID.

Request Body schema: application/json
externalVerificationId
string

If set, an external process validates that the user wants to proceed with this request.

unlockIDNAccount
boolean

If set, the IDN account is unlocked after the workflow completes.

forceProvisioning
boolean

If set, provisioning updates the account attribute at the source. This option is used when the account is not synced to ensure the attribute is updated.

Responses

Request samples

Content type
application/json
{
  • "externalVerificationId": "3f9180835d2e5168015d32f890ca1581",
  • "unlockIDNAccount": false,
  • "forceProvisioning": false
}

Response samples

Content type
application/json
{
  • "id": "2c91808474683da6017468693c260195"
}

Remove account

Use this endpoint to remove accounts from the system without provisioning changes to the source. Accounts that are removed could be re-created during the next aggregation.

This endpoint is good for:

  • Removing accounts that no longer exist on the source.
  • Removing accounts that won't be aggregated following updates to the source configuration.
  • Forcing accounts to be re-created following the next aggregation to re-run account processing, support testing, etc.
Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: c350d6aa4f104c61b062cb632421ad10

The account id

Responses

Response samples

Content type
application/json
{
  • "type": "TASK_RESULT",
  • "id": "464ae7bf791e49fdb74606a2e4a89635",
  • "name": null
}

Enable idn account for identity

This API submits a task to enable IDN account for a single identity.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808384203c2d018437e631158309

The identity id.

Responses

Response samples

Content type
application/json
{ }

Disable idn account for identity

This API submits a task to disable IDN account for a single identity.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808384203c2d018437e631158309

The identity id.

Responses

Response samples

Content type
application/json
{ }

Enable idn accounts for identities

This API submits tasks to enable IDN account for each identity provided in the request body.

Authorizations:
Personal Access TokenClient Credentials
Request Body schema: application/json
identityIds
Array of strings

The ids of the identities for which enable/disable accounts.

Responses

Request samples

Content type
application/json
{
  • "identityIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Disable idn accounts for identities

This API submits tasks to disable IDN account for each identity provided in the request body.

Authorizations:
Personal Access TokenClient Credentials
Request Body schema: application/json
identityIds
Array of strings

The ids of the identities for which enable/disable accounts.

Responses

Request samples

Content type
application/json
{
  • "identityIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Application Discovery

Use this API to implement application discovery functionality. With this functionality in place, you can discover applications within your Okta connector and receive connector recommendations by manually uploading application names.

Get discovered applications for tenant

Get a list of applications that have been identified within the environment. This includes details such as application names, discovery dates, potential correlated saas_vendors and related suggested connectors.

Authorizations:
Personal Access Token
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

detail
string
Enum: "SLIM" "FULL"
Example: detail=FULL

Determines whether slim, or increased level of detail is provided for each discovered application in the returned list. SLIM is the default behavior.

filter
string
Example: filter=name eq "Okta" and description co "Okta" and discoverySource in ("csv", "Okta Saas")

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

name: eq, sw, co

description: eq, sw, co

createdAtStart: eq, le, ge

createdAtEnd: eq, le, ge

discoveredAtStart: eq, le, ge

discoveredAtEnd: eq, le, ge

discoverySource: eq, in

sorters
string <comma-separated>
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, description, discoveredAt, discoverySource

Responses

Response samples

Content type
application/json
Example

List of discovered applications

[
  • {
    },
  • {
    },
  • {
    }
]

Download csv template for discovery

Download an example CSV file with two columns application_name and description. The CSV file contains a single row with the values 'Example Application' and 'Example Description'.

The downloaded template is specifically designed for use with the /manual-discover-applications endpoint.

Authorizations:
Personal Access Token

Responses

Response samples

Content type
text/csv
application_name,description
Example Application,Example Description

Upload csv to discover applications

Uploading a CSV file with application data for manual correlation to specific ISC connectors. If a suitable ISC connector is unavailable, the system will recommend generic connectors instead.

Authorizations:
Personal Access TokenClient Credentials
Request Body schema: multipart/form-data
file
required
string <binary>

The CSV file to upload containing application_name and description columns. Each row represents an application to be discovered.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Approvals

Use this API to implement approval functionality. With this functionality in place, you can get generic approvals and modify them.

The main advantages this API has vs Access Request Approvals are that you can use it to get generic approvals individually or in batches and make changes to those approvals.

Get approvals

Retrieve a list of approvals, which can be filtered by requester ID, status, or reference type. "Mine" query parameter can be used and it will return all approvals for the current approver. This endpoint is for generic approvals, different than the access-request-approval endpoint and does not include access-request-approvals. Absence of all query parameters will will default to mine=true.

Authorizations:
Personal Access Token
query Parameters
mine
boolean
Default: true
Example: mine=true

Returns the list of approvals for the current caller

requesterId
string
Example: requesterId=17e633e7d57e481569df76323169deb6a

Returns the list of approvals for a given requester ID

filters
string
Example: filters=filters=status eq PENDING

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

status: eq

referenceType: eq

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an approval

Retrieve a single approval for a given approval ID. This endpoint is for generic approvals, different than the access-request-approval endpoint and does not include access-request-approvals.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 38453251-6be2-5f8f-df93-5ce19e295837

ID of the approval that is to be returned

Responses

Response samples

Content type
application/json
{
  • "approvalId": "38453251-6be2-5f8f-df93-5ce19e295837",
  • "approvers": [
    ],
  • "createdDate": "2023-04-12T23:20:50.52Z",
  • "type": "ENTITLEMENT_DESCRIPTIONS",
  • "name": [
    ],
  • "batchRequest": {
    },
  • "description": [
    ],
  • "priority": "HIGH",
  • "requester": {
    },
  • "comments": [
    ],
  • "approvedBy": [
    ],
  • "rejectedBy": [
    ],
  • "completedDate": "2023-04-12T23:20:50.52Z",
  • "approvalCriteria": "SINGLE",
  • "status": "PENDING",
  • "additionalAttributes": "{ \"llm_description\": \"generated description\" }",
  • "referenceData": [
    ]
}

Apps

Use this API to implement source application functionality. With this functionality in place, you can create, customize, and manage applications within sources.

Get source app by id

This API returns a source app by its ID.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the source app

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "id": "2c91808874ff91550175097daaec161c",
  • "cloudAppId": "9854520",
  • "name": "my app",
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2020-10-08T18:33:52.029Z",
  • "enabled": true,
  • "provisionRequestEnabled": true,
  • "description": "the source app for engineers",
  • "matchAllAccounts": true,
  • "appCenterEnabled": true,
  • "accountSource": {
    },
  • "owner": {
    }
}

Patch source app by id

This API updates an existing source app using JSON Patch syntax. The following fields are patchable: name, description, enabled, owner, provisionRequestEnabled, appCenterEnabled, accountSource, matchAllAccounts and accessProfiles. Name, description and owner can't be empty or null.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the source app to patch

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json-patch+json
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
Example

This example shows how multiple fields may be updated with a single patch call.

[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "2c91808874ff91550175097daaec161c",
  • "cloudAppId": "9854520",
  • "name": "my app",
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2020-10-08T18:33:52.029Z",
  • "enabled": true,
  • "provisionRequestEnabled": true,
  • "description": "the source app for engineers",
  • "matchAllAccounts": true,
  • "appCenterEnabled": true,
  • "accessProfiles": [
    ],
  • "accountSource": {
    },
  • "owner": {
    }
}

Delete source app by id

Use this API to delete a specific source app

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c9180835d191a86015d28455b4a2329

source app ID.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "id": "2c91808874ff91550175097daaec161c",
  • "cloudAppId": "9854520",
  • "name": "my app",
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2020-10-08T18:33:52.029Z",
  • "enabled": true,
  • "provisionRequestEnabled": true,
  • "description": "the source app for engineers",
  • "matchAllAccounts": true,
  • "appCenterEnabled": true,
  • "accountSource": {
    },
  • "owner": {
    }
}

Bulk update source apps

This API updates source apps using JSON Patch syntax. It can update up to 50 source apps in a batch. The following fields can be updated: name, description, enabled, owner, provisionRequestEnabled, appCenterEnabled, accountSource, matchAllAccounts, and accessProfiles. Name, description and owner can't be empty or null.

Authorizations:
Personal Access TokenClient Credentials
header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json
appIds
required
Array of strings <= 50 items

List of source app ids to update

required
Array of objects (Json Patch Operation)

The JSONPatch payload used to update the source app.

Responses

Request samples

Content type
application/json
{
  • "appIds": [
    ],
  • "jsonPatch": [
    ]
}

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

List assigned source apps

This API returns the list of source apps assigned for logged in user.

Authorizations:
Personal Access TokenClient Credentials
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, accountSource.id

filters
string
Example: filters=name eq "source app name"

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, in, co, sw

created: gt, lt, ge, le

modified: gt, lt, ge, le

accountSource.id: eq, in

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List available source apps

This API returns the list of source apps available for access request.

Authorizations:
Personal Access TokenClient Credentials
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, owner.id, accountSource.id

filters
string
Example: filters=name eq "source app name"

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, in, co, sw

created: gt, lt, ge, le

modified: gt, lt, ge, le

accountSource.id: eq, in

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create source app

This endpoint creates a source app using the given source app payload

Authorizations:
Personal Access TokenClient Credentials
header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json
name
required
string

The source app name

description
required
string

The description of the source app

matchAllAccounts
boolean
Default: false

True if the source app match all accounts

required
object

Responses

Request samples

Content type
application/json
{
  • "name": "new app name",
  • "description": "app description",
  • "matchAllAccounts": true,
  • "accountSource": {
    }
}

Response samples

Content type
application/json
{
  • "id": "2c91808874ff91550175097daaec161c",
  • "cloudAppId": "9854520",
  • "name": "my app",
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2020-10-08T18:33:52.029Z",
  • "enabled": true,
  • "provisionRequestEnabled": true,
  • "description": "the source app for engineers",
  • "matchAllAccounts": true,
  • "appCenterEnabled": true,
  • "accountSource": {
    },
  • "owner": {
    }
}

List all source apps

This API returns the list of all source apps for the org.

Authorizations:
Personal Access Token
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, owner.id, accountSource.id

filters
string
Example: filters=enabled eq true

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, in, co, sw

created: gt, lt, ge, le

modified: gt, ge, le

owner.id: eq, in

enabled: eq

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List access profiles for the specified source app

This API returns the list of access profiles for the specified source app

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the source app

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=name eq "developer access profile"

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, in

created: gt, lt, ge, le

modified: gt, lt, ge, le

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bulk remove access profiles from the specified source app

This API returns the final list of access profiles for the specified source app after removing

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the source app

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json
Array
string

Responses

Request samples

Content type
application/json
[
  • "c9575abb5e3a4e3db82b2f989a738aa2",
  • "c9dc28e148a24d65b3ccb5fb8ca5ddd9"
]

Response samples

Content type
application/json
[
  • {
    }
]

Patch user app by id

This API updates an existing user app using JSON Patch syntax. The following fields are patchable: account

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the user app to patch

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json-patch+json
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "2c91808874ff91550175097daaec161c",
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2020-10-08T18:33:52.029Z",
  • "hasMultipleAccounts": false,
  • "useForPasswordManagement": true,
  • "provisionRequestEnabled": true,
  • "appCenterEnabled": true,
  • "sourceApp": {
    },
  • "source": {
    },
  • "account": {
    },
  • "owner": {
    }
}

List available accounts for user app

This API returns the list of available accounts for the specified user app. The user app needs to belong lo logged in user.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the user app

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List owned user apps

This API returns the list of user apps assigned to logged in user

Authorizations:
Personal Access TokenClient Credentials
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=name eq "user app name"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

id: eq

ownerName: eq, sw

ownerAlias: eq, sw

accountId: eq

sourceAppId: eq

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all user apps

This API returns the list of all user apps with specified filters. This API must be used with filters query parameter.

Authorizations:
Personal Access TokenClient Credentials
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

filters
required
string
Example: filters=name eq "user app name"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

id: eq

ownerId: eq

ownerName: eq, sw

ownerAlias: eq, sw

accountId: eq

sourceAppId: eq

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Auth Profile

Use this API to implement Auth Profile functionality. With this functionality in place, users can read authentication profiles and make changes to them.

An authentication profile represents an identity profile's authentication configuration. When the identity profile is created, its authentication profile is also created. An authentication profile includes information like its authentication profile type (BLOCK, MFA, NON_PTA, PTA`) and settings controlling whether or not it blocks access from off network or untrusted geographies.

Get list of auth profiles

This API returns a list of auth profiles.

Authorizations:
Personal Access Token
header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get auth profile

This API returns auth profile information.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121919ecca

ID of the Auth Profile to patch.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "name": "EndToEnd-Profile",
  • "offNetwork": true,
  • "untrustedGeography": true,
  • "applicationId": "2c91808458ae7a4f0158b1bbf8af0628",
  • "applicationName": "EndToEnd-Source",
  • "type": "PTA",
  • "strongAuthLogin": true
}

Patch a specified auth profile

This API updates an existing Auth Profile. The following fields are patchable: offNetwork, untrustedGeography, applicationId, applicationName, type

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121919ecca

ID of the Auth Profile to patch.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json-patch+json
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "name": "EndToEnd-Profile",
  • "offNetwork": true,
  • "untrustedGeography": true,
  • "applicationId": "2c91808458ae7a4f0158b1bbf8af0628",
  • "applicationName": "EndToEnd-Source",
  • "type": "PTA",
  • "strongAuthLogin": true
}

Auth Users

Use this API to implement user authentication system functionality. With this functionality in place, users can get a user's authentication system details, including their capabilities, and modify those capabilities. The user's capabilities refer to their access to different systems, or authorization, within the tenant, like access to certifications (CERT_ADMIN) or reports (REPORT_ADMIN). These capabilities also determine a user's access to the different APIs. This API provides users with a way to determine a user's access and make quick and easy changes to that access.

Auth user details

Return the specified user's authentication system details.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Identity ID

Responses

Response samples

Content type
application/json
{
  • "tenant": "test-tenant",
  • "id": "2c91808458ae7a4f0158b1bbf8af0628",
  • "uid": "will.smith",
  • "profile": "2c91808458ae7a4f0158b1bbf8af0756",
  • "identificationNumber": "19-5588452",
  • "email": "william.smith@example.com",
  • "phone": "5555555555",
  • "workPhone": "5555555555",
  • "personalEmail": "william.smith@example.com",
  • "firstname": "Will",
  • "lastname": "Smith",
  • "displayName": "Will Smith",
  • "alias": "will.smith",
  • "lastPasswordChangeDate": "2021-03-08T22:37:33.901Z",
  • "lastLoginTimestamp": 1656327185832,
  • "currentLoginTimestamp": 1656327185832,
  • "lastUnlockTimestamp": "2021-03-08T22:37:33.901Z",
  • "capabilities": [
    ]
}

Auth user update

Use a PATCH request to update an existing user in the authentication system. Use this endpoint to modify these fields:

  • capabilities

A '400.1.1 Illegal update attempt' detail code indicates that you attempted to PATCH a field that is not allowed.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Identity ID

Request Body schema: application/json-patch+json

A list of auth user update operations according to the JSON Patch standard.

Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "tenant": "test-tenant",
  • "id": "2c91808458ae7a4f0158b1bbf8af0628",
  • "uid": "will.smith",
  • "profile": "2c91808458ae7a4f0158b1bbf8af0756",
  • "identificationNumber": "19-5588452",
  • "email": "william.smith@example.com",
  • "phone": "5555555555",
  • "workPhone": "5555555555",
  • "personalEmail": "william.smith@example.com",
  • "firstname": "Will",
  • "lastname": "Smith",
  • "displayName": "Will Smith",
  • "alias": "will.smith",
  • "lastPasswordChangeDate": "2021-03-08T22:37:33.901Z",
  • "lastLoginTimestamp": 1656327185832,
  • "currentLoginTimestamp": 1656327185832,
  • "lastUnlockTimestamp": "2021-03-08T22:37:33.901Z",
  • "capabilities": [
    ]
}

Branding

Use this API to implement and customize branding functionality. With this functionality in place, administrators can get and manage existing branding items, and they can also create new branding items and configure them for use throughout Identity Security Cloud. The Branding APIs provide administrators with a way to customize branding items. This customization includes details like their colors, logos, and other information. Refer to Certifications for more information about certifications.

List of branding items

This API endpoint returns a list of branding items.

Authorizations:
Personal Access TokenClient Credentials

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a branding item

This API endpoint creates a branding item.

Authorizations:
Personal Access TokenClient Credentials
Request Body schema: multipart/form-data
name
required
string

name of branding item

productName
required
string or null

product name

actionButtonColor
string

hex value of color for action button

activeLinkColor
string

hex value of color for link

navigationColor
string

hex value of color for navigation bar

emailFromAddress
string

email from address

loginInformationalMessage
string

login information message

fileStandard
string <binary>

png file with logo

Responses

Response samples

Content type
application/json
{
  • "name": "default",
  • "productName": "product name",
  • "actionButtonColor": "0074D9",
  • "activeLinkColor": "011E69",
  • "navigationColor": "011E69",
  • "emailFromAddress": "no-reply@sailpoint.com",
  • "standardLogoURL": "",
  • "loginInformationalMessage": ""
}

Get a branding item

This API endpoint retrieves information for an existing branding item by name.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
name
required
string
Example: default

The name of the branding item to be retrieved

Responses

Response samples

Content type
application/json
{
  • "name": "default",
  • "productName": "product name",
  • "actionButtonColor": "0074D9",
  • "activeLinkColor": "011E69",
  • "navigationColor": "011E69",
  • "emailFromAddress": "no-reply@sailpoint.com",
  • "standardLogoURL": "",
  • "loginInformationalMessage": ""
}

Update a branding item

This API endpoint updates information for an existing branding item.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
name
required
string
Example: default

The name of the branding item to be retrieved

Request Body schema: multipart/form-data
name
required
string

name of branding item

productName
required
string or null

product name

actionButtonColor
string

hex value of color for action button

activeLinkColor
string

hex value of color for link

navigationColor
string

hex value of color for navigation bar

emailFromAddress
string

email from address

loginInformationalMessage
string

login information message

fileStandard
string <binary>

png file with logo

Responses

Response samples

Content type
application/json
{
  • "name": "default",
  • "productName": "product name",
  • "actionButtonColor": "0074D9",
  • "activeLinkColor": "011E69",
  • "navigationColor": "011E69",
  • "emailFromAddress": "no-reply@sailpoint.com",
  • "standardLogoURL": "",
  • "loginInformationalMessage": ""
}

Delete a branding item

This API endpoint delete information for an existing branding item by name.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
name
required
string
Example: default

The name of the branding item to be deleted

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Certification Campaign Filters

Use this API to implement the certification campaign filter functionality. These filters can be used to create a certification campaign that includes a subset of your entitlements or users to certify.

For example, if for a certification campaign an organization wants to certify only specific users or entitlements, then those can be included/excluded on the basis of campaign filters.

For more information about creating a campaign filter, refer to Creating a Campaign Filter

You can create campaign filters using any of the following criteria types:

  • Access Profile : This criteria type includes or excludes access profiles from a campaign.

  • Account Attribute : This criteria type includes or excludes certification items that match a specified value in an account attribute.

  • Entitlement : This criteria type includes or excludes entitlements from a campaign.

  • Identity : This criteria type includes or excludes specific identities from your campaign.

  • Identity Attribute : This criteria type includes or excludes identities based on whether they have an identity attribute that matches criteria you've chosen.

  • Role : This criteria type includes or excludes roles, as opposed to identities.

  • Source : This criteria type includes or excludes entitlements from a source you select.

For more information about these criteria types, refer to Types of Campaign Filters

Once the campaign filter is created, it can be linked while creating the campaign. The generated campaign will have the items to review as per the campaign filter.

For example, An inclusion campaign filter is created with a source of Source 1, an operation of Equals, and an entitlement of Entitlement 1. When this filter is selected, only users who have Entitlement 1 are included in the campaign, and only Entitlement 1 is shown in the certification.

Create campaign filter

Use this API to create a campaign filter based on filter details and criteria.

Authorizations:
Personal Access Token
Request Body schema: application/json
id
required
string

The unique ID of the campaign filter

name
required
string

Campaign filter name.

description
string

Campaign filter description.

owner
required
string or null

Owner of the filter. This field automatically populates at creation time with the current user.

mode
required
string
Enum: "INCLUSION" "EXCLUSION"

Mode/type of filter, either the INCLUSION or EXCLUSION type. The INCLUSION type includes the data in generated campaigns as per specified in the criteria, whereas the EXCLUSION type excludes the data in generated campaigns as per specified in criteria.

Array of objects

List of criteria.

isSystemFilter
required
boolean
Default: false

If true, the filter is created by the system. If false, the filter is created by a user.

Responses

Request samples

Content type
application/json
{
  • "id": "5ec18cef39020d6fd7a60ad3970aba61",
  • "name": "Identity Attribute Campaign Filter",
  • "description": "Campaign filter to certify data based on an identity attribute's specified property.",
  • "owner": "SailPoint Support",
  • "mode": "INCLUSION",
  • "criteriaList": [
    ],
  • "isSystemFilter": false
}

Response samples

Content type
application/json
{
  • "id": "5ec18cef39020d6fd7a60ad3970aba61",
  • "name": "Identity Attribute Campaign Filter",
  • "description": "Campaign filter to certify data based on an identity attribute's specified property.",
  • "owner": "SailPoint Support",
  • "mode": "INCLUSION",
  • "criteriaList": [
    ],
  • "isSystemFilter": false
}

List campaign filters

Use this API to list all campaign filters. You can reduce scope with standard V3 query parameters.

Authorizations:
Personal Access Token
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

start
integer <int32> >= 0
Default: 0

Start/Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

includeSystemFilters
boolean
Default: true
Example: includeSystemFilters=true

If this is true, the API includes system filters in the count and results. Otherwise it excludes them. If no value is provided, the default is true.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "count": 2
}

Get campaign filter by id

Retrieves information for an existing campaign filter using the filter's ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: e9f9a1397b842fd5a65842087040d3ac

The ID of the campaign filter to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": "5ec18cef39020d6fd7a60ad3970aba61",
  • "name": "Identity Attribute Campaign Filter",
  • "description": "Campaign filter to certify data based on an identity attribute's specified property.",
  • "owner": "SailPoint Support",
  • "mode": "INCLUSION",
  • "criteriaList": [
    ],
  • "isSystemFilter": false
}

Updates a campaign filter

Updates an existing campaign filter using the filter's ID.

Authorizations:
Personal Access Token
path Parameters
filterId
required
string
Example: e9f9a1397b842fd5a65842087040d3ac

The ID of the campaign filter being modified.

Request Body schema: application/json

A campaign filter details with updated field values.

id
required
string

The unique ID of the campaign filter

name
required
string

Campaign filter name.

description
string

Campaign filter description.

owner
required
string or null

Owner of the filter. This field automatically populates at creation time with the current user.

mode
required
string
Enum: "INCLUSION" "EXCLUSION"

Mode/type of filter, either the INCLUSION or EXCLUSION type. The INCLUSION type includes the data in generated campaigns as per specified in the criteria, whereas the EXCLUSION type excludes the data in generated campaigns as per specified in criteria.

Array of objects

List of criteria.

isSystemFilter
required
boolean
Default: false

If true, the filter is created by the system. If false, the filter is created by a user.

Responses

Request samples

Content type
application/json
{
  • "id": "5ec18cef39020d6fd7a60ad3970aba61",
  • "name": "Identity Attribute Campaign Filter",
  • "description": "Campaign filter to certify data based on an identity attribute's specified property.",
  • "owner": "SailPoint Support",
  • "mode": "INCLUSION",
  • "criteriaList": [
    ],
  • "isSystemFilter": false
}

Response samples

Content type
application/json
{
  • "id": "5ec18cef39020d6fd7a60ad3970aba61",
  • "name": "Identity Attribute Campaign Filter",
  • "description": "Campaign filter to certify data based on an identity attribute's specified property.",
  • "owner": "SailPoint Support",
  • "mode": "INCLUSION",
  • "criteriaList": [
    ],
  • "isSystemFilter": false
}

Deletes campaign filters

Deletes campaign filters whose Ids are specified in the provided list of campaign filter Ids. Authorized callers must be an ORG_ADMIN or a CERT_ADMIN.

Authorizations:
Personal Access Token
Request Body schema: application/json

A json list of IDs of campaign filters to delete.

Array
string

Responses

Request samples

Content type
application/json
[
  • "0fbe863c063c4c88a35fd7f17e8a3df5",
  • "2efb374d392c4d88a34sv7b11e8a4eq6"
]

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Certification Campaigns

Use this API to implement certification campaign functionality. With this functionality in place, administrators can create, customize, and manage certification campaigns for their organizations' use. Certification campaigns provide Identity Security Cloud users with an interactive review process they can use to identify and verify access to systems. Campaigns help organizations reduce risk of inappropriate access and satisfy audit requirements.

A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. These certifications serve as a way of showing that a user's access has been reviewed and approved. Multiple certifications by different reviewers are often required to approve a user's access. A set of multiple certifications is called a certification campaign.

For example, an organization may use a Manager Certification campaign as a way of showing that a user's access has been reviewed and approved by multiple managers. Once this campaign has been completed, Identity Security Cloud would provision all the access the user needs, nothing more.

Identity Security Cloud provides two simple campaign types users can create without using search queries, Manager and Source Owner campaigns:

You can create these types of campaigns without using any search queries in Identity Security Cloud:

  • ManagerCampaign: Identity Security Cloud provides this campaign type as a way to ensure that an identity's access is certified by their managers. You only need to provide a name and description to create one.

  • Source Owner Campaign: Identity Security Cloud provides this campaign type as a way to ensure that an identity's access to a source is certified by its source owners. You only need to provide a name and description to create one. You can specify the sources whose owners you want involved or just run it across all sources.

For more information about these campaign types, refer to Starting a Manager or Source Owner Campaign.

One useful way to create certification campaigns in Identity Security Cloud is to use a specific search and then run a campaign on the results returned by that search. This allows you to be much more specific about whom you are certifying in your campaigns and what access you are certifying in your campaigns. For example, you can search for all identities who are managed by "Amanda.Ross" and also have the access to the "Accounting" role and then run a certification campaign based on that search to ensure that the returned identities are appropriately certified.

You can use Identity Security Cloud search queries to create these types of campaigns:

  • Identities: Use this campaign type to review and revoke access items for specific identities. You can either build a search query and create a campaign certifying all identities returned by that query, or you can search for individual identities and add those identities to the certification campaign.

  • Access Items: Use this campaign type to review and revoke a set of roles, access profiles, or entitlements from the identities that have them. You can either build a search query and create a campaign certifying all access items returned by that query, or you can search for individual access items and add those items to the certification campaign.

  • Role Composition: Use this campaign type to review a role's composition, including its title, description, and membership criteria. You can either build a search query and create a campaign certifying all roles returned by that query, or you can search for individual roles and add those roles to the certification campaign.

  • Uncorrelated Accounts: Use this campaign type to certify source accounts that aren't linked to an authoritative identity in Identity Security Cloud. You can use this campaign type to view all the uncorrelated accounts for a source and certify them.

For more information about search-based campaigns, refer to Starting a Campaign from Search.

Once you have generated your campaign, it becomes available for preview. An administrator can review the campaign and make changes, or if it's ready and accurate, activate it.

Once the campaign is active, organization administrators or certification administrators can designate other Identity Security Cloud users as certification reviewers. Those reviewers can view any of the certifications they either need to review (active) or have already reviewed (completed).

When a certification campaign is in progress, certification reviewers see the listed active certifications whose involved identities they can review. Reviewers can then make decisions to grant or revoke access, as well as reassign the certification to another reviewer. If the reviewer chooses this option, they must provide a reason for reassignment in the form of a comment.

Once a reviewer has made decisions on all the certification's involved access items, he or she must "Sign Off" to complete the review process. Doing so converts the certification into read-only status, preventing any further changes to the review decisions and deleting the work item (task) from the reviewer's list of work items.

Once all the reviewers have signed off, the certification campaign either completes or, if any reviewers decided to revoke access for any of the involved identities, it moves into a remediation phase. In the remediation phase, identities' entitlements are altered to remove any entitlements marked for revocation. In this situation, the certification campaign completes once all the remediation requests are completed.

The end of a certification campaign is determined by its deadline, its completion status, or by an administrator's decision.

For more information about certifications and certification campaigns, refer to Certifications.

List campaigns

Use this API to get a list of campaigns. This API can provide increased level of detail for each campaign for the correct provided query.

Authorizations:
Personal Access Token
query Parameters
detail
string
Enum: "SLIM" "FULL"
Example: detail=FULL

Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=name eq "Manager Campaign"

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

status: eq, in

sorters
string <comma-separated>
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, created

Responses

Response samples

Content type
application/json
Example

List of Slim Campaigns that would result from not specifying detail or specifying SLIM

[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Create a campaign

Use this API to create a certification campaign with the information provided in the request body.

Authorizations:
Personal Access Token
Request Body schema: application/json
name
required
string

The campaign name. If this object is part of a template, special formatting applies; see the /campaign-templates/{id}/generate endpoint documentation for details.

description
required
string or null

The campaign description. If this object is part of a template, special formatting applies; see the /campaign-templates/{id}/generate endpoint documentation for details.

deadline
string or null <date-time>

The campaign's completion deadline. This date must be in the future in order to activate the campaign. If you try to activate a campaign with a deadline of today or in the past, you will receive a 400 error response.

type
required
string
Enum: "MANAGER" "SOURCE_OWNER" "SEARCH" "ROLE_COMPOSITION" "MACHINE_ACCOUNT"

The type of campaign. Could be extended in the future.

emailNotificationEnabled
boolean
Default: false

Enables email notification for this campaign

autoRevokeAllowed
boolean
Default: false

Allows auto revoke for this campaign

recommendationsEnabled
boolean
Default: false

Enables IAI for this campaign. Accepts true even if the IAI product feature is off. If IAI is turned off then campaigns generated from this template will indicate false. The real value will then be returned if IAI is ever enabled for the org in the future.

correlatedStatus
string
Enum: "CORRELATED" "UNCORRELATED"

The correlatedStatus of the campaign. Only SOURCE_OWNER campaigns can be Uncorrelated. An Uncorrelated certification campaign only includes Uncorrelated identities (An identity is uncorrelated if it has no accounts on an authoritative source).

object or null

Determines which items will be included in this campaign. The default campaign filter is used if this field is left blank.

sunsetCommentsRequired
boolean
Default: true

Determines if comments on sunset date changes are required.

object or null

Must be set only if the campaign type is SOURCE_OWNER.

object or null

Must be set only if the campaign type is SEARCH.

object or null

Optional configuration options for role composition campaigns.

object or null

Must be set only if the campaign type is MACHINE_ACCOUNT.

mandatoryCommentRequirement
string
Enum: "ALL_DECISIONS" "REVOKE_ONLY_DECISIONS" "NO_DECISIONS"

Determines whether comments are required for decisions during certification reviews. You can require comments for all decisions, revoke-only decisions, or no decisions. By default, comments are not required for decisions.

Responses

Request samples

Content type
application/json
Example
{
  • "name": "Manager Review",
  • "description": "A review of everyone's access by their manager.",
  • "deadline": "2020-12-25T06:00:00.468Z",
  • "type": "MANAGER",
  • "emailNotificationEnabled": false,
  • "autoRevokeAllowed": false,
  • "recommendationsEnabled": false,
  • "filter": {
    },
  • "mandatoryCommentRequirement": "NO_DECISIONS"
}

Response samples

Content type
application/json
Example
{
  • "id": "5594f43b76804a6980ece5fdccf74be7",
  • "name": "Manager Review",
  • "description": "A review of everyone's access by their manager.",
  • "deadline": "2020-12-25T06:00:00.468Z",
  • "type": "MANAGER",
  • "status": "PENDING",
  • "emailNotificationEnabled": false,
  • "autoRevokeAllowed": false,
  • "recommendationsEnabled": false,
  • "created": "2022-08-02T20:21:18.421Z",
  • "modified": null,
  • "filter": {
    },
  • "sunsetCommentsRequired": true,
  • "sourceOwnerCampaignInfo": null,
  • "searchCampaignInfo": null,
  • "roleCompositionCampaignInfo": null,
  • "machineAccountCampaignInfo": null,
  • "alerts": null,
  • "totalCertifications": 0,
  • "completedCertifications": 0,
  • "sourcesWithOrphanEntitlements": null,
  • "mandatoryCommentRequirement": "NO_DECISIONS"
}

Get campaign

Use this API to get information for an existing certification campaign by the campaign's ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808571bcfcf80171c23e4b4221fc

ID of the campaign to be retrieved.

query Parameters
detail
string
Enum: "SLIM" "FULL"
Example: detail=FULL

Determines whether slim, or increased level of detail is provided for each campaign in the returned list. Slim is the default behavior.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "2c918086719eec070171a7e3355a360a",
  • "name": "Manager Review",
  • "description": "A review of everyone's access by their manager.",
  • "deadline": "2020-12-25T06:00:00.123Z",
  • "type": "MANAGER",
  • "status": "ACTIVE",
  • "emailNotificationEnabled": false,
  • "autoRevokeAllowed": false,
  • "recommendationsEnabled": false
}

Update a campaign

Use this API to update individual fields on a certification campaign, using the JSON Patch standard.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808571bcfcf80171c23e4b4221fc

ID of the campaign template being modified.

Request Body schema: application/json-patch+json

A list of campaign update operations according to the JSON Patch standard. The fields that can be patched differ based on the status of the campaign.

When the campaign is in the STAGED status, you can patch these fields:

  • name
  • description
  • recommendationsEnabled
  • deadline
  • emailNotificationEnabled
  • autoRevokeAllowed

When the campaign is in the ACTIVE status, you can patch these fields:

  • deadline
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
Example
{
  • "id": "2c918086719eec070171a7e3355a360a",
  • "name": "Manager Review",
  • "description": "A review of everyone's access by their manager.",
  • "deadline": "2020-12-25T06:00:00.123Z",
  • "type": "MANAGER",
  • "status": "ACTIVE",
  • "emailNotificationEnabled": false,
  • "autoRevokeAllowed": false,
  • "recommendationsEnabled": false
}

Reassign certifications

This API reassigns the specified certifications from one identity to another.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The certification campaign ID

Request Body schema: application/json
certificationIds
Array of strings [ 1 .. 250 ] items

List of certification IDs to reassign

object
reason
string

Comment to explain why the certification was reassigned

Responses

Request samples

Content type
application/json
{
  • "certificationIds": [
    ],
  • "reassignTo": {
    },
  • "reason": "reassigned for some reason"
}

Response samples

Content type
application/json
{
  • "id": "2c918086719eec070171a7e3355a360a",
  • "type": "ADMIN_REASSIGN",
  • "targetType": "CAMPAIGN",
  • "targetId": "2c918086719eec070171a7e3355a834c",
  • "status": "QUEUED",
  • "errors": [ ],
  • "created": "2020-09-24T18:10:47.693Z"
}

Activate a campaign

Use this API to submit a job to activate the certified campaign with the specified ID. The campaign must be staged.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Campaign ID.

Request Body schema: application/json

Optional. If no timezone is specified, the standard UTC timezone is used (i.e. UTC+00:00). Although this can take any timezone, the intended value is the caller's timezone. The activation time calculated from the given timezone may cause the campaign deadline time to be modified, but it will remain within the original date. The timezone must be in a valid ISO 8601 format.

timeZone
string
Default: "Z"

The timezone must be in a valid ISO 8601 format. Timezones in ISO 8601 are represented as UTC (represented as 'Z') or as an offset from UTC. The offset format can be +/-hh:mm, +/-hhmm, or +/-hh.

Responses

Request samples

Content type
application/json
{
  • "timeZone": "-05:00"
}

Response samples

Content type
application/json
{ }

Complete a campaign

:::caution

This endpoint will run successfully for any campaigns that are past due.

This endpoint will return a content error if the campaign is not past due.

:::

Use this API to complete a certification campaign. This functionality is provided to admins so that they can complete a certification even if all items have not been completed.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

Campaign ID.

Request Body schema: application/json

Optional. Default behavior is for the campaign to auto-approve upon completion, unless autoCompleteAction=REVOKE

autoCompleteAction
string
Default: "APPROVE"
Enum: "APPROVE" "REVOKE"

Determines whether to auto-approve(APPROVE) or auto-revoke(REVOKE) upon campaign completion.

Responses

Request samples

Content type
application/json
{
  • "autoCompleteAction": "REVOKE"
}

Response samples

Content type
application/json
{ }

Delete campaigns

Use this API to delete certification campaigns whose IDs are specified in the provided list of campaign IDs.

Authorizations:
Personal Access Token
Request Body schema: application/json

IDs of the campaigns to delete.

ids
Array of strings

The ids of the campaigns to delete

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{ }

Run campaign remediation scan

Use this API to run a remediation scan task for a certification campaign.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808571bcfcf80171c23e4b4221fc

ID of the campaign the remediation scan is being run for.

Responses

Response samples

Content type
application/json
{ }

Get campaign reports

Use this API to fetch all reports for a certification campaign by campaign ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808571bcfcf80171c23e4b4221fc

ID of the campaign whose reports are being fetched.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Run campaign report

Use this API to run a report for a certification campaign.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808571bcfcf80171c23e4b4221fc

ID of the campaign the report is being run for.

type
required
string (ReportType)
Enum: "CAMPAIGN_COMPOSITION_REPORT" "CAMPAIGN_REMEDIATION_STATUS_REPORT" "CAMPAIGN_STATUS_REPORT" "CERTIFICATION_SIGNOFF_REPORT"
Example: CAMPAIGN_COMPOSITION_REPORT

Type of the report to run.

Responses

Response samples

Content type
application/json
{ }

Get campaign reports configuration

Use this API to fetch the configuration for certification campaign reports. The configuration includes only one element - identity attributes defined as custom report columns.

Authorizations:
Personal Access Token

Responses

Response samples

Content type
application/json
{
  • "identityAttributeColumns": [
    ]
}

Set campaign reports configuration

Use this API to overwrite the configuration for campaign reports.

Authorizations:
Personal Access Token
Request Body schema: application/json

Campaign report configuration.

identityAttributeColumns
Array of strings or null

list of identity attribute columns

Responses

Request samples

Content type
application/json
{
  • "identityAttributeColumns": [
    ]
}

Response samples

Content type
application/json
{
  • "identityAttributeColumns": [
    ]
}

Create a campaign template

Use this API to create a certification campaign template based on campaign.

Authorizations:
Personal Access Token
Request Body schema: application/json
id
string

Id of the campaign template

name
required
string

This template's name. Has no bearing on generated campaigns' names.

description
required
string

This template's description. Has no bearing on generated campaigns' descriptions.

deadlineDuration
string or null

The time period during which the campaign should be completed, formatted as an ISO-8601 Duration. When this template generates a campaign, the campaign's deadline will be the current date plus this duration. For example, if generation occurred on 2020-01-01 and this field was "P2W" (two weeks), the resulting campaign's deadline would be 2020-01-15 (the current date plus 14 days).

required
object (Campaign)

Responses

Request samples

Content type
application/json
Example

This creates a template that can be used to generate manager campaigns. The campaigns will have a due date that is two weeks after their creation date, and will be named "{current date} Manager Review" (e.g. "2020-03-16 Manager Review").

{
  • "name": "Manager Review",
  • "description": "A review of everyone's access by their manager.",
  • "deadlineDuration": "P2W",
  • "campaign": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": "e7dbec99d49349c8951bd84f58a05120",
  • "name": "Manager Review",
  • "created": "2022-08-02T19:16:42.632Z",
  • "modified": null,
  • "description": "A review of everyone's access by their manager.",
  • "deadlineDuration": "P14D",
  • "ownerRef": {
    },
  • "scheduled": false,
  • "campaign": {
    }
}

List campaign templates

Use this API to get a list of all campaign templates. Scope can be reduced through standard V3 query params.

The API returns all campaign templates matching the query parameters.

Authorizations:
Personal Access Token
query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, created, modified

filters
string <comma-separated>
Example: filters=name eq "manager template"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

name: eq, ge, gt, in, le, lt, ne, sw

id: eq, ge, gt, in, le, lt, ne, sw

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Update a campaign template

Use this API to update individual fields on a certification campaign template, using the JSON Patch standard.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c9180835d191a86015d28455b4a2329

ID of the campaign template being modified.

Request Body schema: application/json-patch+json

A list of campaign update operations according to the JSON Patch standard.

The following fields are patchable:

  • name
  • description
  • deadlineDuration
  • campaign (all fields that are allowed during create)
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
Example
{
  • "id": "e7dbec99d49349c8951bd84f58a05120",
  • "name": "Manager Review",
  • "created": "2022-08-02T19:16:42.632Z",
  • "modified": null,
  • "description": "A review of everyone's access by their manager.",
  • "deadlineDuration": "P14D",
  • "ownerRef": {
    },
  • "scheduled": false,
  • "campaign": {
    }
}

Get a campaign template

Use this API to fetch a certification campaign template by ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c9180835d191a86015d28455b4a2329

Requested campaign template's ID.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "e7dbec99d49349c8951bd84f58a05120",
  • "name": "Manager Review",
  • "created": "2022-08-02T19:16:42.632Z",
  • "modified": null,
  • "description": "A review of everyone's access by their manager.",
  • "deadlineDuration": "P14D",
  • "ownerRef": {
    },
  • "scheduled": false,
  • "campaign": {
    }
}

Delete a campaign template

Use this API to delete a certification campaign template by ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c9180835d191a86015d28455b4a2329

ID of the campaign template being deleted.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Get campaign template schedule

Use this API to get the schedule for a certification campaign template. The API returns a 404 if there is no schedule set.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 04bedce387bd47b2ae1f86eb0bb36dee

ID of the campaign template whose schedule is being fetched.

Responses

Response samples

Content type
application/json
{
  • "type": "WEEKLY",
  • "months": {
    },
  • "days": {
    },
  • "hours": {
    },
  • "expiration": "2022-09-19 13:55:26",
  • "timeZoneId": "CST"
}

Set campaign template schedule

Use this API to set the schedule for a certification campaign template. If a schedule already exists, the API overwrites it with the new one.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 04bedce387bd47b2ae1f86eb0bb36dee

ID of the campaign template being scheduled.

Request Body schema: application/json
type
required
string
Enum: "WEEKLY" "MONTHLY" "ANNUALLY" "CALENDAR"

Determines the overall schedule cadence. In general, all time period fields smaller than the chosen type can be configured. For example, a DAILY schedule can have 'hours' set, but not 'days'; a WEEKLY schedule can have both 'hours' and 'days' set.

object or null

Specifies which months of a schedule are active. Only valid for ANNUALLY schedule types. Examples:

On February and March:

  • type LIST
  • values "2", "3"

Every 3 months, starting in January (quarterly):

  • type LIST
  • values "1"
  • interval 3

Every two months between July and December:

  • type RANGE
  • values "7", "12"
  • interval 2
object

Specifies which day(s) a schedule is active for. This is required for all schedule types. The "values" field holds different data depending on the type of schedule:

  • WEEKLY: days of the week (1-7)
  • MONTHLY: days of the month (1-31, L, L-1...)
  • ANNUALLY: if the "months" field is also set: days of the month (1-31, L, L-1...); otherwise: ISO-8601 dates without year ("--12-31")
  • CALENDAR: ISO-8601 dates ("2020-12-31")

Note that CALENDAR only supports the LIST type, and ANNUALLY does not support the RANGE type when provided with ISO-8601 dates without year.

Examples:

On Sundays:

  • type LIST
  • values "1"

The second to last day of the month:

  • type LIST
  • values "L-1"

From the 20th to the last day of the month:

  • type RANGE
  • values "20", "L"

Every March 2nd:

  • type LIST
  • values "--03-02"

On March 2nd, 2021:

  • type: LIST
  • values "2021-03-02"
required
object

Specifies which hour(s) a schedule is active for. Examples:

Every three hours starting from 8AM, inclusive:

  • type LIST
  • values "8"
  • interval 3

During business hours:

  • type RANGE
  • values "9", "5"

At 5AM, noon, and 5PM:

  • type LIST
  • values "5", "12", "17"
expiration
string or null <date-time>

Specifies the time after which this schedule will no longer occur.

timeZoneId
string

The time zone to use when running the schedule. For instance, if the schedule is scheduled to run at 1AM, and this field is set to "CST", the schedule will run at 1AM CST.

Responses

Request samples

Content type
application/json
Example

Runs on the 15th and last day of the month, at 5PM.

{
  • "type": "MONTHLY",
  • "hours": {
    },
  • "days": {
    }
}

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Delete campaign template schedule

Use this API to delete the schedule for a certification campaign template. The API returns a 404 if there is no schedule set.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 04bedce387bd47b2ae1f86eb0bb36dee

ID of the campaign template whose schedule is being deleted.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Generate a campaign from template

Use this API to generate a new certification campaign from a campaign template.

The campaign object contained in the template has special formatting applied to its name and description fields that determine the generated campaign's name/description. Placeholders in those fields are formatted with the current date and time upon generation.

Placeholders consist of a percent sign followed by a letter indicating what should be inserted. For example, "%Y" inserts the current year, and a campaign template named "Campaign for %y" generates a campaign called "Campaign for 2020" (assuming the year at generation time is 2020).

Valid placeholders are the date/time conversion suffix characters supported by java.util.Formatter.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c9180835d191a86015d28455b4a2329

ID of the campaign template to use for generation.

Responses

Response samples

Content type
application/json
{
  • "id": "ef38f94347e94562b5bb8424a56397d8",
  • "name": "Campaign Name",
  • "type": "CAMPAIGN",
  • "campaignType": "MANAGER",
  • "description": "A description of the campaign",
  • "correlatedStatus": "CORRELATED",
  • "mandatoryCommentRequirement": "NO_DECISIONS"
}

Certification Summaries

Use this API to implement certification summary functionality. With this functionality in place, administrators and designated certification reviewers can review summaries of identity certification campaigns and draw conclusions about the campaigns' scope, security, and effectiveness. Implementing certification summary functionality improves organizations' ability to review their certifications and helps them satisfy audit and regulatory requirements by enabling them to trace access changes and the decisions made in their review processes.

A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. These certifications serve as a way of showing that a user's access has been reviewed and approved. Multiple certifications by different reviewers are often required to approve a user's access. A set of multiple certifications is called a certification campaign.

For example, an organization may use a Manager Certification as a way of showing that a user's access has been reviewed and approved by their manager, or if the certification is part of a campaign, that the user's access has been reviewed and approved by multiple managers. Once this certification has been completed, Identity Security Cloud would provision all the access the user needs, nothing more.

Certification summaries provide information about identity certification campaigns such as the identities involved, the number of decisions made, and the access changed. For example, an administrator or designated certification reviewer can examine the Manager Certification campaign to get an overview of how many entitlement decisions are made in that campaign as opposed to role decisions, which identities would be affected by changes to the campaign, and how those identities' access would be affected.

Summary of certification decisions

This API returns a summary of the decisions made on an identity campaign certification. The decisions are summarized by type. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The certification ID

query Parameters
filters
string
Example: filters=identitySummary.id eq "ef38f94347e94562b5bb8424a56397d8"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

identitySummary.id: eq, in

Responses

Response samples

Content type
application/json
{
  • "entitlementDecisionsMade": 3,
  • "accessProfileDecisionsMade": 5,
  • "roleDecisionsMade": 2,
  • "accountDecisionsMade": 4,
  • "entitlementDecisionsTotal": 6,
  • "accessProfileDecisionsTotal": 10,
  • "roleDecisionsTotal": 4,
  • "accountDecisionsTotal": 8,
  • "entitlementsApproved": 2,
  • "entitlementsRevoked": 1,
  • "accessProfilesApproved": 3,
  • "accessProfilesRevoked": 2,
  • "rolesApproved": 2,
  • "rolesRevoked": 0,
  • "accountsApproved": 1,
  • "accountsRevoked": 3
}

Identity summaries for campaign certification

This API returns a list of the identity summaries for a specific identity campaign certification. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=id eq "ef38f94347e94562b5bb8424a56397d8"

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

completed: eq, ne

name: eq, sw

sorters
string <comma-separated>
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Access summaries

This API returns a list of access summaries for the specified identity campaign certification and type. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

type
required
string
Enum: "ROLE" "ACCESS_PROFILE" "ENTITLEMENT"
Example: ACCESS_PROFILE

The type of access review item to retrieve summaries for

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=access.id eq "ef38f94347e94562b5bb8424a56397d8"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

completed: eq, ne

access.id: eq, in

access.name: eq, sw

entitlement.sourceName: eq, sw

accessProfile.sourceName: eq, sw

sorters
string <comma-separated>
Example: sorters=access.name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: access.name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Summary for identity

This API returns the summary for an identity on a specified identity campaign certification. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

identitySummaryId
required
string
Example: 2c91808772a504f50172a9540e501ba8

The identity summary ID

Responses

Response samples

Content type
application/json
{
  • "id": "2c91808772a504f50172a9540e501ba7",
  • "name": "Alison Ferguso",
  • "identityId": "2c9180857182306001719937377a33de",
  • "completed": true
}

Certifications

Use this API to implement certification functionality. With this functionality in place, administrators and designated certification reviewers can review users' access certifications and decide whether to approve access, revoke it, or reassign the review to another reviewer. Implementing certifications improves organizations' data security by reducing inappropriate access through a distributed review process and helping them satisfy audit and regulatory requirements.

A certification refers to Identity Security Cloud's mechanism for reviewing a user's access to entitlements (sets of permissions) and approving or removing that access. These serve as a way of showing that a user's access has been reviewed and approved. Multiple certifications by different reviewers are often required to approve a user's access. A set of multiple certifications is called a certification campaign.

For example, an organization may use a Manager Certification as a way of showing that a user's access has been reviewed and approved by their manager, or if the certification is part of a campaign, that the user's access has been reviewed and approved by multiple managers. Once this certification has been completed, Identity Security Cloud would provision all the access the user needs, nothing more.

Organization administrators or certification administrators can designate other Identity Security Cloud users as certification reviewers. Those reviewers can select the 'Certifications' tab to view any of the certifications they either need to review or have already reviewed under the 'Active' and 'Completed' tabs, respectively.

When a certification campaign is in progress, certification reviewers will see certifications listed under 'Active,' where they can review the involved identities. Under the 'Decision' column on the right, next to each access item, reviewers can select the checkmark to approve access, select the 'X' to revoke access, or they can toggle the 'More Options' menu to reassign the certification to another reviewer and provide a reason for reassignment in the form of a comment.

Once a reviewer has made decisions on all the certification's involved access items, he or she must select 'Sign Off' to complete the review process. Doing so converts the certification into read-only status, preventing any further changes to the review decisions and deleting the work item (task) from the reviewer's list of work items.

Once all the reviewers have signed off, the certification campaign either completes or, if any reviewers decided to revoke access for any of the involved identities, it moves into a remediation phase. In the remediation phase, identities' entitlements are altered to remove any entitlements marked for revocation. In this situation, the certification campaign completes once all the remediation requests are completed.

List identity campaign certifications

Use this API to get a list of identity campaign certifications for the specified query parameters. Any authenticated token can call this API, but only certifications you are authorized to review will be returned. This API does not support requests for certifications assigned to governance groups.

Authorizations:
Personal Access Token
query Parameters
reviewer-identity
string
Example: reviewer-identity=me

Reviewer's identity. me indicates the current user.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=id eq "ef38f94347e94562b5bb8424a56397d8"

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

campaign.id: eq, in

phase: eq

completed: eq

sorters
string <comma-separated>
Example: sorters=name,due

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, due, signed

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Identity certification by id

This API returns a single identity campaign certification by its ID. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The certification id

Responses

Response samples

Content type
application/json
{
  • "id": "2c9180835d2e5168015d32f890ca1581",
  • "name": "Source Owner Access Review for Employees [source]",
  • "campaign": {
    },
  • "completed": true,
  • "identitiesCompleted": 5,
  • "identitiesTotal": 10,
  • "created": "2018-06-25T20:22:28.104Z",
  • "modified": "2018-06-25T20:22:28.104Z",
  • "decisionsMade": 20,
  • "decisionsTotal": 40,
  • "due": "2018-10-19T13:49:37.385Z",
  • "signed": "2018-10-19T13:49:37.385Z",
  • "reviewer": {
    },
  • "reassignment": {
    },
  • "hasErrors": false,
  • "errorMessage": "The certification has an error",
  • "phase": "ACTIVE"
}

List of access review items

This API returns a list of access review items for an identity campaign certification. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=id eq "ef38f94347e94562b5bb8424a56397d8"

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

type: eq

access.type: eq

completed: eq, ne

identitySummary.id: eq, in

identitySummary.name: eq, sw

access.id: eq, in

access.name: eq, sw

entitlement.sourceName: eq, sw

accessProfile.sourceName: eq, sw

sorters
string <comma-separated>
Example: sorters=access.name,-accessProfile.sourceName

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: identitySummary.name, access.name, access.type, entitlement.sourceName, accessProfile.sourceName

entitlements
string
Example: entitlements=identityEntitlement

Filter results to view access review items that pertain to any of the specified comma-separated entitlement IDs.

An error will occur if this param is used with access-profiles or roles as only one of these query params can be used at a time.

access-profiles
string
Example: access-profiles=accessProfile1

Filter results to view access review items that pertain to any of the specified comma-separated access-profle IDs.

An error will occur if this param is used with entitlements or roles as only one of these query params can be used at a time.

roles
string
Example: roles=userRole

Filter results to view access review items that pertain to any of the specified comma-separated role IDs.

An error will occur if this param is used with entitlements or access-profiles as only one of these query params can be used at a time.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Decide on a certification item

The API makes a decision to approve or revoke one or more identity campaign certification items. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The ID of the identity campaign certification on which to make decisions

Request Body schema: application/json

A non-empty array of decisions to be made.

Array ([ 1 .. 250 ] items)
id
required
string

The id of the review decision

decision
required
string (CertificationDecision)
Enum: "APPROVE" "REVOKE"

The decision to approve or revoke the review item

proposedEndDate
string <date-time>

The date at which a user's access should be taken away. Should only be set for REVOKE decisions.

bulk
required
boolean

Indicates whether decision should be marked as part of a larger bulk decision

object (Review Recommendation)
comments
string

Comments recorded when the decision was made

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "2c9180835d2e5168015d32f890ca1581",
  • "name": "Source Owner Access Review for Employees [source]",
  • "campaign": {
    },
  • "completed": true,
  • "identitiesCompleted": 5,
  • "identitiesTotal": 10,
  • "created": "2018-06-25T20:22:28.104Z",
  • "modified": "2018-06-25T20:22:28.104Z",
  • "decisionsMade": 20,
  • "decisionsTotal": 40,
  • "due": "2018-10-19T13:49:37.385Z",
  • "signed": "2018-10-19T13:49:37.385Z",
  • "reviewer": {
    },
  • "reassignment": {
    },
  • "hasErrors": false,
  • "errorMessage": "The certification has an error",
  • "phase": "ACTIVE"
}

Reassign identities or items

This API reassigns up to 50 identities or items in an identity campaign certification to another reviewer. A token with ORG_ADMIN or CERT_ADMIN authority is required to call this API. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

Request Body schema: application/json
required
Array of objects (Reassign Reference)
reassignTo
required
string

The ID of the identity to which the certification is reassigned

reason
required
string

The reason comment for why the reassign was made

Responses

Request samples

Content type
application/json
{
  • "reassign": [
    ],
  • "reassignTo": "ef38f94347e94562b5bb8424a56397d8",
  • "reason": "reassigned for some reason"
}

Response samples

Content type
application/json
{
  • "id": "2c9180835d2e5168015d32f890ca1581",
  • "name": "Source Owner Access Review for Employees [source]",
  • "campaign": {
    },
  • "completed": true,
  • "identitiesCompleted": 5,
  • "identitiesTotal": 10,
  • "created": "2018-06-25T20:22:28.104Z",
  • "modified": "2018-06-25T20:22:28.104Z",
  • "decisionsMade": 20,
  • "decisionsTotal": 40,
  • "due": "2018-10-19T13:49:37.385Z",
  • "signed": "2018-10-19T13:49:37.385Z",
  • "reviewer": {
    },
  • "reassignment": {
    },
  • "hasErrors": false,
  • "errorMessage": "The certification has an error",
  • "phase": "ACTIVE"
}

Finalize identity certification decisions

This API finalizes all decisions made on an identity campaign certification and initiates any remediations required. Reviewers for this certification can also call this API. This API does not support requests for certifications assigned to Governance Groups.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

Responses

Response samples

Content type
application/json
{
  • "id": "2c9180835d2e5168015d32f890ca1581",
  • "name": "Source Owner Access Review for Employees [source]",
  • "campaign": {
    },
  • "completed": true,
  • "identitiesCompleted": 5,
  • "identitiesTotal": 10,
  • "created": "2018-06-25T20:22:28.104Z",
  • "modified": "2018-06-25T20:22:28.104Z",
  • "decisionsMade": 20,
  • "decisionsTotal": 40,
  • "due": "2018-10-19T13:49:37.385Z",
  • "signed": "2018-10-19T13:49:37.385Z",
  • "reviewer": {
    },
  • "reassignment": {
    },
  • "hasErrors": false,
  • "errorMessage": "The certification has an error",
  • "phase": "ACTIVE"
}

Permissions for entitlement certification item

This API returns the permissions associated with an entitlement certification item based on the certification item's ID. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
certificationId
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The certification ID

itemId
required
string
Example: 2c91808671bcbab40171bd945d961227

The certification item ID

query Parameters
filters
string
Example: filters=target eq "SYS.OBJAUTH2"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

target: eq, sw

rights: ca

Supported composite operators: and, or

All field values (second filter operands) are case-insensitive for this API.

Only a single and or or composite filter operator may be used. It must also be used between a target filter and a rights filter, not between 2 filters for the same field.

For example, the following is valid: ?filters=rights+ca+(%22CREATE%22)+and+target+eq+%22SYS.OBJAUTH2%22

The following is invalid: 1?filters=rights+ca+(%22CREATE%22)+and+rights+ca+(%SELECT%22)1

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List of reviewers for certification

This API returns a list of reviewers for the certification. Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The certification ID

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=name eq "Bob"

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

email: eq, sw

sorters
string <comma-separated>
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, email

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Reassign certifications asynchronously

This API initiates a task to reassign up to 500 identities or items in an identity campaign certification to another reviewer. The certification-tasks API can be used to get an updated status on the task and determine when the reassignment is complete.

Reviewers for this certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f94347e94562b5bb8424a56397d8

The identity campaign certification ID

Request Body schema: application/json
required
Array of objects (Reassign Reference)
reassignTo
required
string

The ID of the identity to which the certification is reassigned

reason
required
string

The reason comment for why the reassign was made

Responses

Request samples

Content type
application/json
{
  • "reassign": [
    ],
  • "reassignTo": "ef38f94347e94562b5bb8424a56397d8",
  • "reason": "reassigned for some reason"
}

Response samples

Content type
application/json
{
  • "id": "2c918086719eec070171a7e3355a360a",
  • "type": "ADMIN_REASSIGN",
  • "targetType": "CAMPAIGN",
  • "targetId": "2c918086719eec070171a7e3355a834c",
  • "status": "QUEUED",
  • "errors": {
    },
  • "reassignmentTrailDTOs": {
    },
  • "created": "2020-09-24T18:10:47.693Z"
}

Certification task by id

This API returns the certification task for the specified ID. Reviewers for the specified certification can also call this API.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 63b32151-26c0-42f4-9299-8898dc1c9daa

The task ID

Responses

Response samples

Content type
application/json
{
  • "id": "2c918086719eec070171a7e3355a360a",
  • "type": "ADMIN_REASSIGN",
  • "targetType": "CAMPAIGN",
  • "targetId": "2c918086719eec070171a7e3355a834c",
  • "status": "QUEUED",
  • "errors": {
    },
  • "reassignmentTrailDTOs": {
    },
  • "created": "2020-09-24T18:10:47.693Z"
}

List of pending certification tasks

This API returns a list of pending (QUEUED or IN_PROGRESS) certification tasks. Any authenticated token can call this API, but only certification tasks you are authorized to review will be returned.

Authorizations:
Personal Access Token
query Parameters
reviewer-identity
string
Example: reviewer-identity=Ada.1de82e55078344

The ID of reviewer identity. me indicates the current user.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=type eq "ADMIN_REASSIGN"

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

targetId: eq, in

type: eq, in

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Configuration Hub

Use this API to implement and customize configuration settings management. With this functionality, you can access the Configuration Hub actions and build your own automated pipeline for Identity Security Cloud configuration change delivery and deployment.

Common usages for Configuration Hub includes:

  • Upload configuration file - Configuration files can be managed and deployed using Configuration Hub by uploading a JSON file which contains configuration data.
  • Manage object mapping - Create rules to map and substitute attributes when migrating configurations.
  • Manage backups for configuration settings
  • Manage configuration drafts
  • Upload configurations and manage object mappings between tenants.

Refer to Using the SailPoint Configuration Hub for more information about Configuration Hub.

Gets list of object mappings

This gets a list of existing object mappings between current org and source org. Source org should be "default" when getting object mappings that are not associated to any particular org. The request will need the following security scope:

  • sp:config-object-mapping:read
Authorizations:
Personal Access Token
path Parameters
sourceOrg
required
string
Example: source-org

The name of the source org.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Creates an object mapping

This creates an object mapping between current org and source org. Source org should be "default" when creating an object mapping that is not to be associated to any particular org. The request will need the following security scope:

  • sp:config-object-mapping:manage
Authorizations:
Personal Access Token
path Parameters
sourceOrg
required
string
Example: source-org

The name of the source org.

Request Body schema: application/json

The object mapping request body.

objectType
required
string
Enum: "ACCESS_PROFILE" "ACCESS_REQUEST_CONFIG" "ATTR_SYNC_SOURCE_CONFIG" "AUTH_ORG" "CAMPAIGN_FILTER" "ENTITLEMENT" "FORM_DEFINITION" "GOVERNANCE_GROUP" "IDENTITY" "IDENTITY_OBJECT_CONFIG" "IDENTITY_PROFILE" "LIFECYCLE_STATE" "NOTIFICATION_TEMPLATE" "PASSWORD_POLICY" "PASSWORD_SYNC_GROUP" "PUBLIC_IDENTITIES_CONFIG" "ROLE" "RULE" "SEGMENT" "SERVICE_DESK_INTEGRATION" "SOD_POLICY" "SOURCE" "TAG" "TRANSFORM" "TRIGGER_SUBSCRIPTION" "WORKFLOW"

Type of the object the mapping value applies to, must be one from enum

jsonPath
required
string

JSONPath expression denoting the path within the object where the mapping value should be applied

sourceValue
required
string

Original value at the jsonPath location within the object

targetValue
required
string

Value to be assigned at the jsonPath location within the object

enabled
boolean
Default: false

Whether or not this object mapping is enabled

Responses

Request samples

Content type
application/json
{
  • "objectType": "GOVERNANCE_GROUP",
  • "jsonPath": "$.description",
  • "sourceValue": "Sample Governance Group",
  • "targetValue": "Sample Governance Group - Updated",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "objectMappingId": "3d6e0144-963f-4bd6-8d8d-d77b4e507ce4",
  • "objectType": "GOVERNANCE_GROUP",
  • "jsonPath": "$.description",
  • "sourceValue": "Sample Governance Group",
  • "targetValue": "Sample Governance Group - Updated",
  • "enabled": true,
  • "created": "2024-03-19T23:18:53.732Z",
  • "modified": "2024-03-19T23:18:53.732Z"
}

Deletes an object mapping

This deletes an existing object mapping. Source org should be "default" when deleting an object mapping that is not associated to any particular org. The request will need the following security scope:

  • sp:config-object-mapping:manage
Authorizations:
Personal Access Token
path Parameters
sourceOrg
required
string
Example: source-org

The name of the source org.

objectMappingId
required
string
Example: 3d6e0144-963f-4bd6-8d8d-d77b4e507ce4

The id of the object mapping to be deleted.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Bulk creates object mappings

This creates a set of object mappings (Max 25) between current org and source org. Source org should be "default" when creating object mappings that are not to be associated to any particular org. The request will need the following security scope:

  • sp:config-object-mapping:manage
Authorizations:
Personal Access Token
path Parameters
sourceOrg
required
string
Example: source-org

The name of the source org.

Request Body schema: application/json

The bulk create object mapping request body.

required
Array of objects (Object Mapping Request)

Responses

Request samples

Content type
application/json
{
  • "newObjectsMappings": [
    ]
}

Response samples

Content type
application/json
{
  • "addedObjects": [
    ]
}

Bulk updates object mappings

This updates a set of object mappings, only enabled and targetValue fields can be updated. Source org should be "default" when updating object mappings that are not associated to any particular org. The request will need the following security scope:

  • sp:config-object-mapping:manage
Authorizations:
Personal Access Token
path Parameters
sourceOrg
required
string
Example: source-org

The name of the source org.

Request Body schema: application/json

The object mapping request body.

required
object

Map of id of the object mapping to a JsonPatchOperation describing what to patch on that object mapping.

Responses

Request samples

Content type
application/json
{
  • "patches": {
    }
}

Response samples

Content type
application/json
{
  • "patchedObjects": [
    ]
}

List scheduled actions

This API gets a list of existing scheduled actions for the current tenant.

Authorizations:
Personal Access Token

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create scheduled action

This API creates a new scheduled action for the current tenant.

Authorizations:
Personal Access Token
Request Body schema: application/json

The scheduled action creation request body.

jobType
required
string
Enum: "BACKUP" "CREATE_DRAFT" "CONFIG_DEPLOY_DRAFT"

Type of the scheduled job.

startTime
string <date-time>

The time when this scheduled action should start. Optional.

cronString
string

Cron expression defining the schedule for this action. Optional for repeated events.

timeZoneId
string

Time zone ID for interpreting the cron expression. Optional, will default to current time zone.

required
object

Responses

Request samples

Content type
application/json
{
  • "jobType": "BACKUP",
  • "startTime": "2024-08-16T14:16:58.389Z",
  • "cronString": "0 0 12 * * * *",
  • "timeZoneId": "America/Chicago",
  • "content": {
    }
}

Response samples

Content type
application/json
{
  • "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde",
  • "created": "2024-08-16T14:16:58.389Z",
  • "jobType": "BACKUP",
  • "content": {
    },
  • "startTime": "2024-08-16T14:16:58.389Z",
  • "cronString": "0 0 12 * * * *"
}

Update scheduled action

This API updates an existing scheduled action using JSON Patch format.

Authorizations:
Personal Access Token
path Parameters
scheduledActionId
required
string
Example: 0f11f2a4-7c94-4bf3-a2bd-742580fe3bde

The ID of the scheduled action.

Request Body schema: application/json-patch+json

The JSON Patch document containing the changes to apply to the scheduled action.

Array of objects (Json Patch Operation)

Operations to be applied

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde",
  • "created": "2024-08-16T14:16:58.389Z",
  • "jobType": "BACKUP",
  • "content": {
    },
  • "startTime": "2024-08-16T14:16:58.389Z",
  • "cronString": "0 0 9 * * ?"
}

Delete scheduled action

This API deletes an existing scheduled action.

Authorizations:
Personal Access Token
path Parameters
scheduledActionId
required
string
Example: 0f11f2a4-7c94-4bf3-a2bd-742580fe3bde

The ID of the scheduled action.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

List uploaded configurations

This API gets a list of existing uploaded configurations for the current tenant.

Authorizations:
Personal Access Token
query Parameters
filters
string
Example: filters=status eq "COMPLETE"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

status: eq

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload a configuration

This API uploads a JSON configuration file into a tenant.

Configuration files can be managed and deployed via Configuration Hub by uploading a json file which contains configuration data. The JSON file should be the same as the one used by our import endpoints. The object types supported by upload configuration file functionality are the same as the ones supported by our regular backup functionality.

Refer to SaaS Configuration for more information about supported objects.

Authorizations:
Personal Access Token
Request Body schema: multipart/form-data

The body will consist of "data" which should contain the json file and name wish should be the name you want to assign to the uploaded file"

Example

data: "uploaded.json",
name: "A_NEW_UPLOADED_BACKUP"

Sample Upload File

{
  "version": 1,
  "tenant": "a-sample-tenant",
  "objects":
  [
    {
      "version": 1,
      "self":
        {
          "id": "0a59c7196d2917f8aa6d29686e6600fb",
          "type": "SOURCE",
          "name": "Extended Form"
        },
      "object":
        {
          "id": "0a59c7196d2917f8aa6d29686e6600fb",
          "name": "Extended Form",
          "type": "DelimitedFile",
          "connectorClass": "sailpoint.connector.DelimitedFileConnector",
          "connectorScriptName": "delimited-file-angularsc",
          "description": "Migrated app - Extended Form (original ID: 0a59c7196d2917f8aa6d29686e6600fb)",
          "deleteThreshold": 10,
          "provisionAsCsv": false,
          "owner":
            {
              "type": "IDENTITY",
              "id": "0a59c7196d2917f8816d29685fed00c3",
              "name": "slpt.services"
            },
          "connectorAttributes":
            {
              "beforemoveAccount": "Do Nothing",
              "beforemoverAccount": "Do Nothing",
              "busApp": "false",
              "file": "Empty",
              "filetransport": "local",
              "filterEmptyRecords": "true",
              "group.filetransport": "local",
              "group.filterEmptyRecords": "true",
              "group.partitionMode": "auto",
              "hasHeader": "true",
              "indexColumn": "ID",
              "isCaseInsensitiveMerge": "false",
              "isSortedByIndexColumn": "false",
              "loaProcess": "Do Nothing",
              "ltdProcess": "Do Nothing",
              "mergeRows": "false",
              "moverProcess": "Do Nothing",
              "moverRevocation": "Do Nothing",
              "nativeChangeDetectionAttributeScope": "entitlements",
              "nativeChangeDetectionEnabled": "false",
              "nativeChangeProcess": "Do Nothing",
              "parseType": "delimited",
              "partitionMode": "auto",
              "policyType": "Do Nothing",
              "rehireProcess": "Do Nothing",
              "reverseleaverProcess": "Do Nothing",
              "rtwloaProcess": "Do Nothing",
              "rtwltdProcess": "Do Nothing",
              "stopIfLineHasWrongColumnLength": "false",
              "templateApplication": "DelimitedFile Template",
              "terminationProcess": "Do Nothing"
            },
          "schemas":
            [],
          "provisioningPolicies":
            [],
          "features":
            [
              "DIRECT_PERMISSIONS",
              "NO_RANDOM_ACCESS",
              "DISCOVER_SCHEMA"
            ]
        }
    }
  ]

}

data
required
string <binary>

JSON file containing the objects to be imported.

name
required
string

Name that will be assigned to the uploaded configuration file.

Responses

Response samples

Content type
application/json
{
  • "jobId": "3469b87d-48ca-439a-868f-2160001da8c1",
  • "status": "COMPLETE",
  • "type": "BACKUP",
  • "tenant": "tenant-name",
  • "requesterName": "Requester Name",
  • "fileExists": true,
  • "created": "2021-05-11T22:23:16Z",
  • "modified": "2021-05-11T22:23:16Z",
  • "completed": "2021-05-11T22:23:16Z",
  • "name": "Backup Name",
  • "userCanDelete": false,
  • "isPartial": false,
  • "backupType": "MANUAL",
  • "options": {
    },
  • "hydrationStatus": "NOT_HYDRATED",
  • "totalObjectCount": 10,
  • "cloudStorageStatus": "SYNCED"
}

Get an uploaded configuration

This API gets an existing uploaded configuration for the current tenant.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 3d0fe04b-57df-4a46-a83b-8f04b0f9d10b

The id of the uploaded configuration.

Responses

Response samples

Content type
application/json
{
  • "jobId": "2ea830f3-2b14-4772-8a20-3d006742e419",
  • "status": "COMPLETE",
  • "type": "BACKUP",
  • "tenant": "someTenant",
  • "requesterName": "support",
  • "fileExists": true,
  • "created": "2024-02-20T22:08:31.064Z",
  • "modified": "2024-02-20T22:13:15.662Z",
  • "completed": "2024-02-20T22:08:31.689Z",
  • "name": "something new",
  • "userCanDelete": false,
  • "isPartial": false,
  • "backupType": "UPLOADED",
  • "hydrationStatus": "HYDRATED",
  • "totalObjectCount": 2
}

Delete an uploaded configuration

This API deletes an uploaded configuration based on Id.

On success, this endpoint will return an empty response.

The uploaded configuration id can be obtained from the response after a successful upload, or the list uploaded configurations endpoint.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 3d0fe04b-57df-4a46-a83b-8f04b0f9d10b

The id of the uploaded configuration.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

List backups

This API gets a list of existing backups for the current tenant.

Authorizations:
Personal Access Token
query Parameters
filters
string
Example: filters=status eq "COMPLETE"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

status: eq

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete a backup

This API deletes an existing backup for the current tenant.

On success, this endpoint will return an empty response.

The backup id can be obtained from the response after a backup was successfully created, or from the list backups endpoint.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 07659d7d-2cce-47c0-9e49-185787ee565a

The id of the backup to delete.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

List drafts

This API gets a list of existing drafts for the current tenant.

Authorizations:
Personal Access Token
query Parameters
filters
string
Example: filters=status eq "COMPLETE"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

status: eq

approvalStatus: eq

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete a draft

This API deletes an existing draft for the current tenant.

On success, this endpoint will return an empty response.

The draft id can be obtained from the response after a draft was successfully created, or from the list drafts endpoint.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 07659d7d-2cce-47c0-9e49-185787ee565a

The id of the draft to delete.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

List deploys

This API gets a list of deploys for the current tenant.

Authorizations:
Personal Access Token

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Create a deploy

This API performs a deploy based on an existing daft.

Authorizations:
Personal Access Token
Request Body schema: application/json

The deploy request body.

draftId
required
string

The id of the draft to be used by this deploy.

Responses

Request samples

Content type
application/json
{
  • "draftId": "c9a38d8c-5edf-4182-9d39-f6581d3ebd05"
}

Response samples

Content type
application/json
{
  • "jobId": "ce928190-b50a-4e9a-9854-b56959be8bb1",
  • "status": "NOT_STARTED",
  • "type": "CONFIG_DEPLOY_DRAFT",
  • "requesterName": "support",
  • "fileExists": false,
  • "created": "2024-09-19T19:28:58.503Z",
  • "modified": "2024-09-19T19:28:58.509Z",
  • "draftId": "ebee8250-841f-41de-b74f-288b81137d12",
  • "draftName": "Draft for 46207915-854f-4894-8723-782fdcc677d6"
}

Get a deploy

This API gets an existing deploy for the current tenant.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 3d0fe04b-57df-4a46-a83b-8f04b0f9d10b

The id of the deploy.

Responses

Response samples

Content type
application/json
{
  • "jobId": "3d0fe04b-57df-4a46-a83b-8f04b0f9d10b",
  • "status": "COMPLETE",
  • "type": "CONFIG_DEPLOY_DRAFT",
  • "message": "Deploy outcome message",
  • "requesterName": "requester.name",
  • "fileExists": true,
  • "created": "2023-08-29T01:54:37.069Z",
  • "modified": "2024-07-15T16:53:45.925Z",
  • "completed": "2023-08-29T01:54:41.924Z",
  • "draftId": "925e34e3-fa7c-4e7a-9b9a-cf3b8b4b1068",
  • "draftName": "Source draft name",
  • "cloudStorageStatus": "SYNCED"
}

Connector Customizers

Saas Connectivity Customizers are cloud-based connector customizers. The customizers allow you to customize the out of the box connectors in a similar way to how you can use rules to customize VA (virtual appliance) based connectors.

Use these APIs to implement connector customizers functionality.

List all connector customizers

List all connector customizers.

Authorizations:
Personal Access Token
query Parameters
offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create connector customizer

Create a connector customizer.

Authorizations:
Personal Access Token
Request Body schema: application/json

Connector customizer to create.

name
string

Connector customizer name.

Responses

Request samples

Content type
application/json
{
  • "name": "My Custom Connector"
}

Response samples

Content type
application/json
{
  • "id": "b07dc46a-1498-4de8-bfbb-259a68e70c8a",
  • "name": "connector-customizer-name",
  • "tenantID": "2c91808568c529c60168cca6f90c1324",
  • "created": "2009-11-10 23:00:00 +0000 UTC"
}

Get connector customizer

Gets connector customizer by ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: b07dc46a-1498-4de8-bfbb-259a68e70c8a

ID of the connector customizer to get.

Responses

Response samples

Content type
application/json
{
  • "id": "b07dc46a-1498-4de8-bfbb-259a68e70c8a",
  • "name": "connector-customizer-name",
  • "imageVersion": 1,
  • "imageID": "2c91808568c529c60168cca6f90c1324",
  • "tenantID": "2c91808568c529c60168cca6f90c1324",
  • "created": "2009-11-10 23:00:00 +0000 UTC"
}

Update connector customizer

Update an existing connector customizer with the one provided in the request body. These fields are immutable: id, name, type.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: b07dc46a-1498-4de8-bfbb-259a68e70c8a

ID of the connector customizer to update.

Request Body schema: application/json

Connector rule with updated data.

name
string

Connector customizer name.

Responses

Request samples

Content type
application/json
{
  • "name": "My Custom Connector"
}

Response samples

Content type
application/json
{
  • "imageVersion": 1,
  • "imageID": "2c91808568c529c60168cca6f90c1324",
  • "id": "b07dc46a-1498-4de8-bfbb-259a68e70c8a",
  • "name": "connector-customizer-name",
  • "tenantID": "2c91808568c529c60168cca6f90c1324",
  • "created": "2009-11-10 23:00:00 +0000 UTC"
}

Delete connector customizer

Delete the connector customizer for the given ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: b07dc46a-1498-4de8-bfbb-259a68e70c8a

ID of the connector customizer to delete.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Creates a connector customizer version

Creates a new version for the customizer.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: b07dc46a-1498-4de8-bfbb-259a68e70c8a

The id of the connector customizer.

Responses

Response samples

Content type
application/json
{
  • "customizerID": "b07dc46a-1498-4de8-bfbb-259a68e70c8a",
  • "imageID": "2c91808568c529c60168cca6f90c1324",
  • "version": 1,
  • "created": "2022-02-08T14:50:03.827Z"
}

Connector Rule Management

Use this API to implement connector rule management functionality. With this functionality in place, administrators can implement connector-executed rules in a programmatic, scalable way.

In Identity Security Cloud (ISC), rules serve as a flexible configuration framework you can leverage to perform complex or advanced configurations. Connector-executed rules are rules that are executed in the ISC virtual appliance (VA), usually extensions of the connector itself, the bridge between the data source and ISC.

This API allows administrators to view existing connector-executed rules, make changes to them, delete them, and create new ones from the available types.

List connector rules

List existing connector rules.

Authorizations:
Personal Access Token
query Parameters
limit
integer <int32> [ 0 .. 50 ]
Default: 50
Example: limit=50

Note that for this API the maximum value for limit is 50. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create connector rule

Create a connector rule from the available types.

Authorizations:
Personal Access Token
Request Body schema: application/json

Connector rule to create.

name
required
string [ 1 .. 128 ] characters

the name of the rule

description
string or null

a description of the rule's purpose

type
required
string
Enum: "BuildMap" "ConnectorAfterCreate" "ConnectorAfterDelete" "ConnectorAfterModify" "ConnectorBeforeCreate" "ConnectorBeforeDelete" "ConnectorBeforeModify" "JDBCBuildMap" "JDBCOperationProvisioning" "JDBCProvision" "PeopleSoftHRMSBuildMap" "PeopleSoftHRMSOperationProvisioning" "PeopleSoftHRMSProvision" "RACFPermissionCustomization" "ResourceObjectCustomization" "SAPBuildMap" "SapHrManagerRule" "SapHrOperationProvisioning" "SapHrProvision" "SuccessFactorsOperationProvisioning" "WebServiceAfterOperationRule" "WebServiceBeforeOperationRule" "ResourceObjectCustomization"

the type of rule

object

The rule's function signature. Describes the rule's input arguments and output (if any)

required
object (Source Code)

SourceCode

attributes
object or null

a map of string to objects

Responses

Request samples

Content type
application/json
{
  • "name": "WebServiceBeforeOperationRule",
  • "description": "This rule does that",
  • "type": "BuildMap",
  • "signature": {
    },
  • "sourceCode": {
    },
  • "attributes": { }
}

Response samples

Content type
application/json
{
  • "name": "WebServiceBeforeOperationRule",
  • "description": "This rule does that",
  • "type": "BuildMap",
  • "signature": {
    },
  • "sourceCode": {
    },
  • "attributes": { },
  • "id": "8113d48c0b914f17b4c6072d4dcb9dfe",
  • "created": "021-07-22T15:59:23Z",
  • "modified": "021-07-22T15:59:23Z"
}

Get connector rule

Get a connector rule by ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 8c190e6787aa4ed9a90bd9d5344523fb

ID of the connector rule to get.

Responses

Response samples

Content type
application/json
{
  • "name": "WebServiceBeforeOperationRule",
  • "description": "This rule does that",
  • "type": "BuildMap",
  • "signature": {
    },
  • "sourceCode": {
    },
  • "attributes": { },
  • "id": "8113d48c0b914f17b4c6072d4dcb9dfe",
  • "created": "021-07-22T15:59:23Z",
  • "modified": "021-07-22T15:59:23Z"
}

Update connector rule

Update an existing connector rule with the one provided in the request body. These fields are immutable: id, name, type

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 8c190e6787aa4ed9a90bd9d5344523fb

ID of the connector rule to update.

Request Body schema: application/json

Connector rule with updated data.

id
required
string

the ID of the rule to update

name
required
string [ 1 .. 128 ] characters

the name of the rule

description
string or null

a description of the rule's purpose

type
required
string
Enum: "BuildMap" "ConnectorAfterCreate" "ConnectorAfterDelete" "ConnectorAfterModify" "ConnectorBeforeCreate" "ConnectorBeforeDelete" "ConnectorBeforeModify" "JDBCBuildMap" "JDBCOperationProvisioning" "JDBCProvision" "PeopleSoftHRMSBuildMap" "PeopleSoftHRMSOperationProvisioning" "PeopleSoftHRMSProvision" "RACFPermissionCustomization" "ResourceObjectCustomization" "SAPBuildMap" "SapHrManagerRule" "SapHrOperationProvisioning" "SapHrProvision" "SuccessFactorsOperationProvisioning" "WebServiceAfterOperationRule" "WebServiceBeforeOperationRule" "ResourceObjectCustomization"

the type of rule

object

The rule's function signature. Describes the rule's input arguments and output (if any)

required
object (Source Code)

SourceCode

attributes
object or null

a map of string to objects

Responses

Request samples

Content type
application/json
{
  • "id": "8113d48c0b914f17b4c6072d4dcb9dfe",
  • "name": "WebServiceBeforeOperationRule",
  • "description": "This rule does that",
  • "type": "BuildMap",
  • "signature": {
    },
  • "sourceCode": {
    },
  • "attributes": { }
}

Response samples

Content type
application/json
{
  • "name": "WebServiceBeforeOperationRule",
  • "description": "This rule does that",
  • "type": "BuildMap",
  • "signature": {
    },
  • "sourceCode": {
    },
  • "attributes": { },
  • "id": "8113d48c0b914f17b4c6072d4dcb9dfe",
  • "created": "021-07-22T15:59:23Z",
  • "modified": "021-07-22T15:59:23Z"
}

Delete connector rule

Delete the connector rule for the given ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 8c190e6787aa4ed9a90bd9d5344523fb

ID of the connector rule to delete.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Validate connector rule

Detect issues within the connector rule's code to fix and list them.

Authorizations:
Personal Access Token
Request Body schema: application/json

Code to validate.

version
required
string

the version of the code

script
required
string

The code

Responses

Request samples

Content type
application/json
{
  • "version": "1.0",
  • "script": "return \"Mr. \" + firstName;"
}

Response samples

Content type
application/json
{
  • "state": "ERROR",
  • "details": [
    ]
}

Connectors

Use this API to implement connector functionality. With this functionality in place, administrators can view available connectors.

Connectors are the bridges Identity Security Cloud uses to communicate with and aggregate data from sources. For example, if it is necessary to set up a connection between Identity Security Cloud and the Active Directory source, a connector can bridge the two and enable Identity Security Cloud to synchronize data between the systems. This ensures account entitlements and states are correct throughout the organization.

In Identity Security Cloud, administrators can use the Connections drop-down menu and select Sources to view the available source connectors.

Refer to Identity Security Cloud Connectors for more information about the connectors available in Identity Security Cloud.

Refer to SaaS Connectivity for more information about the SaaS custom connectors that do not need VAs (virtual appliances) to communicate with their sources.

Refer to Managing Sources for more information about using connectors in Identity Security Cloud.

Get connector by script name

Fetches a connector that using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

query Parameters
locale
string
Enum: "de" "no" "fi" "sv" "ru" "pt" "ko" "zh-TW" "en" "it" "fr" "zh-CN" "hu" "es" "cs" "ja" "pl" "da" "nl"
Example: locale=de

The locale to apply to the config. If no viable locale is given, it will default to "en"

Responses

Response samples

Content type
application/json
{
  • "name": "name",
  • "type": "ServiceNow",
  • "className": "class name",
  • "scriptName": "servicenow",
  • "applicationXml": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE Application PUBLIC \"sailpoint.dtd\" \"sailpoint.dtd\">\n<Application connector=\"sailpoint.connector.OpenConnectorAdapter\" name=\"custom Atlassian Suite - Cloud\" type=\"custom Atlassian Suite - Cloud\"/>\n",
  • "correlationConfigXml": "<?xml version='1.0' encoding='UTF-8'?>\n<!-- Copyright (C) 2021 SailPoint Technologies, Inc. All rights reserved. -->\n\n<!DOCTYPE CorrelationConfig PUBLIC \"sailpoint.dtd\" \"sailpoint.dtd\">\n\n<CorrelationConfig name=\"custom Atlassian Suite - Cloud Account Correlation Config\">\n\t<AttributeAssignments>\n\t\t<Filter operation=\"EQ\" property=\"email\" value=\"mail\"/>\n\t\t<Filter operation=\"EQ\" property=\"empId\" value=\"employeeNumber\"/>\n\t\t<Filter operation=\"EQ\" property=\"displayName\" value=\"cn\"/>\n\t</AttributeAssignments>\n</CorrelationConfig>\n",
  • "sourceConfigXml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><!-- Copyright (C) 2023 SailPoint Technologies, Inc. All rights reserved. --><Form xmlns=\"http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd\" connectorName=\"custom Atlassian Suite - Cloud\" directConnect=\"true\" fileUpload=\"true\" name=\"Custom Atlassian Suite - Cloud\" status=\"released\" type=\"SourceConfig\">\n <BaseConfig>\n <Field maxFiles=\"10\" maxSize=\"300\" name=\"fileUpload\" supportedExtensions=\"jar\" type=\"fileupload\" validateJSON=\"false\"/>\n </BaseConfig>\n \n\n \n</Form>",
  • "sourceConfig": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><!-- Copyright (C) 2023 SailPoint Technologies, Inc. All rights reserved. --><Form xmlns=\"http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd\" connectorName=\"custom Atlassian Suite - Cloud\" directConnect=\"true\" fileUpload=\"true\" name=\"Custom Atlassian Suite - Cloud\" status=\"released\" type=\"SourceConfig\">\n <BaseConfig>\n <Field maxFiles=\"10\" maxSize=\"300\" name=\"fileUpload\" supportedExtensions=\"jar\" type=\"fileupload\" validateJSON=\"false\"/>\n </BaseConfig>\n \n\n \n</Form>",
  • "sourceConfigFrom": "sp-connect",
  • "s3Location": "custom-connector/scriptname",
  • "uploadedFiles": [
    ],
  • "fileUpload": true,
  • "directConnect": true,
  • "translationProperties": {
    },
  • "connectorMetadata": {
    },
  • "status": "RELEASED"
}

Delete connector by script name

Delete a custom connector that using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Update connector by script name

This API updates a custom connector by script name using JSON Patch syntax.

The following fields are patchable:

  • connectorMetadata

  • applicationXml

  • correlationConfigXml

  • sourceConfigXml

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

Request Body schema: application/json-patch+json

A list of connector detail update operations

Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "name": "name",
  • "type": "ServiceNow",
  • "className": "class name",
  • "scriptName": "servicenow",
  • "applicationXml": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE Application PUBLIC \"sailpoint.dtd\" \"sailpoint.dtd\">\n<Application connector=\"sailpoint.connector.OpenConnectorAdapter\" name=\"custom Atlassian Suite - Cloud\" type=\"custom Atlassian Suite - Cloud\"/>\n",
  • "correlationConfigXml": "<?xml version='1.0' encoding='UTF-8'?>\n<!-- Copyright (C) 2021 SailPoint Technologies, Inc. All rights reserved. -->\n\n<!DOCTYPE CorrelationConfig PUBLIC \"sailpoint.dtd\" \"sailpoint.dtd\">\n\n<CorrelationConfig name=\"custom Atlassian Suite - Cloud Account Correlation Config\">\n\t<AttributeAssignments>\n\t\t<Filter operation=\"EQ\" property=\"email\" value=\"mail\"/>\n\t\t<Filter operation=\"EQ\" property=\"empId\" value=\"employeeNumber\"/>\n\t\t<Filter operation=\"EQ\" property=\"displayName\" value=\"cn\"/>\n\t</AttributeAssignments>\n</CorrelationConfig>\n",
  • "sourceConfigXml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><!-- Copyright (C) 2023 SailPoint Technologies, Inc. All rights reserved. --><Form xmlns=\"http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd\" connectorName=\"custom Atlassian Suite - Cloud\" directConnect=\"true\" fileUpload=\"true\" name=\"Custom Atlassian Suite - Cloud\" status=\"released\" type=\"SourceConfig\">\n <BaseConfig>\n <Field maxFiles=\"10\" maxSize=\"300\" name=\"fileUpload\" supportedExtensions=\"jar\" type=\"fileupload\" validateJSON=\"false\"/>\n </BaseConfig>\n \n\n \n</Form>",
  • "sourceConfig": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><!-- Copyright (C) 2023 SailPoint Technologies, Inc. All rights reserved. --><Form xmlns=\"http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd\" connectorName=\"custom Atlassian Suite - Cloud\" directConnect=\"true\" fileUpload=\"true\" name=\"Custom Atlassian Suite - Cloud\" status=\"released\" type=\"SourceConfig\">\n <BaseConfig>\n <Field maxFiles=\"10\" maxSize=\"300\" name=\"fileUpload\" supportedExtensions=\"jar\" type=\"fileupload\" validateJSON=\"false\"/>\n </BaseConfig>\n \n\n \n</Form>",
  • "sourceConfigFrom": "sp-connect",
  • "s3Location": "custom-connector/scriptname",
  • "uploadedFiles": [
    ],
  • "fileUpload": true,
  • "directConnect": true,
  • "translationProperties": {
    },
  • "connectorMetadata": {
    },
  • "status": "RELEASED"
}

Get connector list

Fetches list of connectors that have 'RELEASED' status using filtering and pagination.

Authorizations:
Personal Access Token
query Parameters
filters
string
Example: filters=directConnect eq "true"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

name: sw, co

type: sw, co, eq

directConnect: eq

category: eq

features: ca

labels: ca

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

locale
string
Enum: "de" "no" "fi" "sv" "ru" "pt" "ko" "zh-TW" "en" "it" "fr" "zh-CN" "hu" "es" "cs" "ja" "pl" "da" "nl"
Example: locale=de

The locale to apply to the config. If no viable locale is given, it will default to "en"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create custom connector

Create custom connector.

Authorizations:
Personal Access Token
Request Body schema: application/json
name
required
string

The connector name. Need to be unique per tenant. The name will able be used to derive a url friendly unique scriptname that will be in response. Script name can then be used for all update endpoints

type
string

The connector type. If not specified will be defaulted to 'custom '+name

className
required
string

The connector class name. If you are implementing openconnector standard (what is recommended), then this need to be set to sailpoint.connector.OpenConnectorAdapter

directConnect
boolean
Default: true

true if the source is a direct connect source

status
string
Enum: "DEVELOPMENT" "DEMO" "RELEASED"

The connector status

Responses

Request samples

Content type
application/json
{
  • "name": "custom connector",
  • "type": "custom connector type",
  • "className": "sailpoint.connector.OpenConnectorAdapter",
  • "directConnect": true,
  • "status": "RELEASED"
}

Response samples

Content type
application/json
{
  • "name": "name",
  • "type": "ServiceNow",
  • "scriptName": "servicenow",
  • "className": "sailpoint.connector.OpenConnectorAdapter",
  • "features": [
    ],
  • "directConnect": true,
  • "connectorMetadata": {
    },
  • "status": "RELEASED"
}

Get connector source configuration

Fetches a connector's source config using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Update connector source configuration

Update a connector's source config using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

Request Body schema: multipart/form-data
file
required
string <binary>

connector source config xml file

Responses

Response samples

Content type
application/json
{
  • "message": "unsupported xsd version, please ensure latest xsd version http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd is used for source config",
  • "scriptName": "servicenow",
  • "updatedFiles": [
    ],
  • "status": "ERROR"
}

Get connector translations

Fetches a connector's translations using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. Scriptname is the unique id generated at connector creation.

locale
required
string
Enum: "de" "no" "fi" "sv" "ru" "pt" "ko" "zh-TW" "en" "it" "fr" "zh-CN" "hu" "es" "cs" "ja" "pl" "da" "nl"
Example: de

The locale to apply to the config. If no viable locale is given, it will default to "en"

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Update connector translations

Update a connector's translations using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. Scriptname is the unique id generated at connector creation.

locale
required
string
Enum: "de" "no" "fi" "sv" "ru" "pt" "ko" "zh-TW" "en" "it" "fr" "zh-CN" "hu" "es" "cs" "ja" "pl" "da" "nl"
Example: de

The locale to apply to the config. If no viable locale is given, it will default to "en"

Request Body schema: multipart/form-data
object

Responses

Response samples

Content type
application/json
{
  • "message": "unsupported xsd version, please ensure latest xsd version http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd is used for source config",
  • "scriptName": "servicenow",
  • "updatedFiles": [
    ],
  • "status": "ERROR"
}

Get connector source template

Fetches a connector's source template using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Update connector source template

Update a connector's source template using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. ScriptName is the unique id generated at connector creation.

Request Body schema: multipart/form-data
file
required
string <binary>

connector source template xml file

Responses

Response samples

Content type
application/json
{
  • "message": "unsupported xsd version, please ensure latest xsd version http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd is used for source config",
  • "scriptName": "servicenow",
  • "updatedFiles": [
    ],
  • "status": "ERROR"
}

Get connector correlation configuration

Fetches a connector's correlation config using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. Scriptname is the unique id generated at connector creation.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Update connector correlation configuration

Update a connector's correlation config using its script name.

Authorizations:
Personal Access Token
path Parameters
scriptName
required
string
Example: aScriptName

The scriptName value of the connector. Scriptname is the unique id generated at connector creation.

Request Body schema: multipart/form-data
file
required
string <binary>

connector correlation config xml file

Responses

Response samples

Content type
application/json
{
  • "message": "unsupported xsd version, please ensure latest xsd version http://www.sailpoint.com/xsd/sailpoint_form_2_0.xsd is used for source config",
  • "scriptName": "servicenow",
  • "updatedFiles": [
    ],
  • "status": "ERROR"
}

Custom Forms

Use this API to build and manage custom forms. With this functionality in place, administrators can create and view form definitions and form instances.

Forms are composed of sections and fields. Sections split the form into logical groups of fields and fields are the data collection points within the form. Configure conditions to modify elements of the form as the responder provides input. Create form inputs to pass information from a calling feature, like a workflow, to your form.

Forms can be used within workflows as an action or as a trigger. The Form Action allows you to assign a form as a step in a running workflow, suspending the workflow until the form is submitted or times out, and the workflow resumes. The Form Submitted Trigger initiates a workflow when a form is submitted. The trigger can be configured to initiate on submission of a full form, a form element with any value, or a form element with a particular value.

Refer to Forms for more information about using forms in Identity Security Cloud.

Export form definitions by tenant.

No parameters required.

Authorizations:
Personal Access Token
query Parameters
offset
integer <int64>
Default: 0
Example: offset=250

Offset

Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in V3 API Standard Collection Parameters. The offset value is record-based, not page-based, and the index starts at 0.

limit
integer <int64> [ 0 .. 250 ] characters
Default: 250
Example: limit=250

Limit

Integer specifying the maximum number of records to return in a single API call. The standard syntax described in V3 API Standard Collection Parameters. If it is not specified, a default limit is used.

filters
string
Example: filters=name sw "my form"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

name: eq, gt, sw, in

description: eq, gt, sw, in

created: eq, gt, sw, in

modified: eq, gt, sw, in

sorters
string
Default: "name"
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, description, created, modified

Responses

Response samples

Content type
application/json
{
  • "count": 1,
  • "results": [
    ]
}

Creates a form definition.

Authorizations:
Personal Access Token
Request Body schema: application/json

Body is the request payload to create form definition request

description
string [ 0 .. 2000 ] characters

Description is the form definition description

Array of objects (FormCondition)

FormConditions is the conditional logic that modify the form dynamically modify the form as the recipient is interacting out the form

Array of objects (FormElement)

FormElements is a list of nested form elements

Array of objects (FormDefinitionInput)

FormInput is a list of form inputs that are required when creating a form-instance object

name
required
string <= 255 characters

Name is the form definition name

required
object (FormOwner)
Array of objects (FormUsedBy)

UsedBy is a list of objects where when any system uses a particular form it reaches out to the form service to record it is currently being used

Responses

Request samples

Content type
application/json
{
  • "name": "my form",
  • "description": "my form description",
  • "owner": {
    },
  • "formElements": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "00000000-0000-0000-0000-000000000000",
  • "name": "My form",
  • "description": "My form description",
  • "owner": {
    },
  • "usedBy": [
    ],
  • "formInput": [
    ],
  • "formElements": [
    ],
  • "formConditions": [
    ],
  • "created": "2023-07-12T20:14:57.74486Z",
  • "modified": "2023-07-12T20:14:57.74486Z"
}

Return a form definition.

Parameter {formDefinitionID} should match a form definition ID.

Authorizations:
Personal Access Token
path Parameters
formDefinitionID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form definition ID

Responses

Response samples

Content type
application/json
{
  • "id": "00000000-0000-0000-0000-000000000000",
  • "name": "My form",
  • "description": "My form description",
  • "owner": {
    },
  • "usedBy": [
    ],
  • "formInput": [
    ],
  • "formElements": [
    ],
  • "formConditions": [
    ],
  • "created": "2023-07-12T20:14:57.74486Z",
  • "modified": "2023-07-12T20:14:57.74486Z"
}

Deletes a form definition.

Parameter {formDefinitionID} should match a form definition ID.

Authorizations:
Personal Access Token
path Parameters
formDefinitionID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form definition ID

Responses

Response samples

Content type
application/json
{ }

Patch a form definition.

Parameter {formDefinitionID} should match a form definition ID.

Authorizations:
Personal Access Token
path Parameters
formDefinitionID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form definition ID

Request Body schema: application/json

Body is the request payload to patch a form definition, check: https://jsonpatch.com

Array
property name*
additional property
object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "00000000-0000-0000-0000-000000000000",
  • "name": "My form",
  • "description": "My form description",
  • "owner": {
    },
  • "usedBy": [
    ],
  • "formInput": [
    ],
  • "formElements": [
    ],
  • "formConditions": [
    ],
  • "created": "2023-07-12T20:14:57.74486Z",
  • "modified": "2023-07-12T20:14:57.74486Z"
}

Preview form definition data source.

Authorizations:
Personal Access Token
path Parameters
formDefinitionID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form definition ID

query Parameters
limit
integer <int64> [ 0 .. 250 ] characters
Default: 10
Example: limit=10

Limit

Integer specifying the maximum number of records to return in a single API call. The standard syntax described in V3 API Standard Collection Parameters. If it is not specified, a default limit is used.

filters
string
Example: filters=value eq "ID01"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

value: eq, ne, in

Supported composite operators: not

Only a single not may be used, and it can only be used with the in operator. The not composite operator must be used in front of the field. For example, the following is valid: not value in ("ID01")

query
string
Example: query=ac

String that is passed to the underlying API to filter other (non-ID) fields. For example, for access profile data sources, this string will be passed to the access profile api and used with a "starts with" filter against several fields.

Request Body schema: application/json

Body is the request payload to create a form definition dynamic schema

object (FormElementDynamicDataSource)

Responses

Request samples

Content type
application/json
{
  • "dataSource": {
    }
}

Response samples

Content type
application/json
{
  • "results": "{\"results\":[{\"label\":\"Alfred 255e71dfc6e\",\"subLabel\":\"Alfred.255e71dfc6e@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e16676\"},{\"label\":\"Alize eba9d4cd27da\",\"subLabel\":\"Alize.eba9d4cd27da@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2f1667c\"},{\"label\":\"Antonina 01f69c3ea\",\"subLabel\":\"Antonina.01f69c3ea@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2f9667e\"},{\"label\":\"Ardella 21e78ce155\",\"subLabel\":\"Ardella.21e78ce155@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e6667a\"},{\"label\":\"Arnaldo d8582b6e17\",\"subLabel\":\"Arnaldo.d8582b6e17@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced3426686\"},{\"label\":\"Aurelia admin24828\",\"subLabel\":\"Aurelia.admin24828@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e16674\"},{\"label\":\"Barbara 72ca418fdd\",\"subLabel\":\"Barbara.72ca418fdd@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2fb6680\"},{\"label\":\"Barbara ee1a2436ee\",\"subLabel\":\"Barbara.ee1a2436ee@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e56678\"},{\"label\":\"Baylee 652d72432f3\",\"subLabel\":\"Baylee.652d72432f3@testmail.identitysoon.com\",\"value\":\"2c91808582184782018227ced28b6aee\"},{\"label\":\"Brock e76b56ae4d49\",\"subLabel\":\"Brock.e76b56ae4d49@testmail.identitysoon.com\",\"value\":\"2c91808582184782018227ced28b6aef\"}]}"
}

List form definitions by tenant.

No parameters required.

Authorizations:
Personal Access Token
query Parameters
offset
integer <int64> >= 0
Default: 0

Offset

Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in V3 API Standard Collection Parameters. The offset value is record-based, not page-based, and the index starts at 0.

limit
integer <int64> [ 0 .. 250 ]
Default: 250
Example: limit=250

Limit

Integer specifying the maximum number of records to return in a single API call. The standard syntax described in V3 API Standard Collection Parameters. If it is not specified, a default limit is used.

filters
string
Example: filters=name sw "my form"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

name: eq, gt, sw, in

description: eq, gt, sw, in

created: eq, gt, sw, in

modified: eq, gt, sw, in

sorters
string
Default: "name"
Example: sorters=name

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, description, created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Generate json schema dynamically.

Authorizations:
Personal Access Token
Request Body schema: application/json

Body is the request payload to create a form definition dynamic schema

object
description
string

Description is the form definition dynamic schema description text

id
string

ID is a unique identifier

type
string

Type is the form definition dynamic schema type

versionNumber
integer <int64>

VersionNumber is the form definition dynamic schema version number

Responses

Request samples

Content type
application/json
{
  • "id": "sp:forms",
  • "attributes": {
    },
  • "description": "AnotherDescription",
  • "type": "action",
  • "versionNumber": 1
}

Response samples

Content type
application/json
{
  • "outputSchema": {
    }
}

Import form definitions from export.

Authorizations:
Personal Access Token
Request Body schema: application/json

Body is the request payload to import form definitions

Array
object (FormDefinitionResponse)
self
string
version
integer <int32>

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "importedObjects": [
    ],
  • "infos": [
    ],
  • "warnings": [
    ]
}

Upload new form definition file.

Parameter {formDefinitionID} should match a form definition ID.

Authorizations:
Personal Access Token
path Parameters
formDefinitionID
required
string
Example: 00000000-0000-0000-0000-000000000000

FormDefinitionID

String specifying FormDefinitionID

Request Body schema: multipart/form-data
file
required
string <binary>

File specifying the multipart

Responses

Response samples

Content type
application/json
{
  • "created": "2023-07-12T20:14:57.74486Z",
  • "fileId": "01FHZXHK8PTP9FVK99Z66GXQTX.png",
  • "formDefinitionId": "00000000-0000-0000-0000-000000000000"
}

Download definition file by fileid.

Authorizations:
Personal Access Token
path Parameters
formDefinitionID
required
string
Example: 00000000-0000-0000-0000-000000000000

FormDefinitionID

Form definition ID

fileID
required
string
Example: 00000031N0J7R2B57M8YG73J7M.png

FileID

String specifying the hashed name of the uploaded file we are retrieving.

Responses

Response samples

Content type
"string"

List form instances by tenant.

Returns a list of form instances for the tenant. Optionally filter by form definition ID.

Authorizations:
Personal Access Token
query Parameters
offset
integer <int64>
Default: 0

Offset

Integer specifying the offset of the first result from the beginning of the collection. The standard syntax described in V3 API Standard Collection Parameters. The offset value is record-based, not page-based, and the index starts at 0.

limit
integer <int64> [ 0 .. 250 ]
Default: 250
Example: limit=100

Limit

Integer specifying the maximum number of records to return in a single API call. The standard syntax described in V3 API Standard Collection Parameters. If it is not specified, a default limit is used.

filters
string
Example: filters=formDefinitionId eq "351c1daa-56f6-4bbf-b32c-49844c0b716e"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

formDefinitionId: eq

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a form instance.

Authorizations:
Personal Access Token
Request Body schema: application/json

Body is the request payload to create a form instance

required
object (FormInstanceCreatedBy)
expire
required
string

Expire is required

formDefinitionId
required
string

FormDefinitionID is the id of the form definition that created this form

object

FormInput is an object of form input labels to value

required
Array of objects (FormInstanceRecipient)

Recipients is required

standAloneForm
boolean
Default: false

StandAloneForm is a boolean flag to indicate if this form should be available for users to complete via the standalone form UI or should this only be available to be completed by as an embedded form

state
string
Enum: "ASSIGNED" "IN_PROGRESS" "SUBMITTED" "COMPLETED" "CANCELLED"

State is required, if not present initial state is FormInstanceStateAssigned ASSIGNED FormInstanceStateAssigned IN_PROGRESS FormInstanceStateInProgress SUBMITTED FormInstanceStateSubmitted COMPLETED FormInstanceStateCompleted CANCELLED FormInstanceStateCancelled

ttl
integer <int64>

TTL an epoch timestamp in seconds, it most be in seconds or dynamodb will ignore it SEE: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/time-to-live-ttl-before-you-start.html

Responses

Request samples

Content type
application/json
{
  • "expire": "2023-06-20T15:57:55.332882Z",
  • "formDefinitionId": "00000000-0000-0000-0000-000000000000",
  • "recipients": [
    ],
  • "createdBy": {
    }
}

Response samples

Content type
application/json
{
  • "id": "06a2d961-07fa-44d1-8d0a-2f6470e30fd2",
  • "expire": "2023-08-12T20:14:57.74486Z",
  • "state": "ASSIGNED",
  • "standAloneForm": false,
  • "createdBy": {
    },
  • "formDefinitionId": "49841cb8-00a5-4fbd-9888-8bbb28d48331",
  • "formInput": {
    },
  • "formElements": [
    ],
  • "formData": {
    },
  • "formErrors": [
    ],
  • "formConditions": [
    ],
  • "created": "2023-07-12T20:14:57.74486Z",
  • "modified": "2023-07-12T20:14:57.74486Z",
  • "recipients": [
    ]
}

Returns a form instance.

Parameter {formInstanceID} should match a form instance ID.

Only the assigned recipient (recipients[].id when type is IDENTITY) may call this.

Authorizations:
Personal Access Token
path Parameters
formInstanceID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form instance ID

Responses

Response samples

Content type
application/json
{
  • "id": "06a2d961-07fa-44d1-8d0a-2f6470e30fd2",
  • "expire": "2023-08-12T20:14:57.74486Z",
  • "state": "ASSIGNED",
  • "standAloneForm": false,
  • "createdBy": {
    },
  • "formDefinitionId": "49841cb8-00a5-4fbd-9888-8bbb28d48331",
  • "formInput": {
    },
  • "formElements": [
    ],
  • "formData": {
    },
  • "formErrors": [
    ],
  • "formConditions": [
    ],
  • "created": "2023-07-12T20:14:57.74486Z",
  • "modified": "2023-07-12T20:14:57.74486Z",
  • "recipients": [
    ]
}

Patch a form instance.

Parameter {formInstanceID} should match a form instance ID.

Only the assigned recipient (recipients[].id when type is IDENTITY) may call this.

Authorizations:
Personal Access Token
path Parameters
formInstanceID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form instance ID

Request Body schema: application/json

Body is the request payload to patch a form instance, check: https://jsonpatch.com

Array
property name*
additional property
object

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "06a2d961-07fa-44d1-8d0a-2f6470e30fd2",
  • "expire": "2023-08-12T20:14:57.74486Z",
  • "state": "ASSIGNED",
  • "standAloneForm": false,
  • "createdBy": {
    },
  • "formDefinitionId": "49841cb8-00a5-4fbd-9888-8bbb28d48331",
  • "formInput": {
    },
  • "formElements": [
    ],
  • "formData": {
    },
  • "formErrors": [
    ],
  • "formConditions": [
    ],
  • "created": "2023-07-12T20:14:57.74486Z",
  • "modified": "2023-07-12T20:14:57.74486Z",
  • "recipients": [
    ]
}

Retrieves dynamic data by element.

Parameter {formInstanceID} should match a form instance ID. Parameter {formElementID} should match a form element ID at the data source configuration.

Authorizations:
Personal Access Token
path Parameters
formInstanceID
required
string
Example: 00000000-0000-0000-0000-000000000000

Form instance ID

formElementID
required
string
Example: 1

Form element ID

query Parameters
limit
integer <int64> [ 0 .. 250 ] characters
Default: 250
Example: limit=250

Limit

Integer specifying the maximum number of records to return in a single API call. The standard syntax described in V3 API Standard Collection Parameters. If it is not specified, a default limit is used.

filters
string
Example: filters=value eq "ID01"

Filter results using the standard syntax described in V3 API Standard Collection Parameters

Filtering is supported for the following fields and operators:

value: eq, ne, in

Supported composite operators: not

Only a single not may be used, and it can only be used with the in operator. The not composite operator must be used in front of the field. For example, the following is valid: not value in ("ID01")

query
string
Example: query=support

String that is passed to the underlying API to filter other (non-ID) fields. For example, for access profile data sources, this string will be passed to the access profile api and used with a "starts with" filter against several fields.

Responses

Response samples

Content type
application/json
{
  • "results": "{\"results\":[{\"label\":\"Alfred 255e71dfc6e\",\"subLabel\":\"Alfred.255e71dfc6e@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e16676\"},{\"label\":\"Alize eba9d4cd27da\",\"subLabel\":\"Alize.eba9d4cd27da@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2f1667c\"},{\"label\":\"Antonina 01f69c3ea\",\"subLabel\":\"Antonina.01f69c3ea@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2f9667e\"},{\"label\":\"Ardella 21e78ce155\",\"subLabel\":\"Ardella.21e78ce155@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e6667a\"},{\"label\":\"Arnaldo d8582b6e17\",\"subLabel\":\"Arnaldo.d8582b6e17@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced3426686\"},{\"label\":\"Aurelia admin24828\",\"subLabel\":\"Aurelia.admin24828@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e16674\"},{\"label\":\"Barbara 72ca418fdd\",\"subLabel\":\"Barbara.72ca418fdd@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2fb6680\"},{\"label\":\"Barbara ee1a2436ee\",\"subLabel\":\"Barbara.ee1a2436ee@testmail.identitysoon.com\",\"value\":\"2c918084821847c5018227ced2e56678\"},{\"label\":\"Baylee 652d72432f3\",\"subLabel\":\"Baylee.652d72432f3@testmail.identitysoon.com\",\"value\":\"2c91808582184782018227ced28b6aee\"},{\"label\":\"Brock e76b56ae4d49\",\"subLabel\":\"Brock.e76b56ae4d49@testmail.identitysoon.com\",\"value\":\"2c91808582184782018227ced28b6aef\"}]}"
}

Download instance file by fileid.

Authorizations:
Personal Access Token
path Parameters
formInstanceID
required
string
Example: 00000000-0000-0000-0000-000000000000

FormInstanceID

Form instance ID

fileID
required
string
Example: 00000031N0J7R2B57M8YG73J7M.png

FileID

String specifying the hashed name of the uploaded file we are retrieving.

Responses

Response samples

Content type
"string"

List predefined select options.

No parameters required.

Authorizations:
Personal Access Token

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Custom Password Instructions

Use this API to implement custom password instruction functionality. With this functionality in place, administrators can create custom password instructions to help users reset their passwords, change them, unlock their accounts, or recover their usernames. This allows administrators to emphasize password policies or provide organization-specific instructions.

Administrators must first use Update Password Org Config to set customInstructionsEnabled to true.

Once they have enabled custom instructions, they can use Create Custom Password Instructions to create custom page content for the specific pageId they select.

For example, an administrator can use the pageId forget-username:user-email to set the custom text for the case when users forget their usernames and must enter their emails.

Refer to Creating Custom Instruction Text for more information about creating custom password instructions.

Create custom password instructions

This API creates the custom password instructions for the specified page ID.

Authorizations:
Personal Access Token
header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json
pageId
string
Enum: "change-password:enter-password" "change-password:finish" "flow-selection:select" "forget-username:user-email" "mfa:enter-code" "mfa:enter-kba" "mfa:select" "reset-password:enter-password" "reset-password:enter-username" "reset-password:finish" "unlock-account:enter-username" "unlock-account:finish"

The page ID that represents the page for forget user name, reset password and unlock account flow.

pageContent
string

The custom instructions for the specified page. Allow basic HTML format and maximum length is 1000 characters. The custom instructions will be sanitized to avoid attacks. If the customization text includes a link, like <A HREF=\"URL\">...</A> clicking on this will open the link on the current browser page. If you want your link to be redirected to a different page, please redirect it to "_blank" like this: <a href=\"URL" target=\"_blank\" >link</a>. This will open a new tab when the link is clicked. Notice we're only supporting _blank as the redirection target.

locale
string

The locale for the custom instructions, a BCP47 language tag. The default value is "default".

Responses

Request samples

Content type
application/json
{
  • "pageId": "reset-password:enter-password",
  • "pageContent": "See company password policies for details by clicking <a href=\"url\">here</a>"
}

Response samples

Content type
application/json
{
  • "pageId": "reset-password:enter-password",
  • "locale": "default",
  • "pageContent": "See company password policies for details by clicking <a href=\"url\">here</a>"
}

Get custom password instructions by page id

This API returns the custom password instructions for the specified page ID.

Authorizations:
Personal Access Token
path Parameters
pageId
required
string
Enum: "change-password:enter-password" "change-password:finish" "flow-selection:select" "forget-username:user-email" "mfa:enter-code" "mfa:enter-kba" "mfa:select" "reset-password:enter-password" "reset-password:enter-username" "reset-password:finish" "unlock-account:enter-username" "unlock-account:finish"
Example: mfa:select

The page ID of custom password instructions to query.

query Parameters
locale
string

The locale for the custom instructions, a BCP47 language tag. The default value is "default".

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "pageId": "reset-password:enter-password",
  • "locale": "default",
  • "pageContent": "See company password policies for details by clicking <a href=\"url\">here</a>"
}

Delete custom password instructions by page id

This API delete the custom password instructions for the specified page ID.

Authorizations:
Personal Access Token
path Parameters
pageId
required
string
Enum: "change-password:enter-password" "change-password:finish" "flow-selection:select" "forget-username:user-email" "mfa:enter-code" "mfa:enter-kba" "mfa:select" "reset-password:enter-password" "reset-password:enter-username" "reset-password:finish" "unlock-account:enter-username" "unlock-account:finish"
Example: mfa:select

The page ID of custom password instructions to delete.

query Parameters
locale
string

The locale for the custom instructions, a BCP47 language tag. The default value is "default".

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Data Segmentation

This service is responsible for creating segments that will determine how access is delegated to identities withing the organization.

Get segmentmembership by identity id

This API returns the segment membership specified by the given identity ID.

Authorizations:
Personal Access Token
path Parameters
identityId
required
string
Example: ef38f943-47e9-4562-b5bb-8424a56397d8

The identity ID to retrieve the segments they are in.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Is segmentation enabled by identity

This API returns whether or not segmentation is enabled for the identity.

Authorizations:
Personal Access Token
path Parameters
identityId
required
string
Example: ef38f943-47e9-4562-b5bb-8424a56397d8

The identity ID to retrieve if segmentation is enabled for the identity.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
true

Get segment by id

This API returns the segment specified by the given ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f943-47e9-4562-b5bb-8424a56397d8

The segment ID to retrieve.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde",
  • "name": "segment-xyz",
  • "created": "2020-01-01T00:00:00.000000Z",
  • "modified": "2020-01-01T00:00:00.000000Z",
  • "description": "This segment represents xyz",
  • "scopes": [
    ],
  • "memberSelection": [
    ],
  • "memberFilter": {
    },
  • "membership": "ALL",
  • "enabled": true,
  • "published": true
}

Publish segment by id

This will publish the segment so that it starts applying the segmentation to the desired users if enabled

Authorizations:
Personal Access Token
query Parameters
publishAll
boolean
Default: true
Example: publishAll=true

This flag decides whether you want to publish all unpublished or a list of specific segment ids

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json

A list of segment ids that you wish to publish

Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Update segment

Use this API to update segment fields by using the JSON Patch standard.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f943-47e9-4562-b5bb-8424a56397d8

The segment ID to modify.

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Request Body schema: application/json-patch+json

A list of segment update operations according to the JSON Patch standard.

The following fields are patchable:

  • name
  • description
  • membership
  • memberFilter
  • memberSelection
  • scopes
  • enabled
Array
object

Responses

Request samples

Content type
application/json-patch+json

Set the member filter

[
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde",
  • "name": "segment-xyz",
  • "created": "2020-01-01T00:00:00.000000Z",
  • "modified": "2020-01-01T00:00:00.000000Z",
  • "description": "This segment represents xyz",
  • "scopes": [
    ],
  • "memberSelection": [
    ],
  • "memberFilter": {
    },
  • "membership": "ALL",
  • "enabled": true,
  • "published": true
}

Delete segment by id

This API deletes the segment specified by the given ID.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: ef38f943-47e9-4562-b5bb-8424a56397d8

The segment ID to delete.

query Parameters
published
boolean
Default: false

This determines which version of the segment to delete

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Get segments

This API returns the segment specified by the given ID.

Authorizations:
Personal Access Token
query Parameters
enabled
boolean
Default: true
Example: enabled=true

This boolean indicates whether the segment is currently active. Inactive segments have no effect.

unique
boolean
Default: false

This returns only one record if set to true and that would be the published record if exists.

published
boolean
Default: true
Example: published=true

This boolean indicates whether the segment is being applied to the accounts. If unpublished its being actively modified until published

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=name eq ""

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, sw

name: eq, in, sw

header Parameters
X-SailPoint-Experimental
required
string
Default: true
Example: true

Use this header to enable this experimental API.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create segment

This API creates a segment.

Note: Segment definitions may take time to propagate to all identities.

Authorizations:
Personal Access Token
Request Body schema: application/json
id
string (SegmentId)

The segment's ID.

name
string

The segment's business name.

created
string <date-time>

The time when the segment is created.

modified
string <date-time>

The time when the segment is modified.

description
string

The segment's optional description.

Array of objects (Scopes)

List of Scopes that are assigned to the segment

Array of objects (Selection)

List of Identities that are assigned to the segment

object (Visibility Criteria)
membership
string (MembershipType)
Enum: "ALL" "FILTER" "SELECTION"

An enumeration of the types of membership choices

enabled
boolean (enabled)
Default: false

This boolean indicates whether the segment is currently active. Inactive segments have no effect.

published
boolean (published)
Default: false

This boolean indicates whether the segment is being applied to the accounts. If unpublished its being actively modified to until published

Responses

Request samples

Content type
application/json
{
  • "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde",
  • "name": "segment-xyz",
  • "created": "2020-01-01T00:00:00.000000Z",
  • "modified": "2020-01-01T00:00:00.000000Z",
  • "description": "This segment represents xyz",
  • "scopes": [
    ],
  • "memberSelection": [
    ],
  • "memberFilter": {
    },
  • "membership": "ALL",
  • "enabled": true,
  • "published": true
}

Response samples

Content type
application/json
{
  • "id": "0f11f2a4-7c94-4bf3-a2bd-742580fe3bde",
  • "name": "segment-xyz",
  • "created": "2020-01-01T00:00:00.000000Z",
  • "modified": "2020-01-01T00:00:00.000000Z",
  • "description": "This segment represents xyz",
  • "scopes": [
    ],
  • "memberSelection": [
    ],
  • "memberFilter": {
    },
  • "membership": "ALL",
  • "enabled": true,
  • "published": true
}

Dimensions

Use this API to implement and customize dynamic role functionality. With this functionality in place, administrators can create dimensions and configure them for use throughout Identity Security Cloud. Identity Security Cloud can use established criteria to automatically assign the dimensions to qualified users. This enables users to get all the access they need quickly and securely and administrators to spend their time on other tasks. Entitlements represent the most granular level of access in Identity Security Cloud. Access profiles represent the next level and often group entitlements. Dimension represent access selectively based on the evaluation of contextual information that is available or provided. Each Dimension include context attributes and access selection expressions which map criteria to access right assignments. Each dimension can contain up to 5 context attributes. Dynamic Access Roles represent the broadest level of access and often group access profiles ,entitlements and dimensions.Each Dynamic Access Role may contain one or more Dimensions.

List dimensions

This API returns a list of dimensions under a specified role.

A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

query Parameters
for-subadmin
string
Example: for-subadmin=5168015d32f890ca15812c9180835d2e

If provided, filters the returned list according to what is visible to the indicated ROLE_SUBADMIN Identity. The value of the parameter is either an Identity ID, or the special value me, which is shorthand for the calling Identity's ID. A 400 Bad Request error is returned if the for-subadmin parameter is specified for an Identity that is not a subadmin.

limit
integer <int32> [ 0 .. 50 ]
Default: 50
Example: limit=50

Note that for this API the maximum value for limit is 50. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=id eq '2c918086749d78830174a1a40e121518'

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

created: gt, lt, ge, le

modified: gt, lt, ge, le

owner.id: eq, in

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a dimension

This API creates a dimension. You must have a token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority to call this API. Additionally, a ROLE_SUBADMIN cannot create a dimension that includes an access profile or entitlement if that access profile or entitlement is linked to a source that the ROLE_SUBADMIN is not associated with. The maximum supported length for the description field is 2000 characters.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

Request Body schema: application/json
id
string

The id of the Dimension. This field must be left null when creating a dimension, otherwise a 400 Bad Request error will result.

name
required
string <= 128 characters

The human-readable display name of the Dimension

description
string or null

A human-readable description of the Dimension

required
object or null (OwnerReference)

Owner of the object.

Array of objects or null (AccessProfileRef)
Array of objects (EntitlementRef)
object or null (DimensionMembershipSelector)

When present, specifies that the Dimension is to be granted to Identities which either satisfy specific criteria.

parentId
string or null

The ID of the parent role. This field can be left null when creating a dimension, but if provided, it must match the role ID specified in the path variable of the API call.

Responses

Request samples

Content type
application/json
{
  • "id": "2c918086749d78830174a1a40e121518",
  • "name": "Dimension 2567",
  • "description": "Urna amet cursus pellentesque nisl orci maximus lorem nisl euismod fusce morbi placerat adipiscing maecenas nisi tristique et metus et lacus sed morbi nunc nisl maximus magna arcu varius sollicitudin elementum enim maecenas nisi id ipsum tempus fusce diam ipsum tortor.",
  • "owner": {
    },
  • "accessProfiles": [
    ],
  • "entitlements": [
    ],
  • "membership": {
    },
  • "parentId": "2c918086749d78830174a1a40e121518"
}

Response samples

Content type
application/json
{
  • "id": "2c918086749d78830174a1a40e121518",
  • "name": "Dimension 2567",
  • "created": "2021-03-01T22:32:58.104Z",
  • "modified": "2021-03-02T20:22:28.104Z",
  • "description": "Urna amet cursus pellentesque nisl orci maximus lorem nisl euismod fusce morbi placerat adipiscing maecenas nisi tristique et metus et lacus sed morbi nunc nisl maximus magna arcu varius sollicitudin elementum enim maecenas nisi id ipsum tempus fusce diam ipsum tortor.",
  • "owner": {
    },
  • "accessProfiles": [
    ],
  • "entitlements": [
    ],
  • "membership": {
    },
  • "parentId": "2c918086749d78830174a1a40e121518"
}

Get a dimension under role.

This API returns a Dimension by its ID.

A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles or Entitlements included in the Dimension or Parent Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

dimensionId
required
string
Example: 2c9180835d191a86015d28455b4a2329

Id of the Dimension

Responses

Response samples

Content type
application/json
{
  • "id": "2c918086749d78830174a1a40e121518",
  • "name": "Dimension 2567",
  • "created": "2021-03-01T22:32:58.104Z",
  • "modified": "2021-03-02T20:22:28.104Z",
  • "description": "Urna amet cursus pellentesque nisl orci maximus lorem nisl euismod fusce morbi placerat adipiscing maecenas nisi tristique et metus et lacus sed morbi nunc nisl maximus magna arcu varius sollicitudin elementum enim maecenas nisi id ipsum tempus fusce diam ipsum tortor.",
  • "owner": {
    },
  • "accessProfiles": [
    ],
  • "entitlements": [
    ],
  • "membership": {
    },
  • "parentId": "2c918086749d78830174a1a40e121518"
}

Patch a specified dimension

This API updates an existing dimension using JSON Patch syntax. The following fields are patchable: name description owner accessProfiles entitlements membership A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all access profiles/entitlements included in the dimension are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. When you use this API to modify a dimension's membership identities, you can only modify up to a limit of 500 membership identities at a time.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

dimensionId
required
string
Example: 2c9180835d191a86015d28455b4a2329

Id of the Dimension

Request Body schema: application/json-patch+json
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
Example

This example shows how multiple fields may be updated with a single patch call.

[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "2c918086749d78830174a1a40e121518",
  • "name": "Dimension 2567",
  • "created": "2021-03-01T22:32:58.104Z",
  • "modified": "2021-03-02T20:22:28.104Z",
  • "description": "Urna amet cursus pellentesque nisl orci maximus lorem nisl euismod fusce morbi placerat adipiscing maecenas nisi tristique et metus et lacus sed morbi nunc nisl maximus magna arcu varius sollicitudin elementum enim maecenas nisi id ipsum tempus fusce diam ipsum tortor.",
  • "owner": {
    },
  • "accessProfiles": [
    ],
  • "entitlements": [
    ],
  • "membership": {
    },
  • "parentId": "2c918086749d78830174a1a40e121518"
}

Delete a dimension

This API deletes a Dimension by its ID. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles/Entitlements included in the Dimension are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

dimensionId
required
string
Example: 2c9180835d191a86015d28455b4a2329

Id of the Dimension

Responses

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Delete dimension(s)

This endpoint initiates a bulk deletion of one or more dimensions. When the request is successful, the endpoint returns the bulk delete's task result ID. To follow the task, you can use Get Task Status by ID, which will return the task result's status and information. This endpoint can only bulk delete up to a limit of 50 roles per request. A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this endpoint. In addition, a token with ROLE_SUBADMIN authority can only call this endpoint if all dimensions included in the request are associated with sources with management workgroups the ROLE_SUBADMIN is a member of.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimensions.

Request Body schema: application/json
dimensionIds
required
Array of strings

List of IDs of Dimensions to be deleted.

Responses

Request samples

Content type
application/json
{
  • "dimensionIds": [
    ]
}

Response samples

Content type
application/json
{
  • "type": "TASK_RESULT",
  • "id": "464ae7bf791e49fdb74606a2e4a89635",
  • "name": null
}

List dimension's access profiles

This API lists the Access Profiles associated with a given Dimension

A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

dimensionId
required
string
Example: 2c9180835d191a86015d28455b4a2329

Id of the Dimension

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=source.id eq "2c91808982f979270182f99e386d00fa"

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

created: gt, lt, ge, le

modified: gt, lt, ge, le

owner.id: eq, in

source.id: eq, in

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List dimension's entitlements

This API lists the Entitlements associated with a given dimension.

A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API.

Authorizations:
Personal Access Token
path Parameters
roleId
required
string
Example: 6603fba3004f43c687610a29195252ce

Parent Role Id of the dimension.

dimensionId
required
string
Example: 2c9180835d191a86015d28455b4a2329

Id of the Dimension

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

filters
string
Example: filters=attribute eq "memberOf"

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

attribute: eq, sw

value: eq, sw

created: gt, lt, ge, le

modified: gt, lt, ge, le

owner.id: eq, in

source.id: eq, in

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: name, attribute, value, created, modified

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Discovered Applications

Use this API to retrieve all the available discovered apps for a given tenant id.

Entitlements

Use this API to implement and customize entitlement functionality. With this functionality in place, administrators can view entitlements and configure them for use throughout Identity Security Cloud in certifications, access profiles, and roles. Administrators in Identity Security Cloud can then grant users access to the entitlements or configure them so users themselves can request access to the entitlements whenever they need them. With a good approval process, this entitlement functionality allows users to gain the specific access they need on sources quickly and securely.

Entitlements represent access rights on sources. Entitlements are the most granular form of access in Identity Security Cloud. Entitlements are often grouped into access profiles, and access profiles themselves are often grouped into roles, the broadest form of access in Identity Security Cloud.

For example, an Active Directory source in Identity Security Cloud can have multiple entitlements: the first, 'Employees,' may represent the access all employees have at the organization, and a second, 'Developers,' may represent the access all developers have at the organization.

An administrator can then create a broader set of access in the form of an access profile, 'AD Developers' grouping the 'Employees' entitlement with the 'Developers' entitlement.

An administrator can then create an even broader set of access in the form of a role grouping the 'AD Developers' access profile with another profile, 'GitHub Developers,' grouping entitlements for the GitHub source.

When users only need Active Directory employee access, they can request access to the 'Employees' entitlement.

When users need both Active Directory employee and developer access, they can request access to the 'AD Developers' access profile.

When users need both the 'AD Developers' access profile and the 'GitHub Developers' access profile, they can request access to the role grouping both.

Administrators often use roles and access profiles within those roles to manage access so that users can gain access more quickly, but the hierarchy of access all starts with entitlements.

Anywhere entitlements appear, you can select them to find more information about the following:

  • Cloud Access Details: These provide details about the cloud access entitlements on cloud-enabled sources.

  • Permissions: Permissions represent individual units of read/write/admin access to a system.

  • Relationships: These list each entitlement's parent and child relationships.

  • Type: This is the entitlement's type. Some sources support multiple types, each with a different attribute schema.

Identity Security Cloud uses entitlements in many features, including the following:

  • Certifications: Entitlements can be revoked from an identity that no longer needs them.

  • Roles: Roles can group access profiles which themselves group entitlements. You can grant and revoke access on a broad level with roles. Role membership criteria can grant roles to identities based on whether they have certain entitlements or attributes.

  • Access Profiles: Access profiles group entitlements. They are the most important units of access in Identity Security Cloud. Identity Security Cloud uses them in provisioning, certifications, and access requests, and administrators can configure them to grant very broad or very granular access.

You cannot delete entitlements directly from Identity Security Cloud. Entitlements are deleted based on their inclusion in aggregations.

Refer to Deleting Entitlements more information about deleting entitlements.

Refer to Entitlements for more information about entitlements.

Gets a list of entitlements.

This API returns a list of entitlements.

This API can be used in one of the two following ways: either getting entitlements for a specific account-id, or getting via use of filters (those two options are exclusive).

Any authenticated token can call this API.

Authorizations:
Personal Access TokenClient Credentials
query Parameters
account-id
string
Example: account-id=ef38f94347e94562b5bb8424a56397d8

The account ID. If specified, returns only entitlements associated with the given Account. Cannot be specified with the filters, segmented-for-identity, for-segment-ids, or include-unsegmented param(s).

segmented-for-identity
string
Example: segmented-for-identity=e554098913544630b5985e9042f5e44b

If present and not empty, additionally filters Entitlements to those which are assigned to the Segment(s) which are visible to the Identity with the specified ID. Cannot be specified with the account-id or for-segment-ids param(s). It is also illegal to specify a value that refers to a different user's Identity.

for-segment-ids
string <comma-separated>
Example: for-segment-ids=041727d4-7d95-4779-b891-93cf41e98249,a378c9fa-bae5-494c-804e-a1e30f69f649

If present and not empty, additionally filters Access Profiles to those which are assigned to the Segment(s) with the specified IDs. Cannot be specified with the account-id or segmented-for-identity param(s).

include-unsegmented
boolean
Default: true
Example: include-unsegmented=true

Whether or not the response list should contain unsegmented Entitlements. If for-segment-ids and segmented-for-identity are both absent or empty, specifying include-unsegmented=false results in an error.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, type, attribute, value, source.id, requestable

filters
string
Example: filters=attribute eq "memberOf"

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, in, sw

type: eq, in

attribute: eq, in

value: eq, in, sw

source.id: eq, in

requestable: eq

created: gt, lt, ge, le

modified: gt, lt, ge, le

owner.id: eq, in

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an entitlement

This API returns an entitlement by its ID.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808874ff91550175097daaec161c

The entitlement ID

Responses

Response samples

Content type
application/json
{
  • "sourceSchemaObjectType": "group",
  • "attribute": "memberOf",
  • "attributes": {
    },
  • "value": "CN=LauncherTest1,OU=LauncherTestOrg,OU=slpt-automation,DC=TestAutomationAD,DC=local",
  • "description": "some description",
  • "privileged": false,
  • "cloudGoverned": false,
  • "source": {
    },
  • "owner": {
    },
  • "segments": [
    ],
  • "manuallyUpdatedFields": {
    },
  • "id": "2c91808c74ff913f0175097daa9d59cd",
  • "name": "LauncherTest1",
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2021-01-19T16:53:35.707Z"
}

Patch an entitlement

This API updates an existing entitlement using JSON Patch syntax.

The following fields are patchable: requestable, privileged, segments, owner, name, description, and manuallyUpdatedFields

When you're patching owner, only owner type and owner id must be provided. Owner name is optional, and it won't be modified. If the owner name is provided, it should correspond to the real name. The only owner type currently supported is IDENTITY.

Authorizations:
Personal Access Token
path Parameters
id
required
string
Example: 2c91808a7813090a017814121e121518

ID of the entitlement to patch

Request Body schema: application/json-patch+json
Array
op
required
string
Enum: "add" "remove" "replace" "move" "copy" "test"

The operation to be performed

path
required
string

A string JSON Pointer representing the target path to an element to be affected by the operation

string (string) or boolean (boolean) or integer (integer) or object (object) or (Array of array (strings or integers or objects))

The value to be used for the operation, required for "add" and "replace" operations

Responses

Request samples

Content type
application/json-patch+json
Example

This example shows how multiple fields may be updated with a single patch call.

[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "id": "2c91808874ff91550175097daaec161c",
  • "name": "LauncherTest2",
  • "attribute": "memberOf",
  • "value": "CN=LauncherTest2,OU=LauncherTestOrg,OU=slpt-automation,DC=TestAutomationAD,DC=local",
  • "sourceSchemaObjectType": "group",
  • "description": "CN=LauncherTest2,OU=LauncherTestOrg,OU=slpt-automation,DC=TestAutomationAD,DC=local",
  • "privileged": true,
  • "cloudGoverned": true,
  • "requestable": true,
  • "owner": {
    },
  • "additionalOwners": [
    ],
  • "manuallyUpdatedFields": {
    },
  • "accessModelMetadata": {
    },
  • "created": "2020-10-08T18:33:52.029Z",
  • "modified": "2020-10-08T18:33:52.029Z",
  • "source": {
    },
  • "attributes": {
    },
  • "segments": [
    ],
  • "directPermissions": [
    ]
}

List of entitlements parents

This API returns a list of all parent entitlements of a given entitlement.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808c74ff913f0175097daa9d59cd

Entitlement Id

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, type, attribute, value, source.id

filters
string
Example: filters=attribute eq "memberOf"

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, in, sw

type: eq, in

attribute: eq, in

value: eq, in, sw

source.id: eq, in

requestable: eq

created: gt, lt, ge, le

modified: gt, lt, ge, le

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List of entitlements children

This API returns a list of all child entitlements of a given entitlement.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808874ff91550175097daaec161c

Entitlement Id

query Parameters
limit
integer <int32> [ 0 .. 250 ]
Default: 250
Example: limit=250

Max number of results to return. See V3 API Standard Collection Parameters for more information.

offset
integer <int32> >= 0
Default: 0

Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information.

count
boolean
Default: false
Example: count=true

If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored.

Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used.

See V3 API Standard Collection Parameters for more information.

sorters
string <comma-separated>
Example: sorters=name,-modified

Sort results using the standard syntax described in V3 API Standard Collection Parameters

Sorting is supported for the following fields: id, name, created, modified, type, attribute, value, source.id

filters
string
Example: filters=attribute eq "memberOf"

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, in, sw

type: eq, in

attribute: eq, in

value: eq, in, sw

source.id: eq, in

requestable: eq

created: gt, lt, ge, le

modified: gt, lt, ge, le

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bulk update an entitlement list

This API applies an update to every entitlement of the list.

The number of entitlements to update is limited to 50 items maximum.

The JsonPatch update follows the JSON Patch standard. examples of allowed operations : **{ "op": "replace", "path": "/privileged", "value": boolean }** **{ "op": "replace", "path": "/requestable","value": boolean }**

A token with ORG_ADMIN or API authority is required to call this API.

Authorizations:
Personal Access Token
Request Body schema: application/json
entitlementIds
required
Array of strings <= 50 items

List of entitlement ids to update

required
Array of objects (Json Patch Operation)

Responses

Request samples

Content type
application/json
{
  • "entitlementIds": [
    ],
  • "jsonPatch": [
    ]
}

Response samples

Content type
application/json
{
  • "detailCode": "400.1 Bad Request Content",
  • "trackingId": "e7eab60924f64aa284175b9fa3309599",
  • "messages": [
    ],
  • "causes": [
    ]
}

Get entitlement request config

This API returns the entitlement request config for a specified entitlement.

Authorizations:
Personal Access TokenClient Credentials
path Parameters
id
required
string
Example: 2c91808874ff91550175097daaec161c

Entitlement Id

Responses