Stream one file's bytes from a step's output workspace snapshot (ADR-0029). Read at the run's tenant; immutable content.
GET
/v1/runs/{id}/steps/{step}/workspace/file
const url = 'https://example.com/v1/runs/example/steps/example/workspace/file?path=example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/runs/example/steps/example/workspace/file?path=example'Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string
Run id
step
required
string
Step id
Query Parameters
Section titled “Query Parameters”path
required
string
File path within the snapshot
attempt
string
Attempt id — that attempt’s immutable snapshot instead of the latest (ADR-0056)
Responses
Section titled “Responses”The file bytes. For a symlink the body is the link TARGET PATH (that is all the snapshot stores for it), flagged by the X-Scarab-Symlink: 1 response header — it is never the target’s content
No such file or browse disabled