---
url: /orchestration/reference/operations/InvokeBlobArchiveStepTemplate.md
description: 'POST /v2/consumer/recipes/blobArchive — Bundles blobs into a single zip or tar that callers download from a signed streaming URL'
---

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

# Bundles blobs into a single zip or tar that callers download from a signed streaming URL

`POST https://orchestration.civitai.com/v2/consumer/recipes/blobArchive`

Operation `InvokeBlobArchiveStepTemplate` · Recipes · 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`.

Bundles blobs into a single zip or tar that callers download from a signed streaming URL.
/// Runs in-process in the orchestrator; no worker job is dispatched.

## 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

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `experimental` | query | boolean | no |  |
| `allowMatureContent` | query | boolean | no |  |
| `whatif` | query | boolean | no |  |
| `ephemeral` | query | boolean | no |  |
| `tier` | query | `WorkflowTier` (one of `paid`, `free`) | no | How a workflow is paid for. |

## Request body

Optional. Content types: `application/json`, `text/json`, `application/*+json`.

Schema `BlobArchiveInput`.

| Field | Type | Required | Description |
|---|---|---|---|
| `entries` | array of `BlobArchiveEntry` | yes | The blobs to include in the archive. Must contain at least 1 and at most 1000 entries. |
| `archiveName` | string, nullable | no | Optional filename for the archive itself (used in the Content-Disposition header). Defaults to "archive.zip" or "archive.tar" based on `format`. |
| `format` | `ArchiveFormat` (one of `zip`, `tar`) | no |  |

### Types used by the request body

#### BlobArchiveEntry

Schema `BlobArchiveEntry`.

| Field | Type | Required | Description |
|---|---|---|---|
| `blobId` | string | yes | (minLength `1`) |
| `fileName` | string, nullable | no | Optional filename to use inside the archive. When omitted, the blob ID is used. Path components and control characters are stripped. |

## Responses

### 200 OK

Content type: `application/json`.

Schema `BlobArchiveOutput`.

| Field | Type | Required | Description |
|---|---|---|---|
| `url` | string (uri) | yes | The signed URL that streams the archive when requested. |
| `entryCount` | integer (int32) | yes |  |
| `format` | `ArchiveFormat` (one of `zip`, `tar`) | yes |  |
| `expiresAt` | string (date-time) | yes | The UTC time at which this URL expires. |

### 400 Bad Request

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 |  |

### 401 Unauthorized

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.

### 403 Forbidden

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.
