Skip to content

List scrape jobs for a URL

GET
/api/v1/urls/{id}/jobs
Code sample: cURL
curl -X GET 'https://api.justcrawl.io/api/v1/urls/00000000-0000-0000-0000-000000000001/jobs?status=failed' \
-H 'Authorization: Bearer $JUSTCRAWL_API_KEY'

Returns the scrape history for one URL, newest first. Use it to check whether a tracked URL is succeeding over time without filtering the org-wide GET /api/v1/jobs feed yourself.

id
required
string format: uuid

URL item ID.

page
integer
default: 1 >= 1 <= 10000

1-based page number. Values above 10000 are clamped.

pageSize
integer
default: 25 >= 1 <= 100

Results per page. Values above 100 are clamped.

status
string
Allowed values: success failed all

Filter to one job status. all is the default (no filter).

Paginated job history for this URL.

Media typeapplication/json
object
items
Array<object>
object
id
string format: uuid
status
string
Allowed values: pending running completed failed waiting_retry extracting extraction_done
url
string
workflowId
string format: uuid
version
integer
providerId
string
nullable
statusCode
integer
nullable
latencyMs
integer
nullable
errorType
string
nullable
errorMessage
string
nullable
scheduleId
string format: uuid
nullable
purpose

Whether this is a customer crawl or an auxiliary Playground preview capture.

string
Allowed values: crawl preview_capture
parentJobId

Parent crawl ID for a preview capture. Null for ordinary crawl jobs.

string format: uuid
nullable
creditsCharged

Credits deducted for this job when it was submitted. 0 when the org is not charged per job (enterprise and platform-managed plans, backfills, extraction fan-out children and webhook-ingest jobs). null when the amount is not known — the job was recorded by a release that predates per-job charge stamping; such a job always reports creditOutcome: pending.

integer
nullable
creditOutcome

What happened to the charge. not_charged — this job never cost a credit. pending — charged, and the outcome is not decided yet. kept — charged, and the charge stands. refunded — charged, and the credit was returned because no provider delivered a page. A crawl that fails at every provider is free.

string
Allowed values: not_charged pending kept refunded
creditNote

One sentence saying why the charge was kept or returned, e.g. credit returned: no provider delivered a page. null while the outcome is not_charged or pending. Display it as-is — the wording is the API’s, not the client’s.

string
nullable
createdAt
string format: date-time
completedAt
string format: date-time
nullable
total

Total jobs matching the filter, across all pages.

integer
Example
{
"items": [
{
"status": "pending",
"purpose": "crawl",
"creditOutcome": "not_charged"
}
]
}

Missing or invalid authentication token

Media typeapplication/json
object
error
string
Example
{
"error": "Missing or invalid authentication token"
}

Insufficient permissions for this operation

Media typeapplication/json
object
error
string
Example
{
"error": "No organization. Complete onboarding first."
}

URL not found.

Unexpected server error. Logs and PostHog $exception capture

Media typeapplication/json
object
error
string
Example
{
"error": "Something went wrong"
}