---
title: "Upload Reserved Dataset Content"
method: PUT
path: "/felix/datasets/upload/{dataset_id}/content"
tags: ["felix", "datasets"]
---

# Upload Reserved Dataset Content

`PUT /felix/datasets/upload/{dataset_id}/content`

Streams raw upload bytes to a reservation's S3 key for the caller.

The body is consumed as it arrives rather than read into memory, so a
dataset of any size costs one multipart part of resident memory.

Args:
    dataset_id: Reservation returned by ``POST /felix/datasets/upload/url``.
    http_request: Carries the raw file bytes as the request body.
    auth: Authenticated caller, who must own the reservation.

Returns:
    A receipt naming the reservation and the byte count stored.

Raises:
    HTTPException: 404, 409, 400, or 413 per :data:`_REFUSAL_RESPONSES`.

## Path parameters

- `dataset_id` string, required

## Response `200`

Successful Response

- DatasetUploadContentResponse — Receipt for raw upload bytes the Brain wrote to S3 for the caller.
  - `dataset_id` string, required — Dataset ID the bytes were stored against
  - `version_number` string, required — Version number of that dataset
  - `bytes_received` integer, required — Number of bytes stored

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-24** `1cffaad2a921` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pioneer/apis/brain-api/changes/felix/datasets/upload/:dataset_id/content/put.md)

---

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