# Olostep Web Crawler - Start Crawl

> Olostep Web Crawler - Start Crawl is a paid API for AI agents from x402.orth.sh, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-13).

Initiates an asynchronous multi-page web crawl from a seed URL, returning a crawl ID to track progress and results.

## Facts

- Endpoint: POST https://x402.orth.sh/olostep/v1/crawls
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/olostep-web-crawler-start-crawl-fa0c5665
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WLr-4bDdlVC1tiQynwlel

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability olostep-web-crawler-start-crawl-fa0c5665 -d '<json body>'
```

Example prompt: Crawl the entire docs.example.com website — go up to 3 levels deep, limit it to 100 pages, and only include pages under /docs/** — then ping my webhook at https://myapp.com/crawl-done when it's finished.

## When to prefer this

Choose this endpoint when you need to crawl multiple pages of a website asynchronously, especially for large-scale content extraction, site indexing, or building datasets. It supports configurable depth, page limits, URL filtering, search-query relevance sorting, and webhook callbacks — making it ideal for long-running crawl jobs where you don't need an immediate synchronous response. Prefer this over single-page scraping endpoints when the task requires more than one page.

## Known failure modes

- Invalid or unreachable start URL returns an error
- Timeout exceeded before crawl completes, returning partial results
- Max pages or depth parameters set too high causing long delays
- Webhook URL unreachable, resulting in silent delivery failure
- Payment failure returns 402 status and crawl is not initiated
- Malformed glob patterns in include/exclude URLs cause unexpected crawl scope

## How this service works

Starts a new crawl. You receive a `id` to track the progress. The operation may take 1-10 mins depending upon the site and depth and pages parameters.

## Output

Returns a crawl ID (and initial status) that the agent can use to poll the crawl progress endpoint or receive results via webhook. The actual crawl runs asynchronously and may take 1–10 minutes depending on site size, depth, and page count.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "top_n": {
   "type": "number",
   "description": "An optional number to only crawl the top N most relevant links on every page as per search query."
  },
  "timeout": {
   "type": "number",
   "description": "End the crawl after n seconds with the pages completed until then. May take ~10s extra from provided timeout."
  },
  "max_depth": {
   "type": "number",
   "description": "Maximum depth of the crawl. Useful to extract only up to n-degree of links."
  },
  "max_pages": {
   "type": "number",
   "description": "Maximum number of pages to crawl. Recommended for most use cases like crawling an entire website."
  },
  "start_url": {
   "type": "string",
   "description": "The starting point of the crawl."
  },
  "webhook_url": {
   "type": "string",
   "description": "An optional POST request endpoint called when this crawl is completed. The body of the request will be same as the response of this [`v1/crawls/{crawl_id}`](./info#response-created) endpoint."
  },
  "exclude_urls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "URL path names in glob pattern to exclude. For example: `/careers/**`. Excluded URLs will supersede included URLs."
  },
  "include_urls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "URL path patterns to include in the crawl using glob syntax. Defaults to `/**` which includes all URLs. Use patterns like `/blog/**` to crawl specific sections (e.g., only blog pages), `/products/*.html` for product pages, or multiple patterns for different sections. Supports standard glob features like * (any characters) and ** (recursive matching)."
  },
  "search_query": {
   "type": "string",
   "description": "An optional search query to find specific links and also sort the results by relevance."
  },
  "include_external": {
   "type": "boolean",
   "description": "Crawl first-degree external links."
  },
  "include_subdomain": {
   "type": "boolean",
   "description": "Include subdomains of the website. `false` by default."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/olostep-web-crawler-start-crawl-fa0c5665/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.orth.sh](https://www.zero.xyz/host/x402.orth.sh/llms.txt)
