List messages (PRIMARY data)
const url = 'https://app.everruns.com/api/v1/sessions/example/messages';const options = {method: 'GET'};
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://app.everruns.com/api/v1/sessions/example/messagesParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Session ID (prefixed, e.g., sess_…)
Responses
Section titled “Responses”List of messages
Response wrapper for list endpoints.
All list endpoints return responses wrapped in a data field.
object
Array of items returned by the list operation.
Message - primary conversation data (API response)
object
Array of content parts.
Reasoning artifacts appear here as reasoning parts, in the order the
provider emitted them, with opaque replay state (signatures, encrypted
payloads) stripped.
Text content
object
Claim-level citations attached to spans of text.
The narrow render contract shared by all citation capabilities (see
knowledge/runtime-resources/citations.md). Empty for non-cited text, so the wire shape of
existing messages is unchanged.
A claim-level citation attached to a span of generated text.
The single shared type across every citation capability: a text span linked
to a source. Producers agree only on this render contract — each capability
keeps its own richer representation (e.g. KnowledgeIndexCitation) and maps
into this envelope at emit time. See knowledge/runtime-resources/citations.md.
object
Exclusive end char offset.
Opaque producer id (e.g. kchk_…, kbe_…, a URL hash). Not interpreted
by the render contract.
Capability id that produced this annotation (e.g. citation_retrieval).
Lets the UI and evals attribute and filter each citation by feed.
The cited source.
object
Provenance within the document (line / char / page / block ranges),
reusing the retrieval location JSONB shape.
Trimmed passage that backs the claim. Display-only; never relied on for prompt reconstruction.
Human-readable source title, when known.
Stable, linkable locator (e.g. github://owner/repo@main/docs/x.md or an
https:// URL).
0-indexed start char offset into the enclosing TextContentPart.text.
Verification verdict, filled by the citation_verification capability.
Absent means unverified (not “unsupported”).
object
Entailment confidence in [0, 1], when the verifier produced one.
Whether the cited source supports the claim.
Image content (base64 or URL)
object
Image file content (reference to uploaded image by ID)
object
Original filename (for display)
ID of the uploaded image (format: img_{32-hex})
Tool call content (assistant requesting tool execution)
object
Tool result content (result of tool execution)
object
ID of the tool call this result corresponds to
Provider reasoning artifact, ordered against the text and tool calls it was interleaved with.
object
Id of the tool call this artifact is bound to, when the provider scopes it that way (Gemini attaches a thought signature to one function call).
Provider-encrypted reasoning context (OpenAI encrypted_content).
Opaque.
Provider-assigned identifier, carried verbatim (e.g. OpenAI rs_…).
Provider that produced this artifact (e.g. anthropic, openai).
Replay is only valid against the provider that issued it.
Provider signature over this specific block (Anthropic thinking
signature, Gemini thoughtSignature). Opaque.
Verbatim chain-of-thought exposed by the provider (Anthropic extended
thinking, Gemini thought parts, Chat Completions reasoning_content).
object
Provider-curated summary segments, not raw chain-of-thought (OpenAI
Responses summary_text). Safe to display; never the model’s own words.
object
The provider withheld the content (Anthropic redacted_thinking). The
artifact must still be replayed verbatim, so the part keeps its
signature/encrypted payload while carrying no readable text.
object
Reasoning tokens attributed to this artifact, when reported.
Runtime controls (model, reasoning, etc.)
object
Error disclosure override for this turn: “generic”, “standard”, or
“detailed”. Clamped to at most the mode allowed by the agent’s
error_disclosure capability (capability absent => “standard”), so a
client can narrow but never widen disclosure.
Generic client hints — arbitrary key-value pairs declared by the client. Session-level defaults are set at session creation; per-message values override session hints key-by-key (shallow merge).
Examples: {"setup_connection": true, "rich_media": true}
Locale override for this message turn (BCP 47, e.g. uk-UA).
Overrides the session locale for backend-authored strings and prompts.
Model ID to use for this message (format: model_{32-hex}). Overrides session and agent model settings.
Speed (service tier) for this message turn: “flex”, “default”, or
“priority”. Only sent to providers whose model profile advertises a
speed config (OpenAI service_tier).
Verbosity for this message turn: “low”, “medium”, or “high”. Only sent
to providers whose model profile advertises a verbosity config (OpenAI
verbosity).
Timestamp when this resource was created (RFC 3339).
External actor identity (for messages from external channels like Slack)
object
Opaque actor identifier from the source channel (e.g. Slack user ID “U0123456789”)
Resolved display name (e.g. “Alice”). Falls back to actor_id if absent.
Channel-specific metadata (e.g. team_id, channel_id)
Source channel identifier (e.g. “slack”, “discord”)
Unique message ID (format: message_{32-hex})
Message-level metadata (locale, etc.)
Execution phase for agent messages: whether this is intermediate
commentary or the turn’s final_answer. Absent on user messages.
Without this a client cannot tell an intermediate message from the answer, which is the single question most consumers of a session need answered.
Whether phase was reported by the provider or inferred by the runtime
from tool-call presence.
derived is a weak signal: it means only “this message called tools”,
so a text-only preamble is reported as final_answer. Clients needing a
dependable classification should treat derived accordingly.
Message role (API layer)
Simplified to only user and agent messages.
Tool results are conveyed via tool.completed events.
System messages are internal and not exposed via API.
Session ID this message belongs to (format: session_{32-hex})
Example
{ "data": [ { "content": [ { "annotations": [ { "end": 19, "external_id": "kchk_01j9y3q8w2", "origin": "citation_retrieval", "source": { "snippet": "The control plane owns durable state.", "title": "Architecture Overview", "uri": "github://owner/repo@main/docs/x.md" }, "start": 0, "verified": { "score": 0.92, "status": "entailed" } } ], "type": "text" } ], "controls": { "model_id": "model_01933b5a00007000800000000000001", "reasoning": { "effort": "none" } }, "id": "message_01933b5a00007000800000000000001", "phase": "commentary", "phase_source": "provider", "role": "user", "session_id": "session_01933b5a00007000800000000000001" } ]}Invalid ID format
Session not found
Internal server error