---
url: /orchestration/reference/operations/GetConsumerBlobUploadUrl.md
description: 'GET /v2/consumer/blobs/upload — Get a presigned URL for browser uploads'
---

> Documentation index: https://developer.civitai.com/llms.txt — every page on this site has a markdown version at its URL + `.md`.

# Get a presigned URL for browser uploads

`GET https://orchestration.civitai.com/v2/consumer/blobs/upload`

Operation `GetConsumerBlobUploadUrl` · Blobs · Civitai Orchestration API, generated from the published OpenAPI spec ([v2-consumers.json](https://developer.civitai.com/openapi/v2-consumers.json)); the interactive HTML page is this URL without `.md`.

Get a presigned URL for browser uploads.
The returned URL points to POST /v2/consumer/blobs with a signature for authentication.

## Authentication

Send `Authorization: Bearer <token>` (the spec's `ApiKey` scheme); this operation documents `401 Unauthorized` for a missing or invalid token. See [Authentication](https://developer.civitai.com/orchestration/guide/authentication.md).

## Parameters

None.

## Responses

### 200 OK

Content type: `application/json`.

Schema `ConsumerBlobPresignResponse`.

| Field | Type | Required | Description |
|---|---|---|---|
| `uploadUrl` | string (uri) | yes |  |
| `expiresAt` | string (date-time) | yes |  |

### 401 Unauthorized

Content type: `application/json`.

Schema `ProblemDetails`.

| Field | Type | Required | Description |
|---|---|---|---|
| `type` | string, nullable | no |  |
| `title` | string, nullable | no |  |
| `status` | integer (int32), nullable | no |  |
| `detail` | string, nullable | no |  |
| `instance` | string, nullable | no |  |
