session_capture

Ingest Session Capture

Ingest one Claude Code session transcript (idempotent on content_hash).

Multipart form:

  • transcript : the raw (optionally gzipped) .jsonl blob (file part)
  • session_id : Claude Code session UUID (the .jsonl filename) — upsert key
  • project / git_branch / source : cheap context
  • byte_size / message_count / started_at / ended_at : cheap metadata
  • metadata : optional JSON blob (model, mcp servers, tool tallies)

Behavior:

  • hash the uploaded bytes (sha256)
  • if a row for session_id exists with the same content_hash → no-op (returns status="unchanged"; nothing uploaded, nothing rewritten)
  • else upload the blob to R2 (hard-fail: R2 is the blob's only home) and upsert the session_capture row.
post/api/v1/session-capture

Request

  • Base URL
    https://api-v1.unusual.ai (the document declares no server; this is the origin it was published from)
  • Auth
    none declared

Headers

authorizationstring nullable

Request body multipart/form-data

session_idstring required
transcriptstring binary required
projectstring nullable
git_branchstring nullable
sourcestring
byte_sizestring nullable
message_countstring nullable
started_atstring nullable
ended_atstring nullable
metadatastring nullable

Response

Successful Response

object required

Changes

No recorded changes to this operation across all 1 revision of this API.