Skip to content

Create a client

POST
/api/tenant/{tenantId}/Clients
curl --request POST \
--url https://api.nimles.com/identity/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Clients \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "fields": { "additionalProperty": { "value": "example", "valueType": "example" } }, "accessibility": "example", "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" }'

Creates a new client.

Only a platform administrator can give a client the nimles.owner scope (422 otherwise).

tenantId
required
string format: uuid

Your tenant id.

The client data.

Media typeapplication/json
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
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

{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"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"
}

Created. The body is the item, or { data: { id } } when it cannot be read yet. Location is the item’s path within the service, /api/tenant/{tenantId}/{Resource}/{id}, without the /{service} prefix api.nimles.com routes by: use data.id from the body.

Media typeapplication/json
One of:
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"
}
}
Location
string

The new item’s path within the service, without the service prefix: /api/tenant/{tenantId}/{Resource}/{id}.

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"
}

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"
}