Skip to content

List versions of a data block

View as Markdown
GET
/v1/blocks/{blockId}/versions
curl --request GET \
--url 'https://example.com/v1/blocks/example/versions?limit=25&includeTombstoned=false' \
--header 'Authorization: Bearer <token>'

Newest published first. ?includeTombstoned=true includes unregistered versions, each with unregisteredAt.

blockId
required
string
>= 1 characters

Block id: dotted lowercase (e.g. acme.intake-prompt).

limit
integer
default: 25 >= 1 <= 100

1..100. Default 25.

cursor
string

Where the previous page ended: its nextCursor, as it came. A runtime that seals cursors takes one only for the same list, filters and caller, within a day; otherwise 400 bad-input, and the list starts again without it. Absent → first page.

includeTombstoned
boolean

When true, the response includes soft-tombstoned versions in addition to active ones. Tombstoned rows carry an unregisteredAt ISO timestamp; active rows omit the field. Default: false (active-only).

Page of versions.

Media typeapplication/json
object
data
required
Array<object>

A data block version: a prompt or settings, versioned like a tool (immutable versions, soft unregister). An agent version pins the block versions it uses when it is published. Belongs to one project and is authorized through it.

object
id
required

Dotted lowercase id (e.g. acme.intake-prompt).

string
version
required
string
/^\d+\.\d+\.\d+$/
kind
required

prompt: a Liquid template an agent renders as its instructions. settings: a JSON object tools and templates read.

string
Allowed values: prompt settings
description
string
content
required
One of:
object
template
required

Liquid, rendered as an agent’s instructions are (same parameters and auto-injected variables).

string
>= 1 characters
parameters
Array<object>
object
name
required
string
description
string
type
required
string
Allowed values: string number boolean date
required
boolean
default

Default value used when the caller omits this parameter.

projectId
required
string format: uuid
publishedAt
required
string format: date-time
unregisteredAt

Present only on an unregistered version; agent versions that pin it still read it. A retired block (every version unregistered) carries it as GET /v1/blocks?includeRetired=true lists it.

string format: date-time
publishedBy

Who published the version: a user, or a service token. Absent on a version published before it was recorded.

object
kind
required
string
Allowed values: user service
id
required
string
source

Where a block version came from: api (POST /v1/blocks), deploy (a deploy’s pack; id is the deployment’s) or suggested-change (id is the suggested change’s). Absent on a version published before it was recorded.

object
kind
required
string
Allowed values: api deploy suggested-change
id

Present for deploy and suggested-change.

string
nextCursor
string
hasMore
required
boolean
Example
{
"data": [
{
"kind": "prompt",
"content": {
"parameters": [
{
"type": "string"
}
]
},
"publishedBy": {
"kind": "user"
},
"source": {
"kind": "api"
}
}
]
}

bad-input: a cursor this list didn’t issue.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

block-not-found.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

The database was too busy to answer in time (database-busy); Retry-After (whole seconds) says when to try again.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

See also