Geonode logo

Crawl. Join the free beta

Crawl an entire site and get clean data from every page
Send a URL
Crawls the whole site or a section
Flat monthly or per-request
Free1,500 requests/month
Clean data per page
  • HTML
  • Markdown

Go unlimited, or pay per request

Unlimited plans

Concurrent threadsPrice / moMonthly requestsActions
2
$47
Unlimited
10
$199Popular
Unlimited
25
$399
Unlimited
50
$699
Unlimited
100
$1,799
Unlimited
Enterprise
Scale on your terms. Custom contracts to match.

Per-request plans

RequestsPrice / moPrice / 1k requestsActions
1,5K
Free monthly
Free
10K
$3.5
$0.35
50K
$13.00Popular
$0.26
250K
$43.00
$0.17
1M
$126.00
$0.13
3M+
Production scale, custom terms.

Here's how we offer low prices on world-class quality

Most scraping APIs run on rented supply with credit-based pricing. That's why your bill is unpredictable. We chose the opposite path and the math compounds.

How more customers, owning the network, wholesale prices, and lower costs reinforce each other

Code quickstart

Add the Geonode Crawl API to your app and pull a whole site in one job

import requests

r = requests.post(
  "https://scraper.geonode.io/v1/extract",
  headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
  json={"url": "https://example.com", "formats": ["markdown"], "processing_mode": "sync"},
)
print(r.json())

Start scraping in seconds

Create your account

Sign up and get 500 free pages to start. No credit card required

Sign-up form with email and password fields in the dashboard

Send a request

Send any URL to the scraping endpoint with a simple API call

Gateway country and session type controls in the dashboard

Get clean data

Receive parsed HTML or Markdown

Proxy endpoint format and connection details

Go unlim when you scale

Move to a flat monthly plan by concurrency, or stay per-request. No credits, no metering surprises.

Code examples and integration snippets in the dashboard

FAQ

Send a POST request to /v1/crawl with your Geonode API key and the URL you want to crawl. The URL is the only required field; crawl settings such as depth, page limit, output format, and JavaScript rendering are optional.

Each crawl returns a unique job_id. Use it to retrieve the crawl status and monitor the total, completed, and failed page counts until the job finishes.

Yes. You can configure the crawl to return extracted page content in the supported output formats, including Markdown. The selected format is applied to the pages processed by the crawl.

Yes. Crawl requests support proxy configuration, including country targeting, so you can retrieve content as it appears from a selected location where supported.

Yes. For dynamic websites, you can use JavaScript rendering together with wait_config to control when a page is ready for extraction, such as waiting for network activity to finish or for a specific element to appear.

Yes. You can list previous crawl jobs with GET /v1/crawl/jobs. The response includes job status, crawl statistics, configuration details, and pagination information.

Stop paying credit math. Start crawling.

1,500 requests/month free. No credit card.