Requires tkeeper.approvers.register independently of read and metadata permissions. Available on any initialized, unsealed Keeper. Validates and normalizes the public key with the installed signature providers before computing the immutable ref. A new credential under the same id creates another version. An identical registration returns the existing record without replacing its metadata. A normalized key already registered under another id is a conflict. Registration does not grant approval rights. Duplicate JSON keys, unknown fields, null metadata, and scalar coercions are rejected. Every current member must be ready and independently authorize and prepare the request. Success requires persistence on every member. A 503 can leave durable reservations or a fully confirmed delivery that surviving members complete after writer failure.
Request Body
Required: Yes
application/json object
{
"id": "string",
"credential": {
"type": "SIGNATURE",
"algorithm": "string",
"publicKey64": "string"
},
"metadata": {
"key": "string"
}
}
Responses
200 Exact approver version with its current metadata.
application/json object
{
"id": "string",
"ref": "string",
"credential": {
"version": 1,
"type": "SIGNATURE",
"algorithm": "string",
"publicKey64": "string"
},
"metadata": {
"key": "string"
},
"createdAt": 1,
"updatedAt": 1,
"metadataRevision": 1
}
201 Exact approver version with its current metadata.
application/json object
{
"id": "string",
"ref": "string",
"credential": {
"version": 1,
"type": "SIGNATURE",
"algorithm": "string",
"publicKey64": "string"
},
"metadata": {
"key": "string"
},
"createdAt": 1,
"updatedAt": 1,
"metadataRevision": 1
}
409 Error response
application/json object
{
"error": "KEEPER_ALREADY_INITIALIZED",
"details": "string",
"imposters": [
"string"
],
"dead": [
"string"
]
}
503 Error response
application/json object
{
"error": "KEEPER_ALREADY_INITIALIZED",
"details": "string",
"imposters": [
"string"
],
"dead": [
"string"
]
}
default Error response
application/json object
{
"error": "KEEPER_ALREADY_INITIALIZED",
"details": "string",
"imposters": [
"string"
],
"dead": [
"string"
]
}