Capabilities
Use this API to list, view, and update capabilities. A capability is something a machine identity such as an AI agent can use, for example an MCP server, a tool, a skill, a plugin, or a process, discovered from a connected source. You can update a capability's owners, description, and environment; the values discovered from the source are read-only.
All URIs are relative to https://sailpoint.api.identitynow.com
| Method | HTTP request | Description |
|---|---|---|
| Get-CapabilityV1 | GET /capabilities/v1/{id} | Get capability |
| Get-CapabilitiesV1 | GET /capabilities/v1 | List capabilities |
| Update-CapabilityV1 | PATCH /capabilities/v1/{id} | Partial update of capability |
get-capability-v1
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.
This API returns a single capability by its ID.
The ID must be a UUID; any other value returns 400. When no capability exists for the ID, this API returns 404.
When Machine Identity Security is not enabled for the tenant, this API returns 404. When the capabilities API is
not enabled for the tenant, this API returns 403.
Parameters
| Param Type | Name | Data Type | Required | Description |
|---|---|---|---|---|
| Path | Id | String | True | Capability ID. |
| XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. |
Return type
Responses
| Code | Description | Data Type |
|---|---|---|
| 200 | Capability object. | Capability |
| 400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
| 401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListCapabilitiesV1401Response |
| 403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
| 404 | Not Found - returned if the request URL refers to a resource or object that does not exist | ErrorResponseDto |
| 429 | Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again. | ListCapabilitiesV1429Response |
| 500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$Id = "9b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e" # String | Capability ID.
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
# Get capability
try {
Get-CapabilityV1 -Id $Id -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-CapabilityV1 -Id $Id -XSailPointExperimental $XSailPointExperimental
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-CapabilityV1"
Write-Host $_.ErrorDetails
}
list-capabilities-v1
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.
This API returns a list of capabilities.
Source sub-admins only see capabilities on the sources they manage.
When Machine Identity Security is not enabled for the tenant, this API returns 404. When the capabilities API is
not enabled for the tenant, this API returns 403.
Parameters
| Param Type | Name | Data Type | Required | Description |
|---|---|---|---|---|
| XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
| Query | Filters | String | (optional) | Filter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: name: eq, in, sw nativeIdentity: eq, in, sw type: eq, in environment: eq, in datasetId: eq, in resource.id: eq, in source.id: eq, in source.name: eq, in, sw owners.primary.id: eq, in owners.primary.name: eq, in, sw owners.primaryIdentity.id: eq, in owners.primaryIdentity.name: eq, in, sw owners.secondaryIdentity.id: eq, in owners.secondaryIdentity.name: eq, in, sw owners.secondaryGovernanceGroup.id: eq, in owners.secondaryGovernanceGroup.name: eq, in, sw owners.governanceGroup.id: eq, in owners.governanceGroup.name: eq, in, sw created: gt, ge, lt, le modified: gt, ge, lt, le |
| Query | Sorters | String | (optional) | Sort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: created, modified, name, type, source.id, source.name, resource.id, environment, datasetId, nativeIdentity, owners.primary.id, owners.primary.name, owners.primaryIdentity.id, owners.primaryIdentity.name, owners.secondaryIdentity.id, owners.secondaryIdentity.name, owners.secondaryGovernanceGroup.id, owners.secondaryGovernanceGroup.name, owners.governanceGroup.id, owners.governanceGroup.name |
| Query | Count | Boolean | (optional) (default to $false) | 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 API Standard Collection Parameters for more information. |
| Query | Limit | Int32 | (optional) (default to 250) | Max number of results to return. See API Standard Collection Parameters for more information. |
| Query | Offset | Int32 | (optional) (default to 0) | Offset into the full result set. Usually specified with limit to paginate through the results. See API Standard Collection Parameters for more information. |
Return type
Responses
| Code | Description | Data Type |
|---|---|---|
| 200 | List of capabilities. | Capability[] |
| 400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
| 401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListCapabilitiesV1401Response |
| 403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
| 404 | Not Found - returned if the request URL refers to a resource or object that does not exist | ErrorResponseDto |
| 429 | Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again. | ListCapabilitiesV1429Response |
| 500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$Filters = 'type eq "MCP"' # String | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *eq, in, sw* **nativeIdentity**: *eq, in, sw* **type**: *eq, in* **environment**: *eq, in* **datasetId**: *eq, in* **resource.id**: *eq, in* **source.id**: *eq, in* **source.name**: *eq, in, sw* **owners.primary.id**: *eq, in* **owners.primary.name**: *eq, in, sw* **owners.primaryIdentity.id**: *eq, in* **owners.primaryIdentity.name**: *eq, in, sw* **owners.secondaryIdentity.id**: *eq, in* **owners.secondaryIdentity.name**: *eq, in, sw* **owners.secondaryGovernanceGroup.id**: *eq, in* **owners.secondaryGovernanceGroup.name**: *eq, in, sw* **owners.governanceGroup.id**: *eq, in* **owners.governanceGroup.name**: *eq, in, sw* **created**: *gt, ge, lt, le* **modified**: *gt, ge, lt, le* (optional)
$Sorters = "name" # String | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **created, modified, name, type, source.id, source.name, resource.id, environment, datasetId, nativeIdentity, owners.primary.id, owners.primary.name, owners.primaryIdentity.id, owners.primaryIdentity.name, owners.secondaryIdentity.id, owners.secondaryIdentity.name, owners.secondaryGovernanceGroup.id, owners.secondaryGovernanceGroup.name, owners.governanceGroup.id, owners.governanceGroup.name** (optional)
$Count = $true # Boolean | 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 [API Standard Collection Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters) for more information. (optional) (default to $false)
$Limit = 250 # Int32 | Max number of results to return. See [API Standard Collection Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters) for more information. (optional) (default to 250)
$Offset = 0 # Int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [API Standard Collection Parameters](https://developer.sailpoint.com/docs/api/standard-collection-parameters) for more information. (optional) (default to 0)
# List capabilities
try {
Get-CapabilitiesV1 -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-CapabilitiesV1 -XSailPointExperimental $XSailPointExperimental -Filters $Filters -Sorters $Sorters -Count $Count -Limit $Limit -Offset $Offset
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-CapabilitiesV1"
Write-Host $_.ErrorDetails
}
update-capability-v1
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true to use this endpoint.
Use this API to update a capability using a JSON Patch payload.
Patchable fields are description, environment, and owners. A patch that targets any other field,
including the values discovered from the source, returns 400.
owners.primary is a single IDENTITY reference. owners.secondary holds either up to ten IDENTITY references or
exactly one GOVERNANCE_GROUP reference, not both; any other combination returns 400.
The ID must be a UUID; any other value returns 400. When no capability exists for the ID, this API returns 404.
When Machine Identity Security is not enabled for the tenant, this API returns 404. When the capabilities API is
not enabled for the tenant, this API returns 403.
Parameters
| Param Type | Name | Data Type | Required | Description |
|---|---|---|---|---|
| Path | Id | String | True | Capability ID. |
| XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
| Body | JsonPatchOperation | []JsonPatchOperation | True | A JSON of updated values JSON Patch standard. |
Return type
Responses
| Code | Description | Data Type |
|---|---|---|
| 200 | Updated capability object. | Capability |
| 400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
| 401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListCapabilitiesV1401Response |
| 403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
| 404 | Not Found - returned if the request URL refers to a resource or object that does not exist | ErrorResponseDto |
| 429 | Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again. | ListCapabilitiesV1429Response |
| 500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: application/json-patch+json
- Accept: application/json
Example
$Id = "9b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e" # String | Capability ID.
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$JsonPatchOperation = @"{
"op" : "replace",
"path" : "/description",
"value" : "New description"
}"@ # JsonPatchOperation[] | A JSON of updated values [JSON Patch](https://tools.ietf.org/html/rfc6902) standard.
# Partial update of capability
try {
$Result = ConvertFrom-JsonToJsonPatchOperation -Json $JsonPatchOperation
Update-CapabilityV1 -Id $Id -XSailPointExperimental $XSailPointExperimental -JsonPatchOperation $Result
# Below is a request that includes all optional parameters
# Update-CapabilityV1 -Id $Id -XSailPointExperimental $XSailPointExperimental -JsonPatchOperation $Result
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Update-CapabilityV1"
Write-Host $_.ErrorDetails
}