Overview
The Get Parse Job Status endpoint allows you to check the current status of parsing jobs and retrieve the complete results when processing is complete. This endpoint is specifically designed for the parsing API and returns comprehensive document analysis including text extraction, image recognition, table parsing, and OCR data.
Parsing jobs are processed asynchronously. Use this endpoint to poll for completion and retrieve results when the job status is “Succeeded”.
Response
Unique identifier for the parsing job
Current job status: “Starting”, “Processing”, “Succeeded”, or “Failed”
Timestamp when the job was created
Timestamp when processing started (only present when status is not “Starting”)
Timestamp when processing completed (only present when status is “Succeeded” or “Failed”)
Number of chunks in the document (only present when status is “Succeeded”)
Array of document chunks with detailed analysis (only present when status is “Succeeded”)
curl -X 'GET' \
'https://prod.visionapi.unsiloed.ai/parse/04a7a6d8-5ef7-465a-b22a-8a98e7104dd9' \
-H 'accept: application/json' \
-H 'api-key: your-api-key'
Starting Job
Processing Job
Succeeded Job
Failed Job
Error Response - Job Not Found
Error Response - Invalid API Key
{
"job_id" : "04a7a6d8-5ef7-465a-b22a-8a98e7104dd9" ,
"status" : "Starting" ,
"created_at" : "2025-10-22T06:51:16.870302Z"
}
Job Status Values
Job has been created and is waiting to be processed. This is the initial status when a parsing job is first created.
Job is currently being processed. This includes PDF parsing, text extraction, image analysis, table detection, and OCR processing.
Job has completed successfully. The response includes the complete analysis results with all extracted data, images, and metadata.
Job failed during processing. Check the message field for details about what went wrong.
Polling Strategy
For long-running parsing jobs, implement a polling strategy to check status periodically:
import requests
import time
def poll_parse_job ( job_id , api_key , max_wait_time = 300 , poll_interval = 5 ):
"""Poll a parsing job until completion or timeout"""
start_time = time.time()
headers = { "api-key" : api_key}
while time.time() - start_time < max_wait_time:
response = requests.get(
f "https://prod.visionapi.unsiloed.ai/parse/ { job_id } " ,
headers = headers
)
if response.status_code == 200 :
job = response.json()
if job[ 'status' ] == 'Succeeded' :
return job
elif job[ 'status' ] == 'Failed' :
raise Exception ( f "Job failed: { job.get( 'message' , 'Unknown error' ) } " )
elif job[ 'status' ] in [ 'Starting' , 'Processing' ]:
print ( f "Job status: { job[ 'status' ] } - waiting..." )
time.sleep(poll_interval)
else :
print ( f "Unknown status: { job[ 'status' ] } " )
time.sleep(poll_interval)
else :
print ( f "Error checking status: { response.status_code } " )
time.sleep(poll_interval)
raise Exception ( "Job polling timed out" )
# Usage
try :
result = poll_parse_job( "04a7a6d8-5ef7-465a-b22a-8a98e7104dd9" , "your-api-key" )
print ( "Job completed successfully!" )
print ( f "Total chunks: { result[ 'total_chunks' ] } " )
except Exception as e:
print ( f "Error: { e } " )
Segment Types
When a job succeeds, the response includes detailed analysis of different document segments:
Picture
Images and graphics within the document, including logos, charts, and illustrations.
Document headers and titles that define section boundaries.
Text
Regular text content including paragraphs, sentences, and individual text elements.
Table
Tabular data with structured rows and columns.
Caption
Text captions associated with images or figures.
Each segment includes:
segment_type : Type of content detected
content : Extracted text content
image : URL to extracted image (if applicable)
page_number : Page where the segment appears
confidence : Confidence score for the extraction
bbox : Precise coordinates of the segment
html : HTML-formatted content
markdown : Markdown-formatted content
ocr : Detailed OCR data with individual text elements
Error Handling
Common Error Scenarios
Job Not Found : Invalid or expired job ID
Invalid API Key : Authentication failed
Processing Timeout : Job took too long to complete
Server Error : Internal processing error
Best Practices
Polling Frequency : Check status every 5-10 seconds for long-running jobs
Timeout Handling : Implement reasonable timeouts to prevent infinite polling
Error Recovery : Handle failed jobs gracefully with retry logic
API Key Security : Keep your API key secure and never expose it in client-side code
Rate Limits
Status Checks : Rate limits apply to prevent abuse
Concurrent Jobs : Limited number of active parsing jobs per API key
Request Frequency : Avoid excessive polling (recommended: 5-10 second intervals)
Check your API plan for specific limits and quotas. The unique identifier of the parsing job to check
Job status retrieved successfully
Unique identifier for the parsing job
Current job status: Starting, Processing, Succeeded, or Failed
Timestamp when the job was created
Timestamp when processing started
Timestamp when processing completed
Number of chunks in the document
Array of document chunks with detailed analysis