Skip to content
RSXDocs
RSX · API · Reference

platform v1

API key management: issue, scope, rotate, and revoke platform API keys.

Current
Base URL
https://api.rsx.group/platform/v1
Self-grantable scopes
None. Every endpoint here needs a key issued by a platform admin.
Machine readable
openapi.json
01

keys

7 operations under /platform/v1/keys.

POST/platform/v1/keys/add

Create an API key

Scope
platform:keys:add Admin-issued keys only.
Idempotency
Requires an Idempotency-Key header. Reusing the key within 24 hours returns the original response instead of creating a second record.

Request bodyapplication/json

Request body of addKey

  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
    at least 1 item
  • rateCapacity
    Type
    integer
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefill
    Type
    number
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • expiresInDays
    Type
    integer
    Description
    Omit for a key that never expires.1 to 3650

Response 200Key created — the secret in this response is shown exactly once

Response of addKey

  • datarequired
    Type
    CreatedApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.
  • secretrequired
    Type
    string
    Description
    Shown once, at creation. Store it now, because it is not retrievable.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/keys/add \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Idempotency-Key: 5b8f2d1a-0c7e-4b1f-9a6d-3e2f1c0b9a8d" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "ci-deploy",
  "scopes": [
    "example:widgets:*"
  ],
  "rateCapacity": 120,
  "rateRefill": 20,
  "expiresInDays": 90
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null,
    "secret": "rsx_live_a1b2c3d4e5f6..."
  }
}
GET/platform/v1/keys/list

List API keys

Scope
platform:keys:list Admin-issued keys only.

Query parameters

Query parameters of listKeys

  • cursor
    Type
    string
    Description
  • limit
    Type
    integer
    Description
    1 to 100 · default 20
  • status
    Type
    string
    Description
    one of "active", "revoked"
  • accountId
    Type
    string
    Description

Response 200Keys

Response of listKeys

  • datarequired
    Type
    array of ApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.
  • metarequired
    Type
    object
    Description
  • cursorrequired
    Type
    string, or null
    Description

Example

curl
curl "https://api.rsx.group/platform/v1/keys/list" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "prefix": "rsx_live_a1b2c3d4",
      "name": "ci-deploy",
      "scopes": [
        "example:widgets:*"
      ],
      "status": "active",
      "createdAt": "2026-07-18T12:00:00Z",
      "expiresAt": null,
      "rateCapacity": 120,
      "rateRefill": 20,
      "accountId": null
    }
  ],
  "meta": {
    "cursor": "string"
  }
}
GET/platform/v1/keys/get

Fetch one API key

Scope
platform:keys:get Admin-issued keys only.

Query parameters

Query parameters of getKey

  • idrequired
    Type
    string, uuid
    Description

Response 200Key

Response of getKey

  • datarequired
    Type
    ApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.

Example

curl
curl "https://api.rsx.group/platform/v1/keys/get?id=0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null
  }
}
POST/platform/v1/keys/update

Update a key's name or scopes

Scope
platform:keys:update Admin-issued keys only.

Request bodyapplication/json

Request body of updateKey

  • idrequired
    Type
    string, uuid
    Description
  • name
    Type
    string
    Description
    1 to 120 characters
  • scopes
    Type
    array of string
    Description
    at least 1 item
  • rateCapacity
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefill
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000

Response 200Key updated

Response of updateKey

  • datarequired
    Type
    ApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/keys/update \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
  "name": "string",
  "scopes": [
    "example:widgets:add"
  ],
  "rateCapacity": 120,
  "rateRefill": 20
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null
  }
}
POST/platform/v1/keys/remove

Revoke an API key

Scope
platform:keys:remove Admin-issued keys only.

Request bodyapplication/json

Request body of removeKey

  • idrequired
    Type
    string, uuid
    Description

Response 200Key revoked — keys are never deleted, only revoked, so the audit trail stays resolvable

Response of removeKey

  • datarequired
    Type
    ApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/keys/remove \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d"
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null
  }
}
POST/platform/v1/keys/rotate

Rotate an API key

Scope
platform:keys:rotate Admin-issued keys only.

Request bodyapplication/json

Request body of rotateKey

  • idrequired
    Type
    string, uuid
    Description
  • graceSeconds
    Type
    integer
    Description
    How long the old key keeps working alongside the new one (§6.2 rotation window).0 to 2592000 · default 86400

Response 200Replacement key — the old key keeps working until the grace window ends (§6.2: two active keys during rotation)

Response of rotateKey

  • datarequired
    Type
    CreatedApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.
  • secretrequired
    Type
    string
    Description
    Shown once, at creation. Store it now, because it is not retrievable.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/keys/rotate \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
  "graceSeconds": 86400
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null,
    "secret": "rsx_live_a1b2c3d4e5f6..."
  }
}
POST/platform/v1/keys/verify

Verify a key hash (internal)

Scope
platform:keys:verify Admin-issued keys only.

Request bodyapplication/json

Request body of verifyKey

  • hashrequired
    Type
    string
    Description
    matches ^[0-9a-f]{64}$

Response 200Key record for the supplied hash (status included — a revoked key still resolves, so the gateway can cache the revocation)

Response of verifyKey

  • datarequired
    Type
    VerifiedKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
  • namerequired
    Type
    string
    Description
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000

Example

curl
curl -X POST https://api.rsx.group/platform/v1/keys/verify \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "hash": "string"
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "string",
    "name": "string",
    "scopes": [
      "example:widgets:add"
    ],
    "status": "active",
    "rateCapacity": 120,
    "rateRefill": 20
  }
}
02

audit

1 operation under /platform/v1/audit.

GET/platform/v1/audit/list

List the key audit trail

Scope
platform:audit:list Admin-issued keys only.

Query parameters

Query parameters of listAudit

  • cursor
    Type
    string
    Description
  • limit
    Type
    integer
    Description
    1 to 100 · default 50

Response 200Audit records, newest first

Response of listAudit

  • datarequired
    Type
    array of AuditRecord
    Description
  • idrequired
    Type
    string, uuid
    Description
  • actorrequired
    Type
    string
    Description
    Who performed the mutation: the signed-in admin's email for management calls, or the RSX ID account id for a developer self-service call.
  • actionrequired
    Type
    string
    Description
    one of "add", "update", "remove", "rotate"
  • targetKeyIdrequired
    Type
    string, uuid
    Description
  • targetKeyPrefixrequired
    Type
    string, or null
    Description
  • targetKeyNamerequired
    Type
    string, or null
    Description
  • atrequired
    Type
    string, date-time
    Description
  • detailrequired
    Type
    string, or null
    Description
  • metarequired
    Type
    object
    Description
  • cursorrequired
    Type
    string, or null
    Description

Example

curl
curl "https://api.rsx.group/platform/v1/audit/list" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "actor": "ada@rsx.group",
      "action": "add",
      "targetKeyId": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "targetKeyPrefix": "rsx_live_a1b2c3d4",
      "targetKeyName": "ci-deploy",
      "at": "2026-10-10T12:00:00.000Z",
      "detail": "replacement=0198... grace=86400s"
    }
  ],
  "meta": {
    "cursor": "string"
  }
}
03

developer

4 operations under /platform/v1/developer.

POST/platform/v1/developer/keys/create

Create a developer API key (public scopes only)

Scope
platform:developer:keys:create Admin-issued keys only.

Request bodyapplication/json

Request body of createDeveloperKey

  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
    at least 1 item

Response 200Key created — the secret is shown exactly once

Response of createDeveloperKey

  • datarequired
    Type
    CreatedApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.
  • secretrequired
    Type
    string
    Description
    Shown once, at creation. Store it now, because it is not retrievable.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/developer/keys/create \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "name": "my-app",
  "scopes": [
    "example:widgets:list"
  ]
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null,
    "secret": "rsx_live_a1b2c3d4e5f6..."
  }
}
GET/platform/v1/developer/keys/list

List your own API keys

Scope
platform:developer:keys:list Admin-issued keys only.

Response 200Your keys

Response of listDeveloperKeys

  • datarequired
    Type
    array of ApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.

Example

curl
curl "https://api.rsx.group/platform/v1/developer/keys/list" \
  -H "Authorization: Bearer rsx_live_..."
200 response
{
  "data": [
    {
      "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
      "prefix": "rsx_live_a1b2c3d4",
      "name": "ci-deploy",
      "scopes": [
        "example:widgets:*"
      ],
      "status": "active",
      "createdAt": "2026-07-18T12:00:00Z",
      "expiresAt": null,
      "rateCapacity": 120,
      "rateRefill": 20,
      "accountId": null
    }
  ]
}
POST/platform/v1/developer/keys/revoke

Revoke one of your own API keys

Scope
platform:developer:keys:revoke Admin-issued keys only.

Request bodyapplication/json

Request body of revokeDeveloperKey

  • idrequired
    Type
    string, uuid
    Description

Response 200Revoked

Response of revokeDeveloperKey

  • datarequired
    Type
    ApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/developer/keys/revoke \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d"
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null
  }
}
POST/platform/v1/developer/keys/rotate

Rotate one of your own API keys

Scope
platform:developer:keys:rotate Admin-issued keys only.

Request bodyapplication/json

Request body of rotateDeveloperKey

  • idrequired
    Type
    string, uuid
    Description
  • graceSeconds
    Type
    integer
    Description
    How long the old key keeps working alongside the new one (§6.2 rotation window).0 to 2592000 · default 86400

Response 200Replacement key

Response of rotateDeveloperKey

  • datarequired
    Type
    CreatedApiKey
    Description
  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.
  • secretrequired
    Type
    string
    Description
    Shown once, at creation. Store it now, because it is not retrievable.

Example

curl
curl -X POST https://api.rsx.group/platform/v1/developer/keys/rotate \
  -H "Authorization: Bearer rsx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
  "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
  "graceSeconds": 86400
}'
200 response
{
  "data": {
    "id": "0198f2b1-6c2a-7c9e-9d3a-1e2f3a4b5c6d",
    "prefix": "rsx_live_a1b2c3d4",
    "name": "ci-deploy",
    "scopes": [
      "example:widgets:*"
    ],
    "status": "active",
    "createdAt": "2026-07-18T12:00:00Z",
    "expiresAt": null,
    "rateCapacity": 120,
    "rateRefill": 20,
    "accountId": null,
    "secret": "rsx_live_a1b2c3d4e5f6..."
  }
}
04

Schemas

Every named shape in this reference, as the operations above refer to it.

ApiKey

ApiKey

  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.

CreatedApiKey

CreatedApiKey

  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
    Greppable display prefix, never the secret.
  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • createdAtrequired
    Type
    string, date-time
    Description
  • expiresAtrequired
    Type
    string, date-time, or null
    Description
    Set during rotation: the old key's grace-window end.
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • accountIdrequired
    Type
    string, uuid, or null
    Description
    Owning RSX ID account for developer self-issued keys; null for admin-issued keys.
  • secretrequired
    Type
    string
    Description
    Shown once, at creation. Store it now, because it is not retrievable.

CreateKey

CreateKey

  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
    at least 1 item
  • rateCapacity
    Type
    integer
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefill
    Type
    number
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000
  • expiresInDays
    Type
    integer
    Description
    Omit for a key that never expires.1 to 3650

UpdateKey

UpdateKey

  • idrequired
    Type
    string, uuid
    Description
  • name
    Type
    string
    Description
    1 to 120 characters
  • scopes
    Type
    array of string
    Description
    at least 1 item
  • rateCapacity
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefill
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000

RemoveKey

RemoveKey

  • idrequired
    Type
    string, uuid
    Description

RotateKey

RotateKey

  • idrequired
    Type
    string, uuid
    Description
  • graceSeconds
    Type
    integer
    Description
    How long the old key keeps working alongside the new one (§6.2 rotation window).0 to 2592000 · default 86400

AuditRecord

AuditRecord

  • idrequired
    Type
    string, uuid
    Description
  • actorrequired
    Type
    string
    Description
    Who performed the mutation: the signed-in admin's email for management calls, or the RSX ID account id for a developer self-service call.
  • actionrequired
    Type
    string
    Description
    one of "add", "update", "remove", "rotate"
  • targetKeyIdrequired
    Type
    string, uuid
    Description
  • targetKeyPrefixrequired
    Type
    string, or null
    Description
  • targetKeyNamerequired
    Type
    string, or null
    Description
  • atrequired
    Type
    string, date-time
    Description
  • detailrequired
    Type
    string, or null
    Description

VerifiedKey

VerifiedKey

  • idrequired
    Type
    string, uuid
    Description
  • prefixrequired
    Type
    string
    Description
  • namerequired
    Type
    string
    Description
  • scopesrequired
    Type
    array of string
    Description
  • statusrequired
    Type
    string
    Description
    one of "active", "revoked"
  • rateCapacityrequired
    Type
    integer, or null
    Description
    Token-bucket burst size for this key.1 to 100000
  • rateRefillrequired
    Type
    number, or null
    Description
    Sustained requests/second refill rate for this key.0.1 to 10000

VerifyKey

VerifyKey

  • hashrequired
    Type
    string
    Description
    matches ^[0-9a-f]{64}$

CreateDeveloperKey

CreateDeveloperKey

  • namerequired
    Type
    string
    Description
    1 to 120 characters
  • scopesrequired
    Type
    array of string
    Description
    at least 1 item