---
title: "Save or copy a recipe using an accepted quote and Idempotency-Key; retry the same request to recover delivery"
method: POST
path: "/workspace/recipes/jobs"
tags: ["Exports and Jobs"]
---

# Save or copy a recipe using an accepted quote and Idempotency-Key; retry the same request to recover delivery

`POST /workspace/recipes/jobs`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/workspace/recipes/jobs`
- Auth: API key in header `Authorization`

Save or copy a recipe using an accepted quote and Idempotency-Key; retry the same request to recover delivery.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `request` union, required
    - object
      - `kind` 'capture', required
      - `value` object, required
        - `projectId` string, uuid, required
        - `expectedProjectRevision` integer, required
        - `expectedVersion` integer, required
        - `makeReusable` true
    - object
      - `kind` 'copy', required
      - `value` object, required
        - `templateProjectId` string, uuid, required
        - `version` integer, required
        - `projectId` string, uuid, required
        - `expectedProjectRevision` integer, required
        - `sourceProjects` object[]
          - `sourceProjectId` string, uuid, required
          - `projectId` string, uuid, required
          - `expectedProjectRevision` integer, required
        - `nestedProjects` object[]
          - `templateRevisionId` string, uuid, required
          - `projectId` string, uuid, required
          - `expectedProjectRevision` integer, required
          - `sourceProjects` object[]
            - `sourceProjectId` string, uuid, required
            - `projectId` string, uuid, required
            - `expectedProjectRevision` integer, required
  - `limits` object, required
    - `transferBytes` integer, required
    - `storageBytes` integer, required
    - `operations` integer, required
    - `r2Requests` integer, required
  - `quoteId` string, required
  - `maxCredits` number, required

## Response `200`

Successful response

- object
  - `id` string, uuid, required
  - `projectId` string, uuid, required
  - `status` 'queued' | 'processing' | 'complete' | 'failed' | 'canceled', required
  - `attempts` integer, required
  - `output` union, required
    - object
      - `kind` 'capture', required
      - `projectId` string, uuid, required
      - `projectRevision` integer, required
      - `templateRevisionId` string, uuid, required
      - `version` integer, required
    - object
      - `kind` 'copy', required
      - `projectId` string, uuid, required
      - `projectRevision` integer, required
      - `templateRevisionId` string, uuid, required
      - `timelineItemCount` integer, required
      - `sourceProjectIds` string[], required
      - `nestedProjects` object[], required
        - `originalRevisionId` string, uuid, required
        - `projectId` string, uuid, required
        - `revisionId` string, uuid, required
        - `version` integer, required
        - `projectRevision` integer, required
        - `sourceProjectIds` string[], required
  - `diagnostic` object, nullable, required
    - `code` string, required
    - `message` string, required
  - `billing` object, nullable, required
    - `quote` object, required
      - `id` string, required
      - `organizationId` string, uuid, required
      - `userId` string, uuid, required
      - `requestHash` string, required
      - `limits` object, required
        - `transferBytes` integer, required
        - `storageBytes` integer, required
        - `operations` integer, required
        - `r2Requests` integer, required
      - `rates` object, required
        - `version` string, required
        - `evidence` string, required
        - `validUntil` string, date-time, required
        - `workerSecondUsd` number, required
        - `workerInvocationUsd` number, required
        - `classARequestUsd` number, required
        - `classBRequestUsd` number, required
        - `transferGbUsd` number, required
        - `storageGbMonthUsd` number, required
        - `storageDays` integer, required
        - `allocatedOverheadUsd` number, required
        - `creditsPerUsd` number, required
      - `currency` 'USD', required
      - `basis` 'allocated_estimate', required
      - `execution` object, required
        - `machine` 'small-2x', required
        - `workerStarts` integer, required
        - `workerSeconds` integer, required
      - `estimate` object, required
        - `compute` number, required
        - `requests` number, required
        - `transfer` number, required
        - `storage` number, required
        - `overhead` number, required
        - `total` number, required
      - `reserveCredits` number, required
    - `maxCredits` number, required
    - `hold` 'pending' | 'reserved' | 'released' | 'settled', required
    - `exposed` boolean, required
    - `releasedCredits` number, required
  - `transfers` object, nullable, required
    - `charged` object, required
      - `transferBytes` integer, required
      - `storageBytes` integer, required
      - `operations` integer, required
    - `confirmed` object, required
      - `transferBytes` integer, required
      - `storageBytes` integer, required
      - `operations` integer, required
    - `pendingOperations` integer, required
  - `storage` object, nullable, required
    - `objects` integer, required
    - `allocatedBytes` integer, required
    - `retainedBytes` integer, required
    - `unconfirmedBytes` integer, required
    - `releasedBytes` integer, required
  - `delivery` object, required
    - `generation` integer, required
    - `dispatchAttempts` integer, required
    - `acknowledged` boolean, required
    - `blocked` boolean, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `mutationReceipt` object, required
    - `id` string, uuid, required
    - `key` string, required
    - `operation` 'templates.jobs.create', required
    - `status` 'completed', required
    - `replayed` boolean, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

---

[API](https://skmtc.dev/blitzreels/apis/blitzreels-api.md) · [All operations](https://skmtc.dev/blitzreels/apis/blitzreels-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blitzreels/apis/blitzreels-api/revisions/35608b12471d?raw)
