GET
/
api
/
v1
/
jobs
/
{job_id}
/
status
Get Job Status
curl --request GET \
  --url https://spideriq.di-atomic.com/api/v1/jobs/{job_id}/status \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "job_id": "<string>",
  "type": "<string>",
  "status": "<string>",
  "created_at": "<string>",
  "updated_at": "<string>",
  "worker_id": "<string>"
}

Overview

Poll this endpoint to monitor the progress of your scraping job. Jobs move through several states from queued to completed or failed.

Path Parameters

job_id
string
required
The unique identifier of the job (UUID format)Example: 550e8400-e29b-41d4-a716-446655440000

Response

success
boolean
Whether the request was successful
job_id
string
The job’s unique identifier
type
string
Job type (spiderSite or spiderMaps)
status
string
Current job statusPossible values:
  • queued - Waiting for worker
  • processing - Currently being processed
  • completed - Successfully finished
  • failed - Processing failed
  • cancelled - Cancelled by user
created_at
string
ISO 8601 timestamp when job was created
updated_at
string
ISO 8601 timestamp of last status update
worker_id
string
ID of the worker processing the job (if assigned)

Example Request

curl https://spideriq.di-atomic.com/api/v1/jobs/550e8400-e29b-41d4-a716-446655440000/status \
  -H "Authorization: Bearer <your_token>"

Example Responses

{
  "success": true,
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "spiderSite",
  "status": "queued",
  "created_at": "2025-10-27T10:00:00Z",
  "updated_at": "2025-10-27T10:00:00Z",
  "worker_id": null
}

Polling Best Practices

Recommended polling strategy:
  • Poll every 2-5 seconds for jobs in queued or processing status
  • Stop polling when status is completed, failed, or cancelled
  • Implement exponential backoff for rate limit compliance

Python Polling Example

import requests
import time

def wait_for_completion(job_id, auth_token, max_wait=300):
    """Poll job status until completion or timeout"""
    url = f"https://spideriq.di-atomic.com/api/v1/jobs/{job_id}/status"
    headers = {"Authorization": f"Bearer {auth_token}"}

    start_time = time.time()
    while time.time() - start_time < max_wait:
        response = requests.get(url, headers=headers)
        data = response.json()

        status = data.get("status")
        print(f"Status: {status}")

        if status in ["completed", "failed", "cancelled"]:
            return data

        time.sleep(3)  # Poll every 3 seconds

    raise TimeoutError("Job did not complete within timeout period")

Status Flow

Next Steps

When status is completed: When status is failed:
  • Check error message in results endpoint
  • Review job parameters and retry if needed