---
title: "Resume eligible research using its original remaining budget"
method: POST
path: "/workspace/knowledge/research/{jobId}/resume"
tags: ["Knowledge"]
---

# Resume eligible research using its original remaining budget

`POST /workspace/knowledge/research/{jobId}/resume`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/workspace/knowledge/research/{jobId}/resume`
- Auth: API key in header `Authorization`

Retains accepted prices and inputs. Unknown provider outcomes are not dispatched again. Inspect canResume and diagnostics before requesting recovery.

## Path parameters

- `jobId` string, uuid, required

## Response `200`

Successful response

- object
  - `job` object, required
    - `id` string, uuid, required
    - `status` 'queued' | 'running' | 'partial' | 'complete' | 'failed' | 'cancelled', required
    - `request` object, required
      - `prompt` string, required
      - `productUrl` string, uri, nullable, required
      - `seriesId` string, uuid, nullable, required
      - `language` string, required
      - `maxSources` integer, required
      - `maxCredits` number, required
      - `social` object
        - `platform` 'tiktok' | 'instagram', required
        - `targetUrl` string, uri, nullable, required
        - `page` integer, required
        - `cursor` integer, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `cancelRequested` boolean, required
    - `diagnostic` object, nullable, required
      - `code` 'budget_exhausted' | 'source_unavailable' | 'source_blocked' | 'provider_rejected' | 'provider_outcome_unknown' | 'storage_unavailable' | 'worker_interrupted' | 'billing_unavailable' | 'invalid_response' | 'knowledge_conflict' | 'permission_revoked' | 'input_too_large' | 'unsupported_operation' | 'rate_limited', required
      - `message` string, required
      - `retryable` boolean, required
    - `document` object, nullable, required
      - `id` string, uuid, required
      - `revision` integer, required
    - `captures` object[], required
      - `id` string, uuid, required
      - `sourceUrl` string, uri, required
      - `finalUrl` string, uri, required
      - `title` string, required
      - `capturedAt` string, date-time, required
      - `sha256` string, required
      - `byteLength` integer, required
      - `contentType` string, required
      - `social` object
        - `provider` 'scrapecreators', required
        - `platform` 'tiktok' | 'instagram', required
        - `kind` 'post' | 'profile', required
        - `observedAt` string, date-time, required
        - `metricsSource` 'public_research', required
        - `format` 'video' | 'photo' | 'carousel' | 'profile' | 'unknown', required
        - `publishedAt` string, date-time, nullable, required
        - `durationSeconds` number, nullable, required
        - `counters` object, required
          - `views` integer, nullable, required
          - `likes` integer, nullable, required
          - `comments` integer, nullable, required
          - `shares` integer, nullable, required
          - `followers` integer, nullable, required
          - `posts` integer, nullable, required
    - `socialDiscovery` object
      - `provider` 'scrapecreators', required
      - `platform` 'tiktok' | 'instagram', required
      - `observedAt` string, date-time, required
      - `coverage` 'public_search' | 'google_indexed_reels' | 'explicit_source', required
      - `page` integer, required
      - `returned` integer, required
      - `omitted` integer, required
      - `truncated` boolean, required
      - `next` object, nullable, required
        - `page` integer, required
        - `cursor` integer, nullable, required
    - `credits` object, required
      - `limit` number, required
      - `completed` number, required
      - `reserved` number, required
      - `uncertain` number, required
      - `remaining` number, required
    - `steps` object[], required
      - `id` string, required
      - `kind` 'discovery' | 'capture' | 'synthesis', required
      - `status` 'pending' | 'reserved' | 'dispatched' | 'complete' | 'failed' | 'unknown' | 'skipped', required
      - `sourceUrl` string, uri, nullable, required
      - `attempts` integer, required
      - `diagnostic` object, nullable, required
        - `code` 'budget_exhausted' | 'source_unavailable' | 'source_blocked' | 'provider_rejected' | 'provider_outcome_unknown' | 'storage_unavailable' | 'worker_interrupted' | 'billing_unavailable' | 'invalid_response' | 'knowledge_conflict' | 'permission_revoked' | 'input_too_large' | 'unsupported_operation' | 'rate_limited', required
        - `message` string, required
        - `retryable` boolean, required
    - `canResume` boolean, required
  - `delivery` object, required
    - `dispatched` 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)
