Releases

Docs API reference

Releases

In a workspace that publishes manually, screens play the newest release, never the working copies. Publish the working copies as a release (now, at a time, or to some stages first), read the history, and roll back — a rollback is a new release equal to an old one. Live operations and data records never wait for a release.

List releases

GET /releases publishing

The release history, newest first.

Parameters

  • limit integer query

    Page size, 1–200.

    1–200. Default 50

  • cursor string query

    The next_cursor of the previous page.

Responses

  • 200 A page of releases.
  • 401 Missing or invalid API key.
  • 403 The key lacks the scope, or the role is read-only.
Response fields (200)
  • items object[] required
    9 fields in items
    • number integer required
    • note string required
    • scope string or object required

      all, or only these stages.

    • valid_from integer or null required

      A scheduled publish: epoch ms it takes effect.

    • rollback_of integer or null
    • canceled boolean
    • documents integer

      How many documents it holds.

    • created_at integer required
    • created_by string required
  • next_cursor string or null required

    Pass as cursor for the next page; null on the last page.

curl "https://www.wunderframe.com/api/v1/releases?limit=50" \
  -H "Authorization: Bearer $WUNDERFRAME_API_KEY"
Response 200
{
  "items": [
    {
      "number": 43,
      "note": "Lunch menu for Friday",
      "scope": "all",
      "valid_from": null,
      "rollback_of": null,
      "canceled": false,
      "documents": 212,
      "created_at": 1790000000000,
      "created_by": "Ana Muster"
    }
  ],
  "next_cursor": null
}
Error example
Response 401
{
  "error": {
    "code": "unauthorized",
    "message": "Missing or invalid API key."
  }
}

Publish

POST /releases publishing

Publish the working copies as a new release. stage_ids limits it to those stages (the others keep theirs); at (ISO 8601) schedules it — screens download ahead and switch exactly then.

Request body

  • note string

    Up to 500 characters

  • stage_ids string[]
  • at string (date-time)

Responses

  • 201 The release.
  • 400 The request is invalid — details.field names the field when there is one.
  • 401 Missing or invalid API key.
  • 403 The key lacks the scope, or the role is read-only.
Response fields (201)
  • release object required
    9 fields in release
    • number integer required
    • note string required
    • scope string or object required

      all, or only these stages.

    • valid_from integer or null required

      A scheduled publish: epoch ms it takes effect.

    • rollback_of integer or null
    • canceled boolean
    • documents integer

      How many documents it holds.

    • created_at integer required
    • created_by string required
  • changes integer required

    Documents changed since the previous release.

  • stage_ids string[] required

    Stages the changes reach.

curl -X POST "https://www.wunderframe.com/api/v1/releases" \
  -H "Authorization: Bearer $WUNDERFRAME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "note": "Lunch menu for Friday",
  "at": "2026-09-20T11:00:00+02:00"
}'
Response 201
{
  "release": {
    "number": 43,
    "note": "Lunch menu",
    "scope": "all",
    "valid_from": null,
    "created_at": 1790000000000,
    "created_by": "Ana Muster"
  },
  "changes": 3,
  "stage_ids": [
    "stg_lobby",
    "stg_bar"
  ]
}
Error example
Response 400
{
  "error": {
    "code": "invalid",
    "message": "The request is invalid — `details.field` names the field when there is one."
  }
}

Roll back to a release

POST /releases/{id}/rollback publishing

A new release equal to release id; history is never rewritten.

Parameters

  • id string required path

    The release number to go back to.

Responses

  • 201 The new release.
  • 401 Missing or invalid API key.
  • 403 The key lacks the scope, or the role is read-only.
  • 404 Not found in this workspace.
Response fields (201)
  • number integer required
  • note string required
  • scope string or object required

    all, or only these stages.

  • valid_from integer or null required

    A scheduled publish: epoch ms it takes effect.

  • rollback_of integer or null
  • canceled boolean
  • documents integer

    How many documents it holds.

  • created_at integer required
  • created_by string required
curl -X POST "https://www.wunderframe.com/api/v1/releases/wkFRBzMq6POZ_qYJHvgQf/rollback" \
  -H "Authorization: Bearer $WUNDERFRAME_API_KEY"
Response 201
{
  "number": 43,
  "note": "Lunch menu for Friday",
  "scope": "all",
  "valid_from": null,
  "rollback_of": null,
  "canceled": false,
  "documents": 212,
  "created_at": 1790000000000,
  "created_by": "Ana Muster"
}
Error example
Response 401
{
  "error": {
    "code": "unauthorized",
    "message": "Missing or invalid API key."
  }
}