---
title: "Retrieve the current state of an extraction job"
method: GET
path: "/extract/{job_id}"
tags: ["Extract"]
---

# Retrieve the current state of an extraction job

`GET /extract/{job_id}`

## Request

- Base URL: `https://api.cloudglue.dev/v1`
- URL: `https://api.cloudglue.dev/v1/extract/{job_id}`
- Auth: HTTP bearer

Retrieve the current state of an extraction job. Results are paginated with a default limit of 50 segment entities per request (maximum 100). Use limit and offset parameters to paginate through all segment entities.

## Path parameters

- `job_id` string, required

## Query parameters

- `limit` integer
- `offset` integer
- `include_thumbnails` boolean
- `include_chapters` boolean
- `include_shots` boolean

## Response `200`

Successful response with job details

- Extract
  - `job_id` string, required
  - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'not_applicable', required
  - `url` string: The URL of the processed video
  - `created_at` integer: Unix timestamp in milliseconds when the job was created
  - `extract_config` object: Configuration for automatic entity extraction from videos
    - `prompt` string: A natural language prompt describing the data to extract. Required if no schema is provided.
    - `schema` object: A more rigid structure if you already know the JSON layout you want. Required if no prompt is provided.
    - `enable_video_level_entities` boolean: Whether to extract entities at the video level. Mutually exclusive with enable_segment_level_entities - only one can be true.
    - `enable_segment_level_entities` boolean: Whether to extract entities at the segment level. Mutually exclusive with enable_video_level_entities - only one can be true.
    - `enable_transcript_mode` boolean: When enabled, extract entities from transcript only (similar to YouTube path). Useful for speech-heavy content.
    - `enable_metadata_mode` boolean: When enabled, extract entities from the file's metadata document (filename, file details, user metadata, and connector source metadata) instead of the media content. File-level entities only; flat 1 credit per file; works on metadata-only files without ingesting their media. Mutually exclusive with enable_transcript_mode.
  - `segmentation_id` string: The ID of the segmentation job used for this extraction
  - `data` object: The structured data extracted from the video based on prompt or schema. Only present when status is 'completed'.
    - `entities` object: Entities extracted from the video level
    - `segment_entities` object[]: Array of video entities extracted from individual time segments
      - `start_time` number: Start time of the segment in seconds
      - `end_time` number: End time of the segment in seconds
      - `entities` object: Entities extracted from the segment
      - `thumbnail_url` string, uri: URL of the segment thumbnail, when available.
    - `thumbnail_url` string, uri: URL of the file-level thumbnail for the video. Only present when include_thumbnails=true.
  - `total` integer: Total number of segment entities available. Only present when status is 'completed'.
  - `limit` integer: Maximum number of segment entities returned per request. Only present when status is 'completed'.
  - `offset` integer: Number of segment entities skipped. Only present when status is 'completed'.
  - `error` string: Error message if status is 'failed'
  - `chapters` object[]: Array of narrative chapters (only present when include_chapters=true and segmentation strategy is 'narrative')
    - `index` integer, required
    - `start_time` number, required
    - `end_time` number, required
    - `description` string, required
  - `shots` object[]: Array of shot boundaries (only present when include_shots=true and segmentation strategy is 'shot-detector')
    - `index` integer, required
    - `start_time` number, required
    - `end_time` number, required
  - `total_chapters` integer: Total number of chapters (only present when include_chapters=true and segmentation strategy is 'narrative')
  - `total_shots` integer: Total number of shots (only present when include_shots=true and segmentation strategy is 'shot-detector')

## Other responses

- `404`: Job not found
- `500`: An unexpected error occurred on the server

## Changes

- **2026-10-30** `23d3f240819f`: 2 info
  - added the optional property `code` to the response with the `404` status
  - added the optional property `code` to the response with the `500` status
- **2026-07-24** `915ee485b763`: 1 info
  - added the optional property `extract_config/enable_metadata_mode` to the response with the `200` status
- **2026-03-11** `1d5d6115c0d0`: 3 breaking, 9 info
  - for the `query` request parameter `include_thumbnails`, default value `false` was removed
  - for the `query` request parameter `limit`, default value `50` was removed
  - for the `query` request parameter `offset`, default value `0` was removed
  - added the new optional `query` request parameter `include_chapters`
  - …8 more
- **2026-03-09** `3700d31a3ff8`: 3 info
  - added the new optional `query` request parameter `include_thumbnails`
  - added the optional property `data/segment_entities/items/thumbnail_url` to the response with the `200` status
  - added the optional property `data/thumbnail_url` to the response with the `200` status
- **2026-01-27** `1a4ef499dfd3`: 1 info
  - added the optional property `extract_config/enable_transcript_mode` to the response with the `200` status

[Operation history](https://skmtc.dev/cloudglue/apis/cloudglue-api/changes/extract/:job_id/get.md)

---

[API](https://skmtc.dev/cloudglue/apis/cloudglue-api.md) - [All operations](https://skmtc.dev/cloudglue/apis/cloudglue-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudglue/apis/cloudglue-api/revisions/23d3f240819f?raw)
