---
title: "Upload one fixed-size vault archive part"
method: PUT
path: "/v1/vault/import-uploads/{id}/parts/{part}"
tags: ["vault"]
---

# Upload one fixed-size vault archive part

`PUT /v1/vault/import-uploads/{id}/parts/{part}`

## Request

- Base URL: `https://api.hyperresearch.ai`
- URL: `https://api.hyperresearch.ai/v1/vault/import-uploads/{id}/parts/{part}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `hr_session`

Upload one part of a resumable vault archive as the raw request body (at most the part size). Send `X-Content-SHA256` with the part’s hex digest; keep each receipt (`part_number`, `etag`, `sha256`) for the `parts` list at completion. Re-sending an identical part is safe; a different body for an accepted part number is 409.

## Path parameters

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

## Response `200`

Part receipt

- object
  - `part_number` integer, required
  - `etag` string, required
  - `sha256` string, required
  - `size_bytes` integer, required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `403`: Insufficient scope or plan
- `404`: Not found
- `429`: Rate limited or over quota
- `500`: Internal error

---

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