---
title: "Upload one declared archive segment"
method: PUT
path: "/v1/research-workspaces/{id}/transfers/{transfer}/segments/{segment}"
tags: ["Research workspaces"]
---

# Upload one declared archive segment

`PUT /v1/research-workspaces/{id}/transfers/{transfer}/segments/{segment}`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/v1/research-workspaces/{id}/transfers/{transfer}/segments/{segment}`
- Auth: HTTP bearer

Send the exact bytes identified by this zero-based segment index in the manifest. Content-Length is required and must match the declared segment. Content-Type must be exactly application/octet-stream. Chunked transfer encoding is not accepted. Segments are checked against their declared size and SHA256. Retry with the same transfer and segment after an uncertain reply.

## Path parameters

- `id` string, required
- `transfer` string, uuid, required
- `segment` integer, required

## Headers

- `Content-Length` integer, required

## Request body `application/octet-stream`

- string, binary: Exact declared canonical archive segment, at most 64 MiB.

## Response `204`

Segment accepted and verified

## Other responses

- `default`: 400 for malformed input. 404 workspace_transfer_not_found for a missing or inaccessible transfer. 409 workspace_storage_inactive when the policy is disabled, or workspace_transfer_conflict when state, revision or retry identity changed. 413 workspace_storage_capacity when capacity is exhausted. 503 workspace_transfer_unavailable or workspace_storage_unavailable for transient failures. Authentication and rate limits apply.

---

[API](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api.md) - [All operations](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nodus-compute/apis/nodus-infrastructure-execution-api/revisions/a59210899d95?raw)
