Skip to content

`POST /v1/orgs/{org}/signing-keys/rotate`.

POST
/v1/orgs/{org}/signing-keys/rotate
curl --request POST \
--url https://api.updawg.net/v1/orgs/example/signing-keys/rotate \
--header 'Content-Type: application/json' \
--data '{ "from": "example" }'
org
required
string

Organization slug.

Media typeapplication/json
object
from

The sk_… the caller believes is active. When given and no longer true, the answer is 409 and nothing is queued — a page that is a rotation out of date must not rotate a key its reader never saw.

string | null
Examplegenerated
{
"from": "example"
}

Queued. The signer makes the new key and the outgoing one endorses it; the list shows it when it lands. Asking again before then is the same request, not a second rotation.

Media typeapplication/json
object
from
required

The key being replaced.

string
Examplegenerated
{
"from": "example"
}

from is not a signing key id.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

No session.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not permitted for this role.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

No such organization, or not yours — one answer for both.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Nothing to rotate, a customer-held key, from is no longer the active key, or an earlier rotation from this key failed and is waiting for an operator.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Over the organization’s request limit. Retry-After says when to try again; RateLimit-Limit is the burst.

Media typeapplication/json
object
detail
string | null
status
required
integer format: int32
title
required
string
type
required
string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}