Every page as markdown
Each crawled page comes back as clean markdown with title and word count, stripped of nav, ads, and boilerplate.
POST /v1/crawl
Point it at one URL and get clean markdown for every page on the site.
Feed your LLM or agent a whole knowledge base in one job. Start an async crawl from a single URL, follow same-origin links with depth and page limits you set, and poll for clean markdown on every page. Built in Rust, handles JS rendering and bot protection automatically.
What you get
Each crawled page comes back as clean markdown with title and word count, stripped of nav, ads, and boilerplate.
Set max_depth and max_pages to control exactly how far the crawler walks and how many pages it pulls.
Turn on use_sitemap to seed the queue with sitemap URLs and reach pages that links alone never expose.
Start a job, get a UUID back, and poll until it completes without holding a request open.
How it works
01
Send one URL with optional max_depth, max_pages, and use_sitemap, and get a crawl job ID in return.
02
The crawler walks links breadth-first, staying on the same origin until it hits your depth or page limit.
03
Every page is rendered if needed and converted to markdown, around 90% fewer tokens than the raw HTML.
04
Poll GET /v1/crawl/{id} until status is completed, then read the full pages array of markdown.
API
Send one POST to /v1/crawl with a start URL. The crawler follows same-origin links breadth-first and returns clean markdown for every page it reaches. Set max_depth and max_pages to bound how far it goes.
One credit pool, every endpoint. Cancel anytime, or self-host the open-source core for free.