One API for web collection

Fetch.
Render.
Extract.

Send a URL in HTTP or browser mode, define typed fields when you need structure, then poll, retry, cancel, and retrieve the result from the same API.

  • HTTP + browser
  • Raw + structured results
  • Async jobs + retries
  • Scoped API keys
Browser pages moving through a routing engine into structured data records

Live request setup

POST /api/v1/data/requests
{
  "url": "https://example.com/catalog",
  "proxy": "random",
  "mode": "http"
}

A request, from input to result

The path updates with the selected setup above.

HTTP request
  1. Submit: URL + controls. POST /requests.
  2. Route: Proxy + session. Rotating route.
  3. Fetch: Lightweight HTTP. Page response.
  4. Parse: HTML or text. Raw payload.
  5. Retrieve: Result + context. Ready.

One request. The whole collection stack.

Fetch through the built-in proxy network, render dynamic pages, shape the output, and keep every job inspectable from creation to result.

Global routing network connecting locations through a central proxy hub

Routing options

Live capability view
Pool
Residential + datacenter
Session
Rotating + sticky
Targeting
Country to ISP

Explore the platform

4 capability views

Select a capability to inspect what it covers.

Data API v1

Control every result.

The public API is asynchronous by design: submit a request, follow its state, and retrieve the result when it is ready.

Request

Choose how a page is fetched and control the request without changing your integration.

  • HTTP or browser modeUse lightweight HTTP for static pages or browser rendering for SPAs, JavaScript, selectors, and challenge flows.
  • Request-level controlsPass headers, cookies, user agent, timeouts, selectors, wait-for-text rules, and cache settings per request.
Quick start

Working examples from the API docs

curl --request POST "https://api.runharvester.com/api/v1/data/requests" \
  --header "Accept: application/json" \
  --header "X-API-Key: YOUR_API_KEY" \
  --header "Idempotency-Key: product-parser-v1" \
  --header "Content-Type: application/json" \
  --data '{
    "url": "https://example.com/products",
    "proxy": "random",
    "mode": "auto"
  }'
  • REST APICreate and track requests from your backend.
  • Code examplesCopy working cURL, Python, and TypeScript examples.
  • Job operationsPoll, cancel, retrieve, and retry.
  • Scoped API keysLimit credentials to the actions they need.

Batches accept raw scrape jobs only. Structured extraction is submitted one request at a time through POST /requests.

Control the route.
See every request.

High-performance rotating proxies with advanced anti-bot protection, precise targeting, and powerful developer tooling. Everything you need to build, scale, and stay ahead.

Global routing network connecting locations through a central proxy hub
195+Countries
Active routing preview
Location
United States
Session
Rotating
Pool
Residential / DC
  • Rotating Proxies

    Automatic IP rotation with smart health checks and sticky sessions.

  • Anti-Bot Handling

    Residential IPs and fingerprint diversity for modern bot defenses.

  • Geo-Targeting

    Target by country, region, city, ASN, or ISP with high accuracy.

  • Browser Automation

    Browser rendering for Puppeteer, Playwright, and Selenium workflows.

  • Observability

    Success rates, request metrics, and detailed logs.

  • API First

    Create, poll, retry, and inspect requests through the Data API.

  • Request history

    Review status, results, expiry, and trace events in the cabinet.

Client cabinet

Request events stay attached to the job.

Illustrative
  • request.successExample
  • ×request.failedExample
  • proxy.rotatedExample
  • !ban.detectedExample
  • ip.blacklistedExample

Resilient architecture

Route work across the infrastructure that fits the job.

Flexible routing

Choose the locations and session settings your workflow needs.

Operational controls

Configure access, allowlists, and support for your team.

Request controls

Configure headers, cookies, selectors, timeouts, and cache behavior per request.

One job. Every state attached.

The API, job state, extraction recipe, and client cabinet stay connected, so your workers do not have to stitch the workflow together.

Request input

Workflow preview
Target
https://example.com/products
Execution
HTTP or browser
Output
Raw or typed fields

Kept with the job

  • Status and expiry
  • Raw or structured result
  • Trace events and retry context

Plans from the live billing catalog

Plans for every workload.

Compare request limits, concurrency, and support options before choosing a plan.

Live plan prices loaded.

Individual developers and small teams

Developer

For production integrations

Practical limits for growing applications.

  • Monthly credits: 300,000 credits
  • Trial credits: 10,000 credits
  • Structured output included
  • Support: developer
  • API keys: 10
  • Batch size: 250

High-volume teams and platforms

Scale

Best Value

High-throughput scraping with larger batches.

  • Monthly credits: 4,200,000 credits
  • Trial credits: 0 credits
  • Structured output included
  • Support: scale
  • API keys: 100
  • Batch size: 5,000

Very high-volume scraping operations

Advanced

For advanced workloads

Maximum self-serve throughput and capacity.

  • Monthly credits: 12,000,000 credits
  • Trial credits: 0 credits
  • Structured output included
  • Support: advanced
  • API keys: 250
  • Batch size: 10,000

For mission-critical workloads.

Enterprise

A plan designed around your infrastructure.

Custom

Contact
  • Custom request limits
  • Custom concurrency settings
  • Private proxy network
  • Custom integrations by agreement
  • Dedicated account support
No credit card requiredStart for free
Cancel anytimeNo lock-in contracts
Scoped API keysKeep credentials server-side
Request visibilityTrack jobs and retries

All plans include access to the Data API and client cabinet. Prices in USD. Taxes may apply.

Ready when your backend is

Put the first URL through.

  • Create an account
  • Generate a scoped key
  • Send a request

Start with HTTP, switch on browser rendering when the page needs it, and add structured extraction without changing the job workflow.