---
title: "Start a blob upload"
method: POST
path: "/v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/"
tags: ["vcr"]
---

# Start a blob upload

`POST /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/`
- Auth: none required

POST /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/[?mount=<digest>&from=<repo>] Initiate a blob upload. Returns a UUID in the Location header that the client uses for subsequent PATCH (chunk) and PUT (complete) requests.

## Path parameters

- `teamSlug` string, required: Single Docker repository team slug component.
- `projectSlug` string, required: Single Docker repository project slug component.
- `repositoryName` string, required: Single Docker repository name component.

## Query parameters

- `mount` string: Digest of the blob to mount from another repository.
- `from` string: Source repository to mount the blob from.

## Response `202`

- unknown

## Other responses

- `400`: One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `402`: The account is missing a payment so payment method must be updated
- `403`: You do not have permission to access this resource.
- `404`
- `410`

## Changes

- **2026-08-12** `b7b824605094`: 2 warning
  - changed the pattern of the `path` request parameter `teamSlug` from `^(?:[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?|team_[a-zA-Z0-9]+)$` to `^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$`
  - changed the pattern of the `query` request parameter `from` from `^(?:[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?|team_[a-zA-Z0-9]+)\\/[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$` to `^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$`
- **2026-08-11** `0a04f9c0168d`: 2 warning
  - changed the pattern of the `path` request parameter `teamSlug` from `^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$` to `^(?:[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?|team_[a-zA-Z0-9]+)$`
  - changed the pattern of the `query` request parameter `from` from `^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$` to `^(?:[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?|team_[a-zA-Z0-9]+)\\/[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$`
- **2026-08-06** `b8027f4efeda`: 1 info
  - api tag `vcr` added
- **2026-08-04** `0b0420c2223a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/post.md)

---

[API](https://skmtc.dev/vercel/apis/vercel-api.md) - [All operations](https://skmtc.dev/vercel/apis/vercel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/vercel-api/revisions/60686c0e1f6a?raw)
