---
title: "Create image blob/layer upload"
method: POST
path: "/v2/{name}/blobs/uploads"
---

# Create image blob/layer upload

`POST /v2/{name}/blobs/uploads`

## Request

- The document declares no server URL.
- Auth: none declared
- TypeScript: <https://skmtc.dev/project-zot/apis/open-container-initiative-distribution-specification/docs/v2/:name/blobs/uploads/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new image blob/layer upload. With no query parameters, starts an upload session
and returns 202.
A `digest` query parameter requests a monolithic upload and returns 201 on success.
A `mount` query parameter requests a cross-repository blob mount and returns 201 or 202.
A `digest-algorithm` query parameter hints the algorithm for a multi-request upload.

## Path parameters

- `name` string, required

## Query parameters

- `digest` string
- `digest-algorithm` string
- `mount` string

## Response `201`

created

## Other responses

- `202`: accepted
- `400`: bad request (invalid digest or upload)
- `401`: unauthorized
- `404`: not found
- `415`: unsupported media type (monolithic upload requires application/octet-stream)
- `500`: internal server error
- `503`: storage temporarily unavailable

## Changes

- **2026-10-27** `22583ec233c1`: 1 info
  - added the new optional `query` request parameter `digest-algorithm`
- **2026-10-05** `fba44d54755f`: 1 info
  - added the non-success response with the status `503`
- **2026-06-26** `62d5df709bf8`: 5 info
  - added the new optional `query` request parameter `digest`
  - added the new optional `query` request parameter `mount`
  - added the non-success response with the status `400`
  - added the non-success response with the status `415`
  - …1 more
- **2023-09-01** `97a131f72962`: 1 info
  - added the non-success response with the status `401`
- **2021-10-21** `81b68c5e4fde`: 1 breaking, 2 warning, 3 info
  - removed the success response with the status `201`
  - deleted the `query` request parameter `digest`
  - deleted the `query` request parameter `mount`
  - removed the non-success response with the status `400`
  - …2 more

[Operation history](https://skmtc.dev/project-zot/apis/open-container-initiative-distribution-specification/changes/v2/:name/blobs/uploads/post.md)

---

[API](https://skmtc.dev/project-zot/apis/open-container-initiative-distribution-specification.md) - [All operations](https://skmtc.dev/project-zot/apis/open-container-initiative-distribution-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/project-zot/apis/open-container-initiative-distribution-specification/revisions/7937343ee83f?raw)
