# 3pm-backend route `artifactFile`

Paths are relative to the backend's origin (https://fleet.edgecr4ft.net, or your own 3pm-backend), not to this site. Index: https://3pm.edgecr4ft.net/docs/backend/api.md

---

tokens:
  claude: 327
  o200k: 200
# GET /api/buckets/{clusterId}/artifacts/{artifactId}/file (artifactFile)

One artifact's bytes, as they are stored: gzip (`Content-Encoding: gzip`, so a browser, `fetch` or `curl --compressed` sees the file itself — a `.cpuprofile` opens in Chrome DevTools and speedscope), or raw for the call outputs an older backend kept (`encoding: identity`, no such header). A node's bearer may only fetch what its own calls left.

- auth: an account — Authorization: Bearer 3pmu_<token>, or the dashboard's session cookie
- node: also open to a node's own bearer (3pma_…) when its row is granted fleet:invoke; that node's bucket only, and for the calls it placed itself
- answer: not JSON: a page, an asset or the client module
