---
title: "Starts a multipart upload of a blob and returns URLs for the next multipart upload operations. The URLs contain the upload token."
method: POST
path: "/layers/{layerId}/data/{dataHandle}/multiparts"
tags: ["blob"]
---

# Starts a multipart upload of a blob and returns URLs for the next multipart upload operations. The URLs contain the upload token.

`POST /layers/{layerId}/data/{dataHandle}/multiparts`

Publishes large data blobs where the data payload needs to be split into multiple parts. The multipart upload start is to be followed by the individual parts upload and completed with a call to complete the upload. The limit of the blob uploaded this way is 50GB.

## Path parameters

- `layerId` string, required
- `dataHandle` string, required

## Query parameters

- `billingTag` string

## Request body

- MultipartUploadMetadata
  - `contentEncoding` 'gzip' | 'identity' — Specifies what content encodings have been applied to the blob and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. If the 'contentEncoding' field is specified in the catalog layer configuration this value must be equal to it.
  - `contentType` string, required — A standard MIME type describing the format of the blob data. For more information, see [RFC 2616, section 14.17: Content-Type](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17). The value of this field must be equal to the one specified in the 'contentType' field in the catalog layer configuration.

## Response `200`

OK - the new multipart upload was successfully started.

- BlobInitResponse — Describes a set of links for the multipart upload operations.
  - `links` BlobInitResponseLinks — Describes a set of link for checking the uploading parts, getting status, finalizing, etc. of the multipart upload.
    - `complete` BlobInitResponseCompleteLink — Describes a link for the multipart upload complete operation.
      - `href` string — The URL to use to complete the multipart upload. This link must be used as provided. Do not construct the URL for this operation by parsing the multipart token and concatenating the strings together.
      - `method` string — The HTTP method which should be used to execute this operation.
    - `delete` BlobInitResponseCancelLink — Describes a link for multipart upload cancel operation.
      - `href` string — The URL to use to cancel the multipart upload. This link must be used as provided. Do not construct the URL for this operation by parsing the multipart token and concatenating the strings together.
      - `method` string — The HTTP method which should be used to execute this operation.
    - `status` BlobInitResponseStatusLink — Describes a link for multipart upload status operation.
      - `href` string — The URL to use to retrieve the multipart upload status. This link must be used as provided. Do not construct the URL for this operation by parsing the multipart token and concatenating the strings together.
      - `method` string — HTTP method which should be used to execute this operation.
    - `uploadPart` BlobInitResponseUploadPartLink — Describes a link for the upload part of multipart upload operation.
      - `href` string — The URL to use to upload part of multipart upload. This link must be used as provided. Do not construct the URL for this operation by parsing the multipart token and concatenating the strings together.
      - `method` string — The HTTP method which should be used to execute this operation.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found - the provided layerId doesn't exist.
- `409` — Conflict - indicates blob with this dataHandle already exists

---

[API](https://skmtc.dev/here/apis/query-api-v1.md) · [All operations](https://skmtc.dev/here/apis/query-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/here/query-api-v1/revisions/30e5d2645407/schema)
