Skip to main content
GET
/
scrape
/
status
/
{job_id}
Check Job Status
curl --request GET \
  --url https://api.skop.dev/scrape/status/{job_id} \
  --header 'Authorization: Bearer <token>'
{
  "job_id": "<string>",
  "status": "pending",
  "message": "<string>",
  "progress": 50,
  "created_at": "2023-11-07T05:31:56Z",
  "started_at": "2023-11-07T05:31:56Z",
  "completed_at": "2023-11-07T05:31:56Z",
  "estimated_completion": "2023-11-07T05:31:56Z",
  "current_agent": "<string>",
  "agents_completed": [
    "<string>"
  ],
  "total_pages_crawled": 123,
  "total_documents_found": 123,
  "is_active": true,
  "has_errors": true,
  "errors": [
    {
      "error_id": "<string>",
      "agent_name": "<string>",
      "error_type": "<string>",
      "error_message": "<string>",
      "page_url": "<string>",
      "timestamp": "2023-11-07T05:31:56Z",
      "is_recoverable": true
    }
  ],
  "warnings": [
    "<string>"
  ]
}
Returns the current status and progress of a scraping job.

Path Parameters

ParameterTypeDescription
job_idstringUnique job identifier

Example Request

const checkStatus = async (jobId) => {
  const response = await fetch(`https://api.skop.dev/scrape/status/${jobId}`, {
    headers: {
      'Authorization': 'Bearer sk-your-api-key'
    }
  })
  
  return await response.json()
}

Response (200 OK)

{
  "job_id": "job_123456789",
  "status": "extracting",
  "message": "Currently extracting documents from discovered pages",
  "created_at": "2024-01-15T10:00:00Z",
  "started_at": "2024-01-15T10:01:00Z",
  "estimated_completion": "2024-01-15T10:30:00Z",
  "completed_at": null,
  "current_agent": "scraper",
  "agents_completed": ["coordinator", "navigator"],
  "total_pages_crawled": 3,
  "total_documents_found": 12,
  "errors": [],
  "warnings": [],
  "is_active": true,
  "has_errors": false
}

Response Fields

FieldTypeDescription
job_idstringJob identifier
statusstringCurrent job status
messagestringHuman-readable status message
progressnumber/nullProgress percentage (0-100) when available
created_atstringISO 8601 job creation timestamp
started_atstring/nullISO 8601 job start timestamp
completed_atstring/nullISO 8601 job completion timestamp
estimated_completionstring/nullISO 8601 estimated completion time
current_agentstring/nullCurrently active processing agent
agents_completedarrayList of completed processing steps
total_pages_crawlednumberNumber of pages processed
total_documents_foundnumberNumber of documents discovered
is_activebooleanWhether the job is currently running
has_errorsbooleanWhether any errors occurred
errorsarrayList of error objects (if any)
warningsarrayList of warning messages (if any)

Job Status Values

StatusDescription
pendingJob queued, waiting to start
in_progressJob is actively running
completedJob finished successfully
failedJob failed due to errors
cancelledJob was cancelled by user

Error Responses

StatusDescription
404Job not found or access denied
500Internal server error

Polling Pattern

const pollJobStatus = async (jobId) => {
  const checkStatus = async () => {
    const status = await fetch(`https://api.skop.dev/scrape/status/${jobId}`, {
      headers: { 'Authorization': 'Bearer sk-your-api-key' }
    }).then(r => r.json())
    
    console.log(`Status: ${status.status} (${status.total_documents_found} docs found)`)
    
    if (status.is_active) {
      // Still running, check again in 5 seconds
      setTimeout(checkStatus, 5000)
    } else {
      // Job completed (success or failure)
      console.log('Job finished:', status)
      return status
    }
  }
  
  return checkStatus()
}

Authorizations

Authorization
string
header
required

API key in format 'sk-xxxxxxxxxxxxx' or 'sk_xxxxxxxxxxxxx'

Path Parameters

job_id
string
required

Unique job identifier

Response

Job status information

job_id
string

Job identifier

status
enum<string>

Current status of the job

Available options:
pending,
in_progress,
completed,
failed,
cancelled
message
string

Human-readable status message

progress
number | null

Progress percentage (0-100) when available

Required range: 0 <= x <= 100
created_at
string<date-time>

ISO 8601 job creation timestamp

started_at
string<date-time> | null

ISO 8601 job start timestamp

completed_at
string<date-time> | null

ISO 8601 job completion timestamp

estimated_completion
string<date-time> | null

ISO 8601 estimated completion time

current_agent
string | null

Currently active processing agent

agents_completed
string[]

List of completed processing steps

total_pages_crawled
integer

Number of pages processed

total_documents_found
integer

Number of documents discovered

is_active
boolean

Whether the job is currently running

has_errors
boolean

Whether any errors occurred

errors
object[]

List of error objects (if any)

warnings
string[]

List of warning messages (if any)

I