Skip to main content
GET
Get crawl status and results

Overview

Returns where a crawl has got to, plus a page of results in completion order. Poll it until status is completed. Results are paginated. Each response carries a next link; follow it until next is null to read every page. Results stay readable for 24 hours after a crawl finishes, then expire.

Example request

Example response

Statuses

total is the frontier size as currently known, not a final count. A crawl discovers pages as it goes, so this number rises until the frontier is exhausted or limit is reached. Do not treat completed === total as “finished” — check status.

Page objects

Each entry in data carries the crawl’s bookkeeping plus the same fields GET /scrape returns for that page: Failed pages are listed rather than silently dropped, so you can see what a crawl could not reach. You are not charged for them.

Billing

This endpoint is where crawled pages are charged: each call bills for the pages that completed since your previous call, at 3 credits each. That makes polling safe — calling it ten times while a crawl runs costs exactly the same as calling it once at the end. credits_used on the response shows the running total for the crawl.

POST /crawl

Start a crawl and configure its scope.

DELETE /crawl/{id}

Stop a running crawl. Free.

Authorizations

X-API-Key
string
header
required

Your Prefetch API key. Obtain one from the dashboard.

Path Parameters

id
string
required

The crawl id returned by POST /crawl.

Example:

"crw_9f2c1a7b4e0d4c3a8b1e5f7d2c9a0b3e"

Query Parameters

skip
integer
default:0

Number of result pages to skip. Use the next link rather than building this by hand.

Required range: x >= 0
limit
integer
default:25

Number of crawled pages to return per request.

Required range: 1 <= x <= 100

Response

Crawl status.

success
enum<boolean>
required
Available options:
true
data
object
required
meta
object
required