GET /api/crawl/:id/pages first; it returns paginated crawl pages with the underlying scrape result resolved into each page. Use History when you need to inspect an individual underlying request by its scrapeRefId.
List history
Query parameters
integer
default:"1"
Page number to fetch (1-indexed).
integer
default:"20"
Entries per page.
string
Filter by service. One of
"scrape", "extract", "search", "monitor", "crawl", "schema".Example request
Example response
Get one entry
result payload (markdown, HTML, JSON extraction, screenshots, etc.).
Path parameters
string
required
The UUID of a request. This is the same UUID returned by the originating endpoint:
- From
POST /api/scrape→ top-levelid - From
POST /api/extract→ top-levelid - From
POST /api/search→ top-levelid - From
GET /api/crawl/:id→ eachpages[].scrapeRefId - From
GET /api/monitor/:cronId/activity→ eachticks[].id
Example request
Example response
Entry shape
Every entry — both inGET /history and GET /history/:id — has the same shape:
Fetching crawled page content
The canonical pattern: start a crawl, poll until completed, then for each page fetch its scrape result.requestParentId on each child scrape entry equals the parent crawl’s id, so you can also list every page produced by a single crawl with:
Errors
See Error handling for the full envelope.
Related
- Crawl jobs that produce
scrapeRefIds: Get crawl status - Originating endpoints whose
idyou can pass toGET /history/:id: Scrape, Extract, Search - SDK wrappers:
sgai.history.list()andsgai.history.get(id)— see JavaScript SDK and Python SDK