Shoalrun documentation frameworkMenu
For agents
Start with https://www.shoalrun.com/llms.txt for the documentation index, then read the Markdown pages it links. Skip to article. Documentation index. Read this page as Markdown.
API reference

Read HTML or Markdown headers

Updated
HEAD/resources/{key}/representations/{format}View examples
Read as Markdown

This reference is generated from the OpenAPI description. It shows the operation contract; follow any related guides below for task steps and context.

OpenAPI for this operation: Download JSON.

HEAD /resources/{key}/representations/{format}

Read HTML or Markdown headers

Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter. HEAD returns the GET status and headers without a response body.

Servers

/content/v1

Parameters

channel (query)

Required

Exact publication channel. No default or fallback.

string; minLength: 1; maxLength: 2048

Default example: "production"

version (query)

Required

Exact publication version. No default or fallback.

string; minLength: 1; maxLength: 2048

Default example: "current"

language (query)

Required

Exact publication language. No default or fallback.

string; minLength: 1; maxLength: 2048

Default example: "en"

revision (query)

Required

Exact revision returned by the list endpoint. A different revision returns 409; it never silently reads newer content.

string; pattern: ^[a-f0-9]{64}$

Default example: "0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"

key (path)

Required

Opaque stable typed-reference key. Use the returned key. It is k_ followed by unpadded base64url of UTF-8 JSON for ["page",documentId], ["section",documentId,sectionId], or ["snippet",id]. Publication and revision are separate selectors.

string; pattern: ^k_[A-Za-z0-9_-]+$

Default example: "k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd"

format (path)

Required

string

Available options: "html", "markdown"

Default example: "markdown"

If-None-Match (header)

Optional

An ETag, comma-separated ETags, or *. Weak comparison is supported for GET and HEAD.

string

Responses

200: OK

The selected resource or inventory.

Response headers
ETag

Optional

Strong SHA-256 validator of the exact UTF-8 response bytes.

Serialization: simple; explode: false.

string

Cache-Control

Optional

Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.

Serialization: simple; explode: false.

string

304: Not Modified

The validated selected response matches If-None-Match. No response body.

Response headers
ETag

Optional

Strong SHA-256 validator of the exact UTF-8 response bytes.

Serialization: simple; explode: false.

string

Cache-Control

Optional

Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.

Serialization: simple; explode: false.

string

400: Bad Request

invalid_request: missing, duplicate, unknown, or malformed query parameter.

Response headers
Cache-Control

Optional

Serialization: simple; explode: false.

const: "no-store"

404: Not Found

not_found: unknown publication, resource, or route.

Response headers
Cache-Control

Optional

Serialization: simple; explode: false.

const: "no-store"

405: Method Not Allowed

method_not_allowed: only GET and HEAD are supported; Allow lists both.

Response headers
Cache-Control

Optional

Serialization: simple; explode: false.

const: "no-store"

Allow

Optional

Serialization: simple; explode: false.

const: "GET, HEAD"

406: Not Acceptable

unsupported_format: unsupported or unavailable representation format.

Response headers
Cache-Control

Optional

Serialization: simple; explode: false.

const: "no-store"

409: Conflict

stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.

Response headers
Cache-Control

Optional

Serialization: simple; explode: false.

const: "no-store"

500: Internal Server Error

internal_error: the source could not complete the request.

Response headers
Cache-Control

Optional

Serialization: simple; explode: false.

const: "no-store"