Sync Agent Session
Sync a Claude Code transcript from a developer laptop. Requires a user token (device-flow `agent login`): the user is part of the sync's idempotency key, so API keys and sandbox tokens are rejected with a 403 rather than silently attributed.
Sync a Claude Code transcript from a developer laptop.
Requires a user token (device-flow agent login): the user is
part of the sync's idempotency key, so API keys and sandbox
tokens are rejected with a 403 rather than silently attributed.
Authorization
HTTPBearer In: header
Header Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
One hook-driven transcript sync from a developer laptop. The CLI reads the live on-disk Claude Code transcript, redacts it client-side, gzips it, and POSTs it here — once per turn and at termination.
Response Body
application/json
application/json
curl -X POST "https://example.com/v1/sessions/sync" \ -H "Content-Type: application/json" \ -d '{ "cc_session_id": "string", "transcript_gzip_b64": "string" }'{ "accepted": true, "event_count": 0, "process_id": "string", "session_id": "string"}Search Sessions
Search the customer's sessions, grouped by session, over everything a session left behind: step text, recap text, created PRs, and recap-embedding similarity. This is how an agent answers "did Tony look into X?": resolve the author via /github/members, search, then read the winning session via /sessions/{id} (recap) and /sessions/{id}/records (transcript).
Get Agent Session
Return one session in the public wire shape — the same shape the stream's session frames carry, with attributed_user and stopped_by_user resolved at read time. The heavy near-static blobs (config snapshot, input/output) live on the detail endpoints, not here.