---
title: "Read bulk job progress and aggregate counts"
method: GET
path: "/bulk-jobs/{bulkId}"
tags: ["Bulk Jobs"]
---

# Read bulk job progress and aggregate counts

`GET /bulk-jobs/{bulkId}`

## Request

- Base URL: `https://api.flashdata.dev/v2`
- URL: `https://api.flashdata.dev/v2/bulk-jobs/{bulkId}`
- Auth: one of:
  - API key in cookie `__Host-fd_session`
  - API key in header `X-API-Key`

## Path parameters

- `bulkId` string, required

## Response `200`

Bulk job state

- BulkJobResponse
  - `job` BulkJob, required
    - `id` string, required
    - `source` 'youtube_metadata' | 'youtube_transcript' | 'youtube_captions' | 'youtube_trainability' | 'youtube_download', required
    - `status` 'awaiting_upload' | 'running' | 'paused' | 'finalizing' | 'completed' | 'failed' | 'cancelled', required
    - `input` object, required
      - `bytes` integer, required
      - `complete` boolean, required
      - `scannedBytes` integer, required
      - `scannedLines` integer, required
    - `counts` object, required
      - `accepted` integer, required
      - `completed` integer, required
      - `failed` integer, required
      - `invalid` integer, required
      - `results` integer, required
    - `pauseReason` string, nullable, required
    - `delivery` object, required
      - `customerStorage` boolean, required
      - `storageType` 's3' | 's3_compatible' | 'oss' | 'gcs' | 'azure' | 'cos' | 'bos' | 'tos' | 'null', nullable, required
      - `uploadedParts` integer, required
      - `retryCount` integer, required
    - `error` object, nullable, required
      - `code` string, required
      - `detail` string, nullable, required
    - `createdAt` string, date-time, required
    - `startedAt` string, date-time, nullable, required
    - `completedAt` string, date-time, nullable, required
    - `expiresAt` string, date-time, nullable, required
    - `links` JobLink[], required
      - `rel` 'self' | 'results' | 'content' | 'download', required
      - `href` string, uri, required
      - `method` 'GET', required
      - `expires_at` string, date-time
      - `filename` string
      - `content_type` string
      - `size_bytes` integer

## Other responses

- `401`: Authentication required or invalid
- `404`: Resource not found or not owned by the caller

---

[API](https://skmtc.dev/flashdata/apis/flashdata-customer-api.md) · [All operations](https://skmtc.dev/flashdata/apis/flashdata-customer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flashdata/apis/flashdata-customer-api/revisions/109179fe9313?raw)
