Skip to content

Revoke a key. The next `/v2` request presenting it is `401`; there is no grace period.

DELETE
/v0/projects/{id}/keys/{key_id}
curl --request DELETE \
--url https://infra-hyphae.run/v0/projects/example/keys/example \
--header 'Authorization: Bearer <token>'

Idempotent: revoking an already-revoked key answers 200 with the original revoked_at. A key that does not exist, or belongs to a project the caller does not own, is 404.

id
required
string
/^prj_[0-9a-f]{16}$/
key_id
required
string
/^[0-9a-f]{32}$/

The key, with revoked_at set.

Media typeapplication/json
object
key_id
required
string
/^[0-9a-f]{32}$/
label
string | null
created_at
required

RFC 3339, UTC.

string format: date-time
revoked_at
One of:

RFC 3339, UTC.

string format: date-time
Examplegenerated
{
"key_id": "example",
"label": "example",
"created_at": "2026-04-15T12:00:00Z",
"revoked_at": "2026-04-15T12:00:00Z"
}

Missing, malformed, duplicate, or unknown credential (authentication_required).

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: invalid_request authentication_required authorization_denied not_found conflict payload_too_large not_implemented tenant_not_running tenant_running function_runtime_missing function_timeout function_bad_output function_busy orchestrator_unavailable upstream_unavailable internal
message
required
string
Example
{
"error": {
"code": "invalid_request"
}
}
WWW-Authenticate
string
Allowed value: Bearer realm="hyphae-cloud"

Unknown route, or a project the caller does not own (not_found).

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: invalid_request authentication_required authorization_denied not_found conflict payload_too_large not_implemented tenant_not_running tenant_running function_runtime_missing function_timeout function_bad_output function_busy orchestrator_unavailable upstream_unavailable internal
message
required
string
Example
{
"error": {
"code": "invalid_request"
}
}