Update Identity Profile
PATCHhttps://sailpoint.api.identitynow.com/v2025/identity-profiles/:identity-profile-id
Update a specified identity profile with this PATCH request.
You cannot update these fields:
- id
- created
- modified
- identityCount
- identityRefreshRequired
- Authoritative Source and Identity Attribute Configuration cannot be modified at the same time.
Request
Path Parameters
Identity profile ID.
- application/json-patch+json
Body arrayrequired
List of identity profile update operations according to the JSON Patch standard.
- Array [
- ]
The operation to be performed
Possible values: [add
, remove
, replace
, move
, copy
, test
]
replace
A string JSON Pointer representing the target path to an element to be affected by the operation
/description
value object
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- 500
Updated identity profile.
- application/json
- Schema
- Example (auto)
Schema
System-generated unique ID of the Object
id12345
Name of the Object
aName
Creation date of the Object
2015-05-28T14:07:17Z
Last modification date of the Object
2015-05-28T14:07:17Z
Identity profile's description.
My custom flat file profile
owner objectnullable
Identity profile's priority.
10
authoritativeSource objectrequired
Set this value to 'True' if an identity refresh is necessary. You would typically want to trigger an identity refresh when a change has been made on the source.
false
true
Number of identities belonging to the identity profile.
8
identityAttributeConfig object
identityExceptionReportReference objectnullable
Indicates the value of requiresPeriodicRefresh
attribute for the identity profile.
false
true
{
"id": "id12345",
"name": "aName",
"created": "2015-05-28T14:07:17Z",
"modified": "2015-05-28T14:07:17Z",
"description": "My custom flat file profile",
"owner": {
"type": "IDENTITY",
"id": "2c9180835d191a86015d28455b4b232a",
"name": "William Wilson"
},
"priority": 10,
"authoritativeSource": {
"type": "SOURCE",
"id": "2c9180835d191a86015d28455b4b232a",
"name": "HR Active Directory"
},
"identityRefreshRequired": true,
"identityCount": 8,
"identityAttributeConfig": {
"enabled": true,
"attributeTransforms": [
{
"identityAttributeName": "email",
"transformDefinition": {
"type": "accountAttribute",
"attributes": {
"attributeName": "e-mail",
"sourceName": "MySource",
"sourceId": "2c9180877a826e68017a8c0b03da1a53"
}
}
}
]
},
"identityExceptionReportReference": {
"taskResultId": "2b838de9-db9b-abcf-e646-d4f274ad4238",
"reportName": "My annual report"
},
"hasTimeBasedAttr": true
}
Client Error - Returned if the request body is invalid.
- application/json
- Schema
- Example (auto)
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
- application/json
- Schema
- Example (auto)
Schema
A message describing the error
JWT validation failed: JWT is expired
{
"error": "JWT validation failed: JWT is expired"
}
Forbidden - Returned if the user you are running as, doesn't have access to this end-point.
- application/json
- Schema
- Example (auto)
- 403
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 403 response object
{
"detailCode": "403 Forbidden",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server understood the request but refuses to authorize it."
}
]
}
Not Found - returned if the request URL refers to a resource or object that does not exist
- application/json
- Schema
- Example (auto)
- 404
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 404 response object
{
"detailCode": "404 Not found",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server did not find a current representation for the target resource."
}
]
}
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.
- application/json
- Schema
- Example (auto)
Schema
A message describing the error
Rate Limit Exceeded
{
"message": " Rate Limit Exceeded "
}
Internal Server Error - Returned if there is an unexpected error.
- application/json
- Schema
- Example (auto)
- 500
Schema
Fine-grained error code providing more detail of the error.
400.1 Bad Request Content
Unique tracking id for the error.
e7eab60924f64aa284175b9fa3309599
messages object[]
causes object[]
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 500 response object
{
"detailCode": "500.0 Internal Fault",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "An internal fault occurred."
}
]
}
Authorization: oauth2
- go
- powershellSailPoint SDK
- pythonSailPoint SDK
- csharp
- curl
- dart
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- r
- ruby
- rust
- shell
- swift
- NATIVE
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sailpoint.api.identitynow.com/v2025/identity-profiles/:identity-profile-id"
method := "PATCH"
payload := strings.NewReader(`[
{
"op": "replace",
"path": "/description",
"value": "New description"
}
]`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json-patch+json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer <TOKEN>")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}