outcrawl

Crawl

One link in. Every page back.

Every page of a site as markdown or JSON, each one sent as soon as it is read. 1 credit a page, about $0.0032 to $0.0049, and you set the limit.

1,000 free credits every month. No card needed.

The request, as CLI sends it: outcrawl crawl https://hono.dev/docs/ --limit 10 --include '/docs/**'
Response
2005.8 s10 credits · $0.04910 pages as markdown
  1. 13.2s /docs/concepts/motivation
  2. 23.4s /docs/concepts/routers
  3. 33.6s /docs/concepts/benchmarks
  4. 43.7s /docs/concepts/web-standard
  5. 54.3s /docs/concepts/middleware
  6. 64.6s /docs/concepts/developer-experience
  7. 74.8s /docs/getting-started/basic
  8. 85.1s /docs/concepts/stacks
  9. 95.5s /docs/getting-started/cloudflare-workers-vite
  10. 105.7s /docs/getting-started/cloudflare-workers

Captured from a real call to api.outcrawl.ai on 7 October 2026.

How it works

From one link to the whole site. Each page reaches you as it lands.

  1. 01

    It starts from your link.

    It reads the site's sitemap, then follows the links on every page it reads, staying on the site and inside the paths you allow.

  2. 02

    Each page comes back as soon as it is read.

    In the formats you asked for, with its URL, status and how many links from your first page it was found. Nothing waits for the last page.

  3. 03

    It ends with a summary.

    Pages delivered, pages found, the credits spent, and every URL it could not read, with the reason.

How crawl works in the docs

What comes back

Every page in the formats you ask for. Mix them in one crawl.

  • markdown

    Clean text with headings, lists and links kept. The default, and the best thing to hand a model.

    page.markdown

  • json

    The fields you name, read off every page. Send a JSON Schema and each result follows it.

    page.json

  • html

    Each page's HTML, cleaned, with its structure kept.

    page.html

  • rawHtml

    Exactly the HTML the browser had, untouched.

    page.rawHtml

  • links

    Every link on the page, as full URLs.

    page.links

  • screenshot

    A PNG of what a visitor sees first, as base64.

    page.screenshot

  • screenshot@fullPage

    A PNG of the whole page, top to bottom.

    page.screenshot

  • depth

    How many links from your first page it was found, and the page that linked to it.

    page.depth · page.discoveredFrom

You get each page’s main content by default, without menus, ads and footers. Send onlyMainContent: false for the whole page.

What you can build

Keep a whole site within reach. Real examples you can hand to your agent.

Docs

Crawl a docs site into embedded chunks, then re-embed only the pages that changed.

example
Crawl the GitHub Actions docs under https://docs.github.com/en/actions and keep every page as markdown in kb/, split by heading, so my support bot can search it. outcrawl_crawl: every page under /en/actions, as markdown, in one answer. Write(kb/…): each page split by heading, its URL kept.

Pricing

One credit a page. Your limit is the most it can cost.

Tool

Dollars on

  • Crawl

    Every page on a site, from one link.

    1 credit a page

    $4.90 per 1,000 pages

  • You pay for pages delivered, not for the limit. A site with nine pages costs nine credits, whatever limit you set.

  • A page it could not read costs nothing. It is listed in the summary with the reason.

  • Stopping a crawl stops the spend. Every page already delivered stays yours.

  • More formats cost nothing extra. A copy read in the last two days may come from our cache, at the same price. Send maxAge: 0 to read every page live.

See full pricing

Scope

Crawl only the pages you need. Everything else has a sensible default.

Cap the pageslimit
Default: 100
The crawl stops when it has this many, and so does the bill.
Stay in one sectionincludePaths
Default: none
Only paths that match. /docs/** takes everything under /docs; /docs/* stops one level down.
Leave a section outexcludePaths
Default: none
Paths to skip. When a path matches both lists, it is skipped.
Go deeper or shallowermaxDepth
Default: 3
How many links from your first page. Page 2, 3 and on of the same listing count as the same level.
Include subdomainsallowSubdomains
Default: false
Follow links onto the site's other subdomains.
Follow links off the siteallowExternalLinks
Default: false
Leave the site entirely. Pair it with a limit.
Fields you chooseschema
Default: none
A JSON Schema for the json format; every page is read into it.
Get each page pushed to youwebhook
Default: none
An https URL that receives each page as soon as it is read.

FAQ

Questions about crawl