Api / Artifacts

GET/v1/conversations/:id/artifacts/:aid/raw

Auth: tenant — Status: stable

Raw content blob with Content-Type (from the artifact's mime_type) and a strong ETag (= the artifact's sha256, RFC 7232-quoted). Conditional If-None-Match returns 304 Not Modified cheaply.

Request

Path paramTypeDescription
idintConversation id.
aidintArtifact id.

Conditional headers

HeaderDescription
If-None-MatchIf the value matches the artifact's ETag, respond 304 with no body.
curl -H "Authorization: Bearer atr_…" \
  http://arbiter.example.com/v1/conversations/7/artifacts/12/raw

Response

200 OK

Raw bytes. Headers:

HeaderValue
Content-TypeThe artifact's mime_type.
Content-LengthBytes.
ETag"<sha256>" (RFC 7232 strong validator).

304 Not Modified

When If-None-Match matches. Empty body, includes the same ETag.

Failure modes

StatusWhenBody
401Missing / invalid bearer.{"error": "..."}
404Id doesn't exist for this tenant + conversation pair, or the row's content is missing (data corruption — defensive).{"error": "artifact not found"} or {"error": "artifact content missing"}

See also