Read channel history
const url = 'http://127.0.0.1:7799/api/channels/general/history?limit=20';const options = {method: 'GET', headers: {cookie: 'cotal_web_session=<cotal_web_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'http://127.0.0.1:7799/api/channels/general/history?limit=20' \ --cookie cotal_web_session=<cotal_web_session>Percent-decode the channel once and validate it using the core channel grammar. Invalid names are refused without rewriting them to another channel. A failed or late read returns HTTP 503.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Channel name or pattern accepted by the core channel grammar. Encode it as one URL path component.
Example
generalQuery Parameters
Section titled “Query Parameters”Maximum requested messages. Absent or empty uses 200. Accepts decimal digits naming a safe integer, including 0; negative, fractional, whitespace-padded and unsafe values are refused.
Example
20Responses
Section titled “Responses”The current snapshot or history page.
object
Channel name — multicast (broadcast to everyone on the channel).
Conversation / thread correlation id.
object
Unique message id.
Lowercased peer names called out within a channel message — a wake hint that also, on a live channel, routes a durable copy to each mentioned target authorized to read that channel (SPEC §4/§5). It never carries content outside the target’s read ACL and is not a routing substitute for channel/to; the message still multicasts to the whole channel. Omitted when empty.
object
Reference to bytes in the space’s artifact store — SPEC §5’s reserved slot, now defined. Bare (not reverse-DNS) because it is Cotal’s own core primitive: extension kinds wrap EXTERNAL vocabularies, core kinds are the standard’s own. The full contract, the guard, and the object-store digest boundary live in artifact.ts.
object
sha256:<hex> over the raw bytes — the artifact’s identity. The only self-verifying field.
MIME type. A publisher’s claim.
Human name, e.g. coverage-report.html. A publisher’s claim, not a checked fact.
Size in bytes. A publisher’s claim: a receiver must never preallocate from it.
object
Reverse-DNS extension part kind, e.g. com.acme.snapshot.
Id of the message being replied to.
Epoch ms.
object
Conversation / thread correlation id.
object
Unique message id.
Lowercased peer names called out within a channel message — a wake hint that also, on a live channel, routes a durable copy to each mentioned target authorized to read that channel (SPEC §4/§5). It never carries content outside the target’s read ACL and is not a routing substitute for channel/to; the message still multicasts to the whole channel. Omitted when empty.
object
Reference to bytes in the space’s artifact store — SPEC §5’s reserved slot, now defined. Bare (not reverse-DNS) because it is Cotal’s own core primitive: extension kinds wrap EXTERNAL vocabularies, core kinds are the standard’s own. The full contract, the guard, and the object-store digest boundary live in artifact.ts.
object
sha256:<hex> over the raw bytes — the artifact’s identity. The only self-verifying field.
MIME type. A publisher’s claim.
Human name, e.g. coverage-report.html. A publisher’s claim, not a checked fact.
Size in bytes. A publisher’s claim: a receiver must never preallocate from it.
object
Reverse-DNS extension part kind, e.g. com.acme.snapshot.
Id of the message being replied to.
Instance id — unicast (direct to one specific endpoint).
Epoch ms.
object
Conversation / thread correlation id.
object
Unique message id.
Lowercased peer names called out within a channel message — a wake hint that also, on a live channel, routes a durable copy to each mentioned target authorized to read that channel (SPEC §4/§5). It never carries content outside the target’s read ACL and is not a routing substitute for channel/to; the message still multicasts to the whole channel. Omitted when empty.
object
Reference to bytes in the space’s artifact store — SPEC §5’s reserved slot, now defined. Bare (not reverse-DNS) because it is Cotal’s own core primitive: extension kinds wrap EXTERNAL vocabularies, core kinds are the standard’s own. The full contract, the guard, and the object-store digest boundary live in artifact.ts.
object
sha256:<hex> over the raw bytes — the artifact’s identity. The only self-verifying field.
MIME type. A publisher’s claim.
Human name, e.g. coverage-report.html. A publisher’s claim, not a checked fact.
Size in bytes. A publisher’s claim: a receiver must never preallocate from it.
object
Reverse-DNS extension part kind, e.g. com.acme.snapshot.
Id of the message being replied to.
Service / role — anycast (any one instance of the service receives it).
Epoch ms.
Example
[ { "parts": [ { "kind": "text" } ] }]A valid one-use k query token is exchanged for a dashboard session. The response redirects to the same path without its query. A valid existing cookie takes precedence over k.
Headers
Section titled “Headers”The requested path without the query string.
Cotal_web_session=
The query or percent-encoded channel name is invalid.
object
Examplegenerated
{ "error": "example"}No valid session, an invalid launch token, or a spent launch token. The readiness credential does not authorize these routes.
object
Example
{ "error": "unauthenticated"}Origin is checked before session authentication. An origin outside this listener’s allowed origins is refused.
object
Example
{ "error": "cross-origin"}These read routes accept no request body. An announced body is refused before it is read; the connection is closed.
object
Examplegenerated
{ "error": "example"}The request failed. The body names the failure; a failed read does not terminate the dashboard.
object
Examplegenerated
{ "error": "example"}The history read failed or did not finish within 8000 ms.
object
Examplegenerated
{ "error": "example"}