[Yandex Cloud documentation](../../../../index.md) > [Yandex Object Storage](../../../index.md) > API reference > [AWS S3 REST](../../index.md) > [REST](../index.md) > Multipart upload > UploadPart

# Object Storage API, Amazon S3-compatible REST: UploadPart

Saves a part of an object.

Users number object parts themselves and transmit the numbers to Object Storage. The number uniquely identifies the part and determines its position in the general sequence. The number is an integer from 1 to 10,000 inclusive.

If multiple parts with the same number are uploaded, Object Storage saves the last one received.

The size of each part, except the last one, should be at least 5 MB.

For more information, see [Multipart upload process](../multipart.md).

For more information on getting started with the API and the general request format, see [How to use the S3 API](../../index.md).

## Request {#request}

```http
PUT /{bucket}/{key}?partNumber=PartNumber&uploadId=UploadId HTTP/2
```

### Path parameters {#path-parameters}

Parameter | Description
----- | -----
`bucket` | Bucket name.
`key` | Object key.


### Query parameters {#request-parameters}

Parameter | Description
----- | -----
`partNumber` | ID that you assigned to the uploaded part.
`uploadId` | ID of the multipart upload returned by Object Storage at [startup](startupload.md).


### Headers {#request-headers}

Use the appropriate [common headers](../common-request-headers.md) in your request.

The `Content-Length` header is required.

The `Content-MD5` header is required if [default object locks](../../../concepts/object-lock.md#default) are configured in the bucket.

## Response {#response}

### Headers {#response-headers}

A response may contain [common headers](../common-response-headers.md) and the headers listed in the table below.

Header | Description
----- | -----
`X-Amz-Storage-Class` | Object [storage class](../../../concepts/storage-class.md).<br/>`COLD` if the object is in a cold storage, `ICE` if the object is in an ice storage, or `INTELLIGENT_TIERING` if the object is in an intelligent storage.<br/><br/>If the object is in a standard storage, there will be no header.


### Response codes {#response-codes}

For a list of possible responses, see [Responses](../response-codes.md).

Additionally, Object Storage may return errors described in the table below.

Error | Description | HTTP code
----- | ----- | -----
`NoSuchUpload` | The specified upload does not exist. This may happen if you specify a wrong upload ID or the upload was completed or deleted. | 404 Not Found
`EntityTooSmall` | The part is too small.<br/><br/>The part to upload must be at least 5 MB. | 400 Bad Request

#### Related articles {#related-articles}

* [Multipart upload](../../../concepts/multipart.md)

* [Uploading object parts into a bucket](../../../operations/objects/multipart-upload.md#upload-parts)

#### Useful links {#see-also}

* [Getting started with the AWS S3 API in Yandex Object Storage](../../s3-api-quickstart.md)

* [Debugging requests using the AWS CLI](../../signing-requests.md#debugging)

* [Example of sending a signed request using curl](../../../api-ref/authentication.md#s3-api-example)

* [Code example for generating a signature](../../../concepts/pre-signed-urls.md#code-examples)