Skip to content

Generate a secret for the client

POST
/api/tenant/{tenantId}/Clients/{id}/secrets
curl --request POST \
--url https://api.nimles.com/identity/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/Clients/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/secrets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "description": "example", "expiresInDays": 1 }'

Generates a secret for the client: 32 random bytes (base64url), valid for expiresInDays (default 365, at most 730). The response is the only time the secret is shown; Identity keeps a hash. Any of a client’s secrets authenticates it, so a secret is rotated by issuing a new one, switching to it, and revoking the old one.

id
required
string format: uuid

The client.

tenantId
required
string format: uuid

Your tenant id.

What the secret is for and how long it lives.

Media typeapplication/json
object
description
string
nullable 0 <= 200 characters
expiresInDays
integer format: int32
nullable >= 1 <= 730

Example generated

{
"description": "example",
"expiresInDays": 1
}

Created: the new item.

Media typeapplication/json
object
fields
object
key
additional properties
string
data
object
id
required
string format: uuid
value
required
string
nullable
description
string
nullable
expiration
required
string format: date-time

Example generated

{
"data": {
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"value": "example",
"description": "example",
"expiration": "2026-04-15T12:00:00Z"
}
}

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