Skip to content

Patch a client

PATCH
/api/tenant/{tenantId}/Clients/{id}
curl --request PATCH \
--url https://api.nimles.com/identity/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Clients/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '[ { "op": "example", "path": "example", "from": "example", "value": "example" } ]'

Patches an existing client with JSON Patch (RFC 6902) operations. The members the PUT changes can be patched, except loginProviders (use the PUT). Secret values that are added or replaced (/secrets/-, /secrets/0, /secrets/0/value) are hashed, like the PUT: a secret written without a value keeps the client’s secret with its id, and a BCrypt hash that is not one of the client’s, an empty value, or no value for an unknown id is refused (422). Secrets cannot be moved, copied or tested. The accessibility and fields of secrets and reply URLs are kept as they are: an item may carry them back unchanged, but changing them is rejected (422). No endpoint changes their accessibility (the PUT keeps it); use the PUT to change their fields.

Only a platform administrator can patch a client that has, or would get, the nimles.owner scope (422 otherwise).

id
required
string format: uuid

A unique identifier for the client.

tenantId
required
string format: uuid

Your tenant id.

The operations, applied in order; all or none are applied.

Media typeapplication/json
Array<object>
object
op
required
string
>= 1 characters /^(add|remove|replace|move|copy|test)$/
path
required
string
>= 1 characters
from
string
nullable
value
nullable

Example generated

[
{
"op": "example",
"path": "example",
"from": "example",
"value": "example"
}
]

OK

Media typeapplication/json
object
fields
object
key
additional properties
string
data
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
relations
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
name
string
nullable
entityId
required
string format: uuid
entityType
required
string
>= 1 characters
relationType
required
string
>= 1 characters
tenantId
string format: uuid
nullable
resourceGroupId
string format: uuid
nullable
creatorId
string format: uuid
nullable
createdDate
string format: date-time
nullable
version
integer format: int32
nullable
lastModified
string format: date-time
nullable
name
required
string
>= 1 characters
description
string
nullable
secrets
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
value
string
nullable
description
string
nullable
expiration
string format: date-time
nullable
replyUrls
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
value
required
string format: uri
nullable
description
string
nullable
loginProviders
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
name
required
string
nullable
clientId
required
string
nullable
clientSecret
required
string
nullable
token
required
string
nullable
hasClientSecret
boolean
hasToken
boolean
allowedGrantTypes
Array<string>
nullable
allowedScopes
Array<string>
nullable
allowOfflineAccess
boolean
allowAccessTokensViaBrowser
boolean
requireConsent
boolean
requirePkce
boolean
enabled
boolean
postLogoutRedirectUris
Array<string>
nullable
allowedCorsOrigins
Array<string>
nullable
frontChannelLogoutUri
string format: uri
nullable
backChannelLogoutUri
string format: uri
nullable
clientUri
string format: uri
nullable
logoUri
string format: uri
nullable
iconUri
string format: uri
nullable
accentColor
string
nullable
accessTokenLifetime
integer format: int32
nullable
identityTokenLifetime
integer format: int32
nullable
absoluteRefreshTokenLifetime
integer format: int32
nullable
uniqueName
string
nullable

Example generated

{
"data": {
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"relations": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"entityId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"entityType": "example",
"relationType": "example"
}
],
"tenantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"resourceGroupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"creatorId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"createdDate": "2026-04-15T12:00:00Z",
"version": 1,
"lastModified": "2026-04-15T12:00:00Z",
"name": "example",
"description": "example",
"secrets": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"value": "example",
"description": "example",
"expiration": "2026-04-15T12:00:00Z"
}
],
"replyUrls": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"value": "https://example.com",
"description": "example"
}
],
"loginProviders": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"clientId": "example",
"clientSecret": "example",
"token": "example",
"hasClientSecret": true,
"hasToken": true
}
],
"allowedGrantTypes": [
"example"
],
"allowedScopes": [
"example"
],
"allowOfflineAccess": true,
"allowAccessTokensViaBrowser": true,
"requireConsent": true,
"requirePkce": true,
"enabled": true,
"postLogoutRedirectUris": [
"https://example.com"
],
"allowedCorsOrigins": [
"example"
],
"frontChannelLogoutUri": "https://example.com",
"backChannelLogoutUri": "https://example.com",
"clientUri": "https://example.com",
"logoUri": "https://example.com",
"iconUri": "https://example.com",
"accentColor": "example",
"accessTokenLifetime": 1,
"identityTokenLifetime": 1,
"absoluteRefreshTokenLifetime": 1,
"uniqueName": "example"
}
}

No Content: done, with no item to return.

Unauthorized: no bearer token, or one that is expired or not for this API.

Forbidden: the caller holds no role that allows this action at this scope. The body is empty, or a problem whose detail names the action.

Media typeapplication/json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not found: no such item in the tenant.

Media typeapplication/problem+json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Conflict: the item kept changing under concurrent writes; read it again and retry.

Media typeapplication/problem+json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Unprocessable: the body or the change is invalid. The errors are keyed by member.

Media typeapplication/problem+json

A validation problem: the messages by member (or by JSON Pointer for a patch).

object
errors
object
key
additional properties
Array<string>
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"errors": {
"additionalProperty": [
"example"
]
},
"status": 1,
"title": "example",
"type": "example"
}