# Website Crawler ## Overview | Property | Value | |----------|-------| | **Status** | active | | **Method** | `GET` | | **Endpoint** | `/v2/website/crawler` | | **Base URL** | `https://api.piloterr.com` | | **Credit Cost** | 1 credit per call | | **Documentation** | https://www.piloterr.com/library/website-crawler | ## Description Fetch public pages with fast HTTP crawling (no JavaScript). Best first choice for static or server-rendered HTML; use Rendering or WebUnlocker when JS or anti-bot blocks you. ## Authentication - **Key Name:** `x-api-key` - **Location:** HTTP Header - **Get an API key:** https://app.piloterr.com/register ## Example Request ```bash curl --location --request GET 'https://api.piloterr.com/v2/website/crawler' \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' ``` ## Example Response ### Crawl example.com ```json Example Domain

Example Domain

This domain is for use in documentation examples without needing permission. Avoid use in operations.

Learn more

``` ### Crawl wikipedia.org with page source ```json Wikipedia
``` ### Crawl github.com without redirects ```json GitHub: Let’s build from here
GitHub
``` ## Documentation ## Choosing the right endpoint Piloterr exposes three complementary ways to fetch a public web page. Pick the **lightest engine that works** for your target site. | Endpoint | Engine | Credits | Use when | |---|---|---:|---| | [Website Crawler](https://www.piloterr.com/library/website-crawler) | HTTP request (no JavaScript) | 1 | The HTML you need is already in the first response: blogs, docs, server-rendered catalog pages, sitemaps. | | [Website Rendering](https://www.piloterr.com/library/website-rendering) | Headless browser (JavaScript executed) | 2 | Content appears only after JS runs: React/Vue/Angular SPAs, lazy-loaded listings, pages that need `wait_for` or POST `browser_instructions`. | | [Website WebUnlocker](https://www.piloterr.com/library/website-webunlocker) | Browser + unlock stack | 3 | [Website Rendering](https://www.piloterr.com/library/website-rendering) or [Website Crawler](https://www.piloterr.com/library/website-crawler) hit bot walls (Cloudflare, DataDome, Akamai, PerimeterX) **and** the domain is on Piloterr's approved whitelist. | **Decision flow** 1. Try **Crawler** first if you do not need client-side rendering. It is the fastest and cheapest option. 2. Switch to **Rendering** when the DOM is empty, prices load asynchronously, or you must wait for a selector / run browser steps. 3. Escalate to **WebUnlocker** only for hardened retail or marketplace domains that block normal browser traffic. Whitelist approval is required before production use. See also: [Website Scraping guide](https://www.piloterr.com/blog/website-crawler-vs-rendering-vs-webunlocker). ## Overview [Website Crawler](https://www.piloterr.com/library/website-crawler) sends a direct HTTP GET to a public URL and returns the page HTML. No headless browser runs: there is no JavaScript execution, no DOM rendering, and no anti-bot unlock layer. That makes Crawler ideal for **volume and speed** on sites that already ship meaningful HTML in the first response. When the page is a SPA, loads data after scroll, or sits behind advanced bot detection, move up to [Website Rendering](https://www.piloterr.com/library/website-rendering) or [Website WebUnlocker](https://www.piloterr.com/library/website-webunlocker) (see table above). Costs **1 credit** per successful call. ## Quickstart ``` GET https://api.piloterr.com/v2/website/crawler?query=https://example.com ``` ## Parameters | Parameter | Type | Required | Description | |---|---|---|---| | `query` | string | yes | Public URL with `http://` or `https://` | | `allow_redirects` | boolean | no | Follow redirects when `true` (default). Set `false` to inspect redirect chains | | `return_page_source` | boolean | no | Return raw HTML source when `true`. Default `false` | ## Response | Field | Description | |---|---| | Response body | HTML string of the fetched page | ## Related endpoints | Need | Endpoint | |---|---| | JavaScript-rendered content | [Website Rendering](https://www.piloterr.com/library/website-rendering) | | Hard anti-bot on a whitelisted domain | [Website WebUnlocker](https://www.piloterr.com/library/website-webunlocker) | | Detect protection before scraping | [Website Antibot](https://www.piloterr.com/library/website-antibot) | ## Notes - Only successful HTTP responses are billed. - Authenticated or paywalled pages are out of scope. - If you get empty or skeleton HTML, the site likely needs [Website Rendering](https://www.piloterr.com/library/website-rendering) instead. ## Main use cases - Bulk-fetch product or listing pages that render on the server - Monitor static competitor pages for content changes - Harvest blog posts, directories, and documentation at low latency - Capture redirect chains with `allow_redirects=false`