Crawl site
Run a bounded breadth-first crawl across same-site pages and public files with robots rules, explicit scope patterns, controlled concurrency, stateless continuation, source-completeness reconciliation, and optional non-destructive AI relevance ranking.
web.site.crawl
/execute
Shared execution endpoint
Input parameters
accept_statuses
array<integer>
optional
ai
string
optional
Optional non-destructive relevance ranking for discovered documents. Every deterministic candidate remains in the result; auto leaves candidates unranked if AI is unavailable, while always requires ranking to succeed. Allowed values: `never`, `auto`, `always`. Default: `never`.
allow_browser_fallback
boolean
optional
Default: `false`.
allow_truncated
boolean
optional
Default: `false`.
concurrency
integer
optional
From 1 to 16. Default: `4`.
2
continuation_token
string
optional
Opaque stateless frontier returned by a preceding crawl slice with the same options. A transiently failed URL is retained for at most one bounded retry; permanent failures are not amplified.
delay_ms
integer
optional
From 0 to 5000. Default: `0`.
detail
string
optional
Allowed values: `summary`, `standard`, `full`. Default: `standard`.
standard
document
object
optional
document.chunk_chars
integer
optional
From 500 to 20000.
document.continuation_token
string
optional
document.ocr
string
optional
Allowed values: `auto`, `never`, `always`. Default: `auto`.
document.outputs
array<string>
optional
Requested document outputs. source returns the originally captured bytes: inline through 5.5 MB, otherwise through a hash-verified durable store, and fails if neither delivery path is available. When source is omitted, remote_source is provenance only and contains no bytes. Allowed values: `structured`, `text`, `markdown`, `source`.
document.page_end
integer
optional
From 1 to 1000000.
document.page_start
integer
optional
From 1 to 1000000.
exclude_patterns
array<string>
optional
include_patterns
array<string>
optional
include_subdomains
boolean
optional
When false, only the seed host is allowed. When true, hosts are still limited to the seed's registrable domain; unrelated hosts are never added. Default: `false`.
instructions
string
optional
Required when ai is auto or always. Describe which documents/files are relevant. Ranking is non-destructive: every deterministic candidate remains in the result.
max_body_bytes
integer
optional
From 1 to 104857600.
max_depth
integer
optional
From 1 to 10. Default: `2`.
2
max_pages
integer
optional
Maximum number of result pages to fetch. From 1 to 100. Default: `10`.
5
max_total_bytes
integer
optional
From 1 to 104857600.
respect_robots
boolean
optional
Default: `true`.
url
string
required
Public http(s) site URL to crawl.
https://example.com/
Response
Successful output is returned in results[0].data.
Raw platform output is intentionally open-ended and may evolve with the upstream source.
Illustrative output fields
Values illustrate one response. Read the guidance above for missing values and limits; fields can vary with the requested operation and the data available.
| Path | Observed type | Example |
|---|---|---|
files |
array |
0 items |
final_url |
string |
https://example.com/ |
pages |
array |
1 items |
pages |
array |
1 items |
stats |
object |
26 fields |
stats.ai_attempts |
integer |
0 |
stats.ai_completion_tokens |
integer |
0 |
stats.ai_mode |
string |
never |
stats.ai_prompt_tokens |
integer |
0 |
stats.ai_ranking_mode |
string |
non_destructive |
stats.ai_rejected_files |
integer |
0 |
stats.ai_relevant_files |
integer |
0 |
stats.ai_uncertain_files |
integer |
0 |
stats.ai_unselected_files |
integer |
0 |
stats.ai_used |
boolean |
false |
stats.concurrency |
integer |
2 |
stats.crawled_pages |
integer |
1 |
stats.effective_delay_ms |
integer |
0 |
stats.elapsed_ms |
integer |
2203 |
stats.estimated_result_bytes |
integer |
1151 |
stats.failed_pages |
integer |
0 |
stats.files_before_compaction |
integer |
0 |
stats.files_found |
integer |
0 |
stats.files_omitted_by_compaction |
integer |
0 |
stats.files_returned |
integer |
0 |
stats.frontier_dropped |
integer |
0 |
stats.max_depth |
integer |
2 |
stats.remaining_frontier |
integer |
0 |
stats.response_compacted |
boolean |
false |
stats.returned_pages |
integer |
1 |
stats.robots_applied |
boolean |
true |
url |
string |
https://example.com/ |
warnings |
array |
0 items |
Execution behavior
A 200 response completed inline. A 202 response was queued; poll
GET /jobs/:id until the job reaches completed or
failed.