Skip to main content
Sessions

List Session Thread Events

Read the public Event history of a Forward Session Thread with cursor pagination.

GET /api/v1/forward/sessions/{session_id}/threads/{thread_id}/events

Request headers

HeaderRequiredDescription
AuthorizationYesBearer <PAT or SAT>

Path and query parameters

ParameterTypeRequiredDefaultDescription
session_idstringYes-Session ID with the sess_ prefix.
thread_idstringYes-Thread ID with the sthr_ prefix.
limitintegerNo20Page size from 1 to 100.
after_idstringNo-Return records after this Event ID.
before_idstringNo-Return records before this Event ID.
You cannot pass after_id and before_id together. Results are always sorted in ascending order. Thread Event history does not support order, type, types, types[], include_tool_calls, include_thinking, or event_deltas[]. Passing any of these parameters, even with an empty value, returns 400 invalid_request.

Example request

curl -s -X GET 'https://api.qoder.com/api/v1/forward/sessions/sess_xxx/threads/sthr_child_xxx/events?limit=20' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN"

Example response

{
  "data": [{
    "id": "evt_xxx",
    "type": "agent.message",
    "session_id": "sess_xxx",
    "content": [{ "type": "text", "text": "The child task is complete." }],
    "processed_at": "2026-06-22T11:05:00Z"
  }],
  "first_id": "evt_xxx",
  "last_id": "evt_xxx",
  "has_more": false
}
FieldTypeDescription
dataarrayEvent objects on this page.
first_idstring | nullFirst Event ID on this page, or null when empty.
last_idstring | nullLast Event ID on this page, or null when empty.
has_morebooleanWhether more records are available.

Errors

HTTPTypeCodeCondition
400invalid_requestinvalid_limitlimit is not an integer from 1 to 100.
400invalid_requestinvalid_paginationBoth after_id and before_id were provided.
400invalid_requestinvalid_requestAn unsupported selector was provided.
401authentication_errorauthentication_requiredThe PAT or SAT is invalid or expired.
404not_foundsession_not_foundThe Session does not exist or is not visible to the caller.
404not_found_errorthread_not_foundThe Thread does not exist or does not belong to the Session.
502api_errorruntime_unavailableThe Thread runtime service is unavailable.

Notes

  • Thread Events use the same public field projection as Session Events. Unknown Event types return only the minimum Event envelope.
  • After a Thread is archived, its full message and tool history is no longer available here. Recover lifecycle Events from the parent Session history or stream, and retrieve final state with the get Thread endpoint.
List Session Thread Events - Qoder