---
title: "Save a file to the brain (its orchestrator)"
method: PUT
path: "/v1/brain/{path}"
tags: ["Brain"]
---

# Save a file to the brain (its orchestrator)

`PUT /v1/brain/{path}`

## Request

- Base URL: `https://api.shardflux.dev`
- URL: `https://api.shardflux.dev/v1/brain/{path}`
- Auth: HTTP bearer

The person’s orchestrator computer saves its own notes and files (its ~/brain). The body is the file; send `Content-Length` and `x-content-sha256`. Any name is accepted and normalised: the answer’s `file.path` is where it is stored. No size limit. Every other caller is refused (403 brain_writer_orchestrator_only).

## Path parameters

- `path` string, required

## Response `200`

Default Response

- object
  - `file` BrainFile, required
    - `path` string, required: Relative to the brain’s root, as ~/brain shows it on the orchestrator’s computer: reports/2026-10-17/training-progress-ab12cd34/report.md.
    - `sha256` string, required: This version’s bytes; GET /v1/brain/{path}?sha256=<this> reads exactly this version, also after the path changes.
    - `size` integer, required
    - `content_type` string, required
    - `conversation_id` string, nullable, required: The orchestrator conversation that wrote or published it.
    - `created_at` string, date-time, required: RFC 3339 UTC timestamp with Z.
    - `current` boolean, required: This is the path’s current version.

## Other responses

- `201`: Default Response
- `4XX`: Default Response
- `5XX`: Default Response

---

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