---
title: "Resume retained work or cancel a hosted draft"
method: POST
path: "/drafts/runs/{runId}/control"
tags: ["Platform"]
---

# Resume retained work or cancel a hosted draft

`POST /drafts/runs/{runId}/control`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/drafts/runs/{runId}/control`
- Auth: API key in header `Authorization`

Resume retained work or cancel a hosted draft.

## Path parameters

- `runId` string, uuid, required

## Request body

- object
  - `action` 'resume' | 'cancel', required
  - `idempotencyKey` string, required

## Response `200`

Successful response

- object
  - `runId` string, uuid, required
  - `workflowId` string, uuid, required
  - `projectId` string, uuid, nullable, required
  - `name` string, required
  - `brief` string, required
  - `format` 'video' | 'carousel', required
  - `language` 'en' | 'fr', required
  - `status` 'pending' | 'running' | 'completed' | 'failed' | 'cancelled', required
  - `stepStatus` 'pending' | 'running' | 'completed' | 'failed' | 'skipped', required
  - `triggerRunId` string, nullable, required
  - `cancellationPending` boolean, required
  - `createdAt` string, date-time, required
  - `completedAt` string, date-time, nullable, required
  - `progress` object, nullable, required
    - `version` 1, required
    - `revision` integer, required
    - `projectId` string, uuid, required
    - `phase` 'planning' | 'tools' | 'waiting' | 'review' | 'complete', required
    - `modelCalls` integer, required
    - `maxModelCalls` integer, required
    - `repairRounds` integer, required
    - `maxRepairRounds` integer, required
    - `seenVisualRevision` integer, nullable, required
    - `completed` object, nullable, required
      - `draftId` string, required
      - `exportId` string, uuid, required
      - `projectRevision` integer, required
    - `calls` object[], required
      - `id` string, required
      - `name` string, required
      - `attempts` integer, required
      - `projectRevision` integer, nullable, required
      - `status` 'pending' | 'failed' | 'completed', required
      - `error` string, nullable, required
    - `totalCalls` integer, required
  - `error` string, nullable, required
  - `costs` object, required
    - `currency` 'USD', required
    - `maximumAgentUsd` number, required
    - `recordedModelUsd` number, nullable, required
    - `unknownModelEvents` integer, required
    - `excludesChildJobs` true, required
    - `usage` object, nullable, required
      - `scope` 'attributed_jobs', required
      - `accountedUsd` number, required
      - `reservedUsd` number, required
      - `providerReportedUsd` number, required
      - `allocatedUpperBoundUsd` number, required
      - `unresolvedJobs` integer, required
      - `activeJobs` integer, required
      - `jobCount` integer, required

## Other responses

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

## Changes

- **2026-10-19** `35608b12471d`: 1 info
  - added the required property `costs/usage` to the response with the `200` status

[Operation history](https://skmtc.dev/blitzreels/apis/blitzreels-api/changes/drafts/runs/:runId/control/post.md)

---

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