---
title: "Send one part of a large file"
method: PUT
path: "/api/v1/documents/{id}/content/parts/{part}"
tags: ["Files"]
---

# Send one part of a large file

`PUT /api/v1/documents/{id}/content/parts/{part}`

## Request

- Base URL: `http://localhost:5180`
- URL: `http://localhost:5180/api/v1/documents/{id}/content/parts/{part}`
- Auth: API key in cookie `better-auth.session_token`

The raw bytes of one part, in order: part n is taken only once parts 1 through n-1 have landed. Every part but the last is exactly the partBytes the start call named. The account hashes each part and folds it into a running chain; complete refuses a chain that does not end where the declared sha256 said it would.

## Path parameters

- `id` string, required
- `part` integer, required

## Response `200`

The part is held. Keep the etag for complete.

- object
  - `ok` unknown, required
  - `data` object, required
    - `partNumber` integer, required
    - `etag` string, required: Hand this back on complete, exactly as given.
    - `received` integer, required: How many parts the account now holds.
  - `meta` object, required
    - `requestId` string, required: Echoed in the x-request-id header. Quote it in a bug report.

## Other responses

- `400`: The part is the wrong size, out of order, past the count the declared size splits into, or declares no length.
- `401`: No session. Sign in first.
- `404`: No document with that id belongs to you.
- `409`: No multipart upload is open for this document, or this part raced another copy of itself.
- `429`: Over the file budget.

---

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