Geonode logo

Web Data Extraction API That Returns Structured JSON, Not Raw HTML

Quick answer

If you want structured data rather than a pile of HTML, you do not need raw proxies at all. Geonode's Scraper API fetches the page through the residential network, renders JavaScript, and returns HTML, Markdown or JSON from a single request. Use the batch, map and crawl endpoints to cover whole sites, and reserve proxies for the few cases where you must drive your own browser.

Why web data extraction breaks without the right proxies

Extraction has two failure layers, and proxies only cover the first. The network layer fails when a site answers HTTP 429 after a burst of requests from one IP, serves a CAPTCHA to cloud ranges, or returns region-locked content because your server sits in the wrong country. Rotating residential IPs fix that part.

The rendering layer is where home-built pipelines usually stall. Modern storefronts, job boards and listing sites ship an empty shell and populate it with JavaScript after load. A plain HTTP fetch returns a skeleton with no prices, no reviews and no pagination, and your parser reports success on nothing.

Then there is the parsing layer. Every target has a different DOM, selectors change without notice, and a redesign silently breaks the extractor until someone checks the output.

Which Geonode proxy type fits

For web data extraction the recommended product is the Scraper API, not a proxy type. It runs every request through the residential pool, renders JavaScript, and returns the page as HTML, Markdown or JSON. The extract endpoint handles a single URL, batch handles a list, map discovers the URLs on a domain, and crawl walks a site from a seed. You get 1.5K free requests per month and a 48-hour trial with 5 threads before paying from $3.50 per 10K requests.

For known targets, the Unlimited Scraper has ready-made targets for Amazon, Google, eBay, Zillow, LinkedIn and others, so you skip selector maintenance. The MCP server exposes the same extraction to agents, keyless.

The proxy types below matter only when you run your own browser or scraper and need just the network layer.

  • Residential — Best for: Self-hosted extractors on protected or geo-locked targets; IP source: Real user devices, 195+ countries; Session: Rotating or sticky up to 24 h; Price from: $0.27/GB at volume
  • ISP (static residential) — Best for: Fixed-IP extraction from authenticated dashboards you own; IP source: Static IPs from real ISPs; Session: Unlimited, static; Price from: $1.25/IP
  • Datacenter — Best for: Public APIs, sitemaps, open data; IP source: Rotating datacenter ranges; Session: Rotating; Price from: $0.14/GB

How to set it up

  1. Sign up at app.geonode.com, open Scraper API and copy your API key. The free tier gives 1.5K requests per month; the 48-hour trial adds 5 concurrent threads.
  2. Call the extract endpoint with the target URL and the output format you want. Choose JSON when you will load it into a database, Markdown when the data feeds an LLM.
  3. Enable JavaScript rendering for pages that populate content after load. Leave it off for static pages to keep latency and request cost down.
  4. For many URLs, send them to the batch endpoint in one call, or point the map endpoint at the domain to discover pages, then crawl from a seed URL.
  5. Store the job id, poll for completion, and write results to your pipeline. Log request counts per domain so you can forecast spend against the per-10K pricing.
# verify endpoint against docs.geonode.com before publishing
curl -X POST "https://scraper.geonode.com/api/extract" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/products/123",
    "render_js": true,
    "format": "json",
    "country": "us"
  }'

Get the exact snippet for your language from the API Code Generator in the dashboard.

Web data extraction-specific settings that matter

Output format: HTML, Markdown or JSON

Ask for HTML when you keep your own parser and want full control. Ask for Markdown when the output goes into a retrieval pipeline or a model prompt, because it strips navigation and scripts. Ask for JSON when a ready target exists for the site, since you then get typed fields instead of text.

JavaScript rendering

Rendering costs more time per request than a plain fetch, so switch it on per target rather than globally. Test a sample page both ways: if the un-rendered HTML already contains the fields you need, keep rendering off. If prices or reviews appear only after render, turn it on for that domain.

Batch, map and crawl

Use batch when you already hold the URL list. Use map first when you do not, because it returns the domain's reachable URLs in one job and you can filter before extracting. Use crawl for sites where the structure is unknown, and set a depth limit so you do not pay for pages you will discard.

Concurrency and threads

Scraper API plans are sized by threads, from 2 on the entry monthly plan to 100 on the largest. Match threads to how fast your downstream can consume results, not to how fast you can submit. Queue jobs and poll rather than opening more connections than your plan allows.

What Geonode gives you for web data extraction

  • JavaScript rendering built in, with HTML, Markdown or JSON output per request.
  • Extract, batch, map and crawl endpoints for single pages through whole sites.
  • Ready targets for Amazon, Google, eBay, Zillow and LinkedIn in Unlimited Scraper.
  • 1.5K free requests every month plus a 48-hour trial with 5 threads.
  • Keyless MCP server access, SDKs and 24/7 support.

Pricing for web data extraction

Scraper API starts free at 1.5K requests per month. Pay-as-you-go pricing begins at $3.50 per 10K requests, and monthly unlimited plans run from $47 with 2 threads to $1,799 with 100 threads. If you run your own extractor, residential proxies are pay-as-you-go from $0.27/GB at volume, with 10 GB at $7.92 and a 3-day trial for $5, no contract. ISP proxies start at $1.25 per IP and datacenter at $0.14/GB. Full tiers are on the pricing page.

FAQ

What is a web data extraction API and when should I use one instead of proxies?

It is an endpoint that fetches, renders and returns a page in a structured format. Use it when you want results, not infrastructure: no proxy rotation, no headless browser fleet, no retry logic. Use raw proxies when you need a custom browser flow.

Does the Scraper API render JavaScript?

Yes. JavaScript rendering is built in and can be enabled per request. Pages that load prices, reviews or listings after the initial response come back fully populated. Leave it off for static pages to reduce latency and keep each request cheaper to process.

How many requests do I get for free?

Every account gets 1.5K requests per month at no cost, plus a 48-hour trial with 5 threads so you can test concurrency. After that, pay-as-you-go starts at $3.50 per 10K requests or you can pick a monthly plan sized by threads.

Can the web data extraction API crawl a whole site?

Yes. Use map to list a domain's URLs, then batch to extract the ones you keep, or use crawl to walk from a seed URL with a depth limit. Results arrive as a job you poll, in the output format you chose.

Is extracting data with this API compliant?

Collect only data you are allowed to access and respect each site's terms, robots policies and rate limits. Use accounts solely when you own them or have authorisation to manage them. Geonode's acceptable use policy prohibits fraud, spam and credential abuse, and violations lead to suspension.

Can I call the extraction API from an AI agent?

Yes. The MCP server exposes extraction to agents and IDEs, and keyless access covers light use without an API key. Add your key for crawl, map, batch and job history, and use Markdown output so pages drop straight into a model context.

Start

Grab your API key and send one URL to the extract endpoint; the first 1.5K requests each month are free. Get started now, or Contact sales for high thread counts or custom targets.

Related: Web scraping · High-volume data scraping · Amazon product insights