Fetch a specific data block version
const url = 'https://example.com/v1/blocks/example/versions/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/blocks/example/versions/example \ --header 'Authorization: Bearer <token>'An unregistered version is returned too, with unregisteredAt.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Block id: dotted lowercase (e.g. acme.intake-prompt).
Exact block version (major.minor.patch).
Responses
Section titled “Responses”The block at that version.
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
Dotted lowercase id (e.g. acme.intake-prompt).
prompt: a Liquid template an agent renders as its instructions. settings: a JSON object tools and templates read.
object
Liquid, rendered as an agent’s instructions are (same parameters and auto-injected variables).
object
Default value used when the caller omits this parameter.
object
What tools read (ToolContext.settings[<block id>]) and templates read (settings.<block id>.<key>).
object
JSON Schema (draft 2020-12) the values must satisfy. A later version’s values must satisfy the latest version’s schema too.
object
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.
Who published the version: a user, or a service token. Absent on a version published before it was recorded.
object
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
Present for deploy and suggested-change.
Example
{ "kind": "prompt", "content": { "parameters": [ { "type": "string" } ] }, "publishedBy": { "kind": "user" }, "source": { "kind": "api" }}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}block-not-found.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
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.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}See also
GET /v1/blocks/{blockId}: Fetch a data block (latest version)GET /v1/blocks/{blockId}/versions: List versions of a data blockGET /v1/blocks/{blockId}/runs-in: List where a data block's versions runPOST /v1/blocks/{blockId}/versions/{version}/unregister: Unregister a data block version- Error code
block-not-found - Error code
database-busy - Every error code