Skip to content
Niu DocsNiu 牛元文档
Dashboard控制台

Set an API key's Credits spending limit

Generated from the checked-in source. Do not edit this reference by hand.

PUT /api/v1/workspaces/{workspace}/keys/{key}/units/limit

Workspace/company owner or installation administrator required and rechecked under lock. Updates the shared spending root identity across secret rotations using optimistic revision checking and durable idempotency. Lowering below committed key liability returns 402. Preserves existing monetary key limits for currency mode while replacing their blocking effect in Credits admission. The server resolves the organization from the authorized workspace. Foreign or missing workspaces return 404. The compatibility route remains supported with identical payload, owner, revision and replay semantics.

Operation: setKeyCustomerUnitSpendingLimitByWorkspace.

Use the credential and permission scope described above. Each object below is an alternative; schemes within one object are required together.

JSON
[
{
"bearerAuth": []
}
]

Set NIU_ORIGIN to your installation origin (without /v1). Replace path, query and header placeholders with the required values. Query examples use curl 7.87 or newer to encode values with --url-query. Use the credential scope described above; a bearer token must have the authority required by this operation.

Shell
curl --fail-with-body -X PUT "$NIU_ORIGIN/api/v1/workspaces/{workspace}/keys/{key}/units/limit" \
-H "Authorization: Bearer $NIU_BEARER_TOKEN" \
-H 'Content-Type: application/json' \
--data @request.json

Location: path. Required.

JSON
{
"type": "string",
"format": "uuid"
}

Location: path. Required.

JSON
{
"type": "string",
"format": "uuid"
}

Required.

JSON
{
"type": "object",
"additionalProperties": false,
"required": [
"limit_atoms",
"expected_revision",
"idempotency_key"
],
"properties": {
"limit_atoms": {
"type": [
"string",
"null"
],
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Canonical nonnegative signed-64-bit integer string or explicit null for unlimited."
},
"expected_revision": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Zero for initial configuration; maximum 9223372036854775806."
},
"idempotency_key": {
"type": "string",
"format": "uuid"
}
}
}

Immutable policy revision receipt

Content type: application/json.

JSON
{
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"revision",
"expected_revision",
"definition_revision",
"limit_atoms",
"recorded_at",
"actor_kind",
"actor_name"
],
"properties": {
"revision": {
"type": "string",
"pattern": "^[1-9][0-9]*$"
},
"expected_revision": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$"
},
"definition_revision": {
"type": "string",
"pattern": "^[1-9][0-9]*$"
},
"limit_atoms": {
"type": [
"string",
"null"
],
"pattern": "^(0|[1-9][0-9]*)$"
},
"recorded_at": {
"type": "string",
"format": "date-time"
},
"actor_kind": {
"type": "string",
"enum": [
"installation",
"member"
]
},
"actor_name": {
"type": "string"
}
}
}
}
}

Invalid integer string

Authentication required or revoked

Proposed limit is below committed key liability

Owner permission required

Key does not exist in the authorized workspace

Stale revision, conflicting idempotency key, unattributed active liability or missing unit definition

Malformed request body

Storage unavailable

Workspace/company owner or installation administrator required and rechecked under lock. Updates the shared spending root identity across secret rotations using optimistic revision checking and durable idempotency. Lowering below committed key liability returns 402. Preserves existing monetary key limits for currency mode while replacing their blocking effect in Credits admission. The server resolves the organization from the authorized workspace. Foreign or missing workspaces return 404. The compatibility route remains supported with identical payload, owner, revision and replay semantics.

Supported scope: implemented