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

200
application/json

Job status information

The response is of type object.