---
title: "Stream a fragment’s evidence bytes (parent asset, v1)"
method: GET
path: "/v1/evidence/fragments/{fragmentId}/raw"
tags: ["Evidence"]
---

# Stream a fragment’s evidence bytes (parent asset, v1)

`GET /v1/evidence/fragments/{fragmentId}/raw`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/evidence/fragments/{fragmentId}/raw`
- Auth: HTTP bearer

Fragment twin of the asset stream: v1 serves the WHOLE parent asset’s bytes (no locator cropping yet) under the STRICTEST union of the fragment’s and the asset’s piiClasses. Streams the asset’s original bytes after the full gate ladder: brain:read scope, ABAC action `rest.evidence.raw`, tenant fence (availability='hot', quarantine clean-or-absent), at least one live ownership grant (a user-bound key needs the end user’s own), current pack modality consent declaring the raw-evidence capability, and the media-PII polarity (unclassified blocked, `[]` open, non-empty needs `brain:read_media`). Any denial is a bare 404. 404 until EVIDENCE_RAW_READ_ENABLED=1. Source: src/evidence/evidence-read.controller.ts.

Required scope: `brain:read`.

## Path parameters

- `fragmentId` string, required

## Response `200`

The original bytes (Content-Type = the registered mediaType), with X-Content-Type-Options: nosniff, Cache-Control: no-store and Content-Disposition: attachment.

## Other responses

- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.
- `404`: No such resource in this tenant.

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
