Skip to content

List Signing keys

GET
/v1/namespaces/{namespace}/keys
curl --request GET \
--url https://app.caprid.com/v1/namespaces/acme/keys \
--header 'Authorization: Bearer <token>'

Oldest first, without their secrets. Get a key by its kid to see its secret.

namespace
required

A Namespace’s name, which is the root of every path signed for it. It never changes. Use lowercase letters, digits and hyphens, and start and end with a letter or digit. Some names, like admin and default, are reserved, and so is every name that starts with trial-, which only Trial Organizations get.

string
>= 3 characters <= 32 characters /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/

Example

acme

The Namespace’s Signing keys.

Media typeapplication/json
Array<object>
object
kid
required
string
alg
required
string
Allowed value: HS256
scope
required

What a Signing key may sign. put is publish and get is subscribe, as in the token claims. Both are relative to root.

object
root
string
put
Array<string>
get
Array<string>
namespace
required
string
created_at
required
integer

Example

[
{
"alg": "HS256",
"scope": {
"root": "acme"
}
}
]

No valid credential. Missing, expired and revoked credentials all get the same response, and so does an API key whose trial has lapsed. An Agent token from before a claim gets a 401 too, once the claim has made the trial a person’s, with a message saying to get a new token.

Media typeapplication/json
object
error
required
string

Example

{
"error": "the requested grants exceed the key's scope"
}
WWW-Authenticate
string
Example
Bearer realm="switchboard"

Sent with an API key limited to some Namespaces, to a Namespace outside its limit, or to a route that acts on the Organization as a whole. A limited key can never create API keys.

Media typeapplication/json
object
error
required
string

Example

{
"error": "this API key is limited to the Namespaces acme-staging, and acme isn't one of them"
}

No such thing, or not yours. Another customer’s Organization or Namespace is a 404 too, so nobody can tell which ones exist.

Media typeapplication/json
object
error
required
string

Example

{
"error": "the requested grants exceed the key's scope"
}