Shipeasy
APIOperations

List config version history

Returns every published version of the config's value on one env, newest first. The env query parameter picks the environment (dev, staging, or prod) and…

Returns every published version of the config's value on one env, newest first. The env query parameter picks the environment (dev, staging, or prod) and defaults to prod; an unknown env returns 400. The config's JSON Schema is config-level and not versioned — this is value history only.

Use case

Render the History timeline in the config detail pane (value diff + restore), or audit which value was live on prod at a given version.

GET
/api/admin/configs/{id}/versions

Authorization

bearerSdkKey
AuthorizationBearer <token>

Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".

In: header

Path Parameters

id*string

Stable opaque config id (cfg_…) or the config's name.

Length1 <= length <= 128

Query Parameters

env?string

Environment to list history for (dev, staging, or prod). Defaults to prod when omitted.

Value in"dev" | "staging" | "prod"

Header Parameters

X-Project-Id?string

Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://shipeasy.ai/api/admin/configs/string/versions"
[
  {
    "version": 5,
    "value": {
      "tiers": [
        {
          "name": "free"
        },
        {
          "name": "pro"
        }
      ]
    },
    "publishedAt": "2026-05-09T18:22:11.000Z",
    "publishedBy": "ana@example.com"
  },
  {
    "version": 4,
    "value": {
      "tiers": [
        {
          "name": "free"
        }
      ]
    },
    "publishedAt": "2026-05-08T11:05:22.000Z",
    "publishedBy": "bo@example.com"
  }
]
{
  "error": "Malformed request (bad JSON, missing project scope).",
  "code": "BAD_REQUEST"
}
{
  "error": "Missing or invalid admin SDK key.",
  "code": "UNAUTHORIZED"
}

{
  "error": "Key is valid but not allowed to act on this project.",
  "code": "FORBIDDEN"
}

{
  "error": "The resource does not exist or is not visible to the caller.",
  "code": "NOT_FOUND"
}

{
  "error": "A resource with this name already exists in the project.",
  "code": "ALREADY_EXISTS"
}

{
  "error": "The request body failed structural (schema) validation.",
  "code": "VALIDATION"
}

Was this page helpful?
Updated August 8, 2026