List Jobs
curl --request GET \
--url https://api.contextual.ai/v1/extract/jobs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.contextual.ai/v1/extract/jobs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.contextual.ai/v1/extract/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.contextual.ai/v1/extract/jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.contextual.ai/v1/extract/jobs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.contextual.ai/v1/extract/jobs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.contextual.ai/v1/extract/jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"jobs": [
{
"job_id": "<string>",
"created_at": "<string>",
"progress": {
"completion_percentage": 50,
"current_step": "<string>",
"fields_processed": 0,
"total_fields": 0
},
"current_activity": "<string>",
"schema_id": "<string>",
"document_id": "<string>",
"config": {
"model": "gemini-2.5-flash",
"per_key_attribution": false,
"temperature": 0,
"enable_thinking": true,
"additional_instructions": "<string>",
"enable_agentic_array_extraction": false
}
}
],
"total_count": 123,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}/extract
List Jobs
List extraction jobs.
GET
/
extract
/
jobs
List Jobs
curl --request GET \
--url https://api.contextual.ai/v1/extract/jobs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.contextual.ai/v1/extract/jobs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.contextual.ai/v1/extract/jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.contextual.ai/v1/extract/jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.contextual.ai/v1/extract/jobs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.contextual.ai/v1/extract/jobs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.contextual.ai/v1/extract/jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"jobs": [
{
"job_id": "<string>",
"created_at": "<string>",
"progress": {
"completion_percentage": 50,
"current_step": "<string>",
"fields_processed": 0,
"total_fields": 0
},
"current_activity": "<string>",
"schema_id": "<string>",
"document_id": "<string>",
"config": {
"model": "gemini-2.5-flash",
"per_key_attribution": false,
"temperature": 0,
"enable_thinking": true,
"additional_instructions": "<string>",
"enable_agentic_array_extraction": false
}
}
],
"total_count": 123,
"next_cursor": "<string>",
"prev_cursor": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Response
Successful Response
Response model for job listing.
List of jobs
Show child attributes
Show child attributes
Total number of jobs
Next cursor to continue pagination. Omitted if there are no more jobs to retrieve.
Previous cursor to go back in pagination. Omitted if this is the first page.
Was this page helpful?
⌘I