---
title: "Get Job Results"
method: GET
path: "/extract/jobs/{job_id}/results"
tags: ["/extract"]
---

# Get Job Results

`GET /extract/jobs/{job_id}/results`

## Request

- Base URL: `https://api.contextual.ai/v1`
- URL: `https://api.contextual.ai/v1/extract/jobs/{job_id}/results`
- Auth: HTTP bearer

Get the results of a completed extraction job.

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- JobResultsResponse: Response model for job results. The results field contains extracted data conforming to the provided JSON Schema. When per_key_attribution is enabled in ExtractConfig, primitive fields in results will be wrapped with AttributionInfo structures containing the extracted_value along with reasoning, confidence, and page location metadata.
  - `job_id` string, required: Unique ID of the extraction job
  - `status` 'pending' | 'processing' | 'retrying' | 'completed' | 'failed' | 'cancelled', required
  - `results` object, required: Extracted results conforming to the provided JSON Schema. When per_key_attribution is enabled, primitive values are wrapped with AttributionInfo containing extracted_value, reasoning, confidence, and location fields.
  - `metadata` object, required: Metadata about the extraction process. May include has_attributions boolean flag indicating if attribution data is present in results.
  - `config` ExtractConfig: Configuration for structured extraction. Most settings have sensible defaults, but you can customize them for your specific use case.
    - `model` 'gemini-2.5-flash' | 'gemini-2.5-pro' | 'gemini-3-pro-preview' | 'gemini-3-flash-preview': Base model for extraction. 'gemini-2.5-flash' is faster and cheaper, while 'gemini-2.5-pro' is more accurate and expensive.
    - `per_key_attribution` boolean: Set to include attributions for each extracted field including reasoning, confidence scores, and page numbers. This option increases processing time and cost.
    - `temperature` number, nullable: Sampling temperature (0.0-2.0). Lower values make output more deterministic and consistent, higher values vary more. Leave as None for model defaults.
    - `enable_thinking` boolean: Enable reasoning which can improve accuracy but increases processing time and cost.
    - `additional_instructions` string, nullable: Additional instructions to the model. This is a string that will be appended to the prompt. It is useful for providing additional context or instructions to the model.
    - `enable_agentic_array_extraction` boolean: If True, will use agentic array extraction to extract the array of objects when possible. Requires isolate_arrays=True in splitter_config. One can also enable agentic array extraction for specific arrays by setting agenticArrayExtractionMaxItemsPerTurn > 0 for the array in the JSON schema.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-16** `4abdda722de9`: 1 info
  - endpoint added
- **2026-01-13** `ca7f807eec8b`: 1 breaking
  - api path removed without deprecation
- **2025-10-28** `c8152db45500`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/contextualai/apis/endpoints/changes/extract/jobs/:job_id/results/get.md)

---

[API](https://skmtc.dev/contextualai/apis/endpoints.md) - [All operations](https://skmtc.dev/contextualai/apis/endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/contextualai/apis/endpoints/revisions/4abdda722de9?raw)
