Geonode logo

Crypto Market Data Scraping: Order Books, DEX and NFT Feeds by Region

Quick answer

For crypto market data scraping the default is rotating datacenter proxies from $0.14/GB, because most of the volume is public REST and websocket endpoints that care about request rate, not IP type. Add residential proxies with country targeting for the parts that are geo-gated: exchange web pages that hide pairs by region, regional NFT marketplaces and token listing pages that differ by jurisdiction.

Why crypto market data scraping breaks without the right proxies

Exchange APIs publish per-IP rate limits, usually as a weight budget per minute. Order book snapshots are expensive against that budget, and polling several hundred pairs at a useful frequency from one IP returns HTTP 429 and then a temporary IP ban. Spreading requests across many IPs is the only way to keep a full-depth feed current.

Regional availability is the second problem. Exchanges hide or delist pairs by jurisdiction, some restrict their public web interface to certain countries, and DEX aggregators and NFT marketplaces serve region-specific front ends. From one location you see one catalogue and cannot tell whether a pair is unavailable everywhere or only where you sit.

Web front ends add bot defences that APIs do not have. Listing pages, launchpads and NFT collection pages are often behind CAPTCHAs or JavaScript challenges that treat datacenter ranges harshly. A datacenter IP that is perfect for the REST API will be handed a challenge page on the same exchange's website.

Finally, consistency matters for analytics. A snapshot taken across many IPs with different latency produces skewed timestamps, so the collection design has to handle clock alignment and retries without gaps.

Which Geonode proxy type fits

Rotating datacenter proxies are the recommendation for crypto market data scraping. The bulk of the workload is public JSON endpoints that enforce per-IP rate limits and do not inspect IP type, so the most economical reliable way to multiply your rate budget is rotating datacenter IPs from $0.14/GB. Order books and trade feeds are bandwidth-heavy, which makes the per-GB price the number that matters.

Residential proxies cover the geo-gated remainder. Use them for exchange web pages that hide pairs by region, regional NFT marketplaces, launchpad pages and token listing pages that vary by country. Geonode offers 2.5M residential IPs online in 195+ countries with country, state and city targeting, which lets you map availability of a pair or collection market by market.

ISP proxies suit a small set of long-lived sessions, for example keeping a websocket stream open from a stable IP for hours, where unlimited bandwidth per IP keeps costs predictable.

  • Residential — Best for: Geo-gated exchange pages, regional NFT marketplaces, listing pages; IP source: Real consumer devices, 195+ countries; Session: Rotating or sticky up to 24 h; Price from: $0.27/GB at volume, 10 GB for $7.92
  • ISP (static residential) — Best for: Long-lived websocket streams from a stable IP; IP source: Static IPs from real ISPs; Session: Unlimited sessions, unlimited bandwidth per IP; Price from: $1.25/IP
  • Datacenter — Best for: Public REST APIs, order book polling, bulk historical pulls; IP source: Datacenter ranges, rotating; Session: Rotating; Price from: $0.14/GB

How to set it up

  1. Split sources into API and web. Public REST and websocket endpoints go to datacenter rotation; anything served as a rendered web page with regional differences goes to residential with country targeting.
  2. Read each exchange's published rate limit and assign a budget per IP. Size your IP rotation so that the sum of per-IP budgets comfortably exceeds your polling plan.
  3. Poll order books with datacenter rotation, attaching the exchange's server timestamp to every snapshot and dropping snapshots where the response took too long for your latency tolerance.
  4. For regional checks, request the same listing or pair page from several countries on a schedule and diff the results to build an availability matrix per jurisdiction.
  5. Log status codes, rate-limit headers and retry counts per IP and per endpoint, so you can see a limit change on the exchange side before your feed develops gaps.
# verify endpoint against docs.geonode.com before publishing
import requests, time

USER = "USERNAME"
PASS = "PASSWORD"

DC = f"http://{USER}-type-datacenter:{PASS}@premium-residential.geonode.com:9000"
RES_SG = f"http://{USER}-country-sg:{PASS}@premium-residential.geonode.com:9000"

def get_json(url, proxy, retries=3):
    for attempt in range(retries):
        r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=15)
        if r.status_code == 429:
            time.sleep(2 ** attempt)
            continue
        r.raise_for_status()
        return r.json()
    raise RuntimeError("rate limited after retries")

# Public order book through rotating datacenter IPs
book = get_json("https://api.example-exchange.com/v1/depth?symbol=BTCUSDT&limit=100", DC)
print(len(book.get("bids", [])), "bids")

# Regional listing page through a Singapore residential IP
page = requests.get("https://www.example-exchange.com/markets", proxies={"https": RES_SG}, timeout=30)
print(page.status_code)

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

Crypto-specific settings that matter

Rotate per request on APIs, stick on websockets

REST polling benefits from a fresh IP per request, which spreads the rate budget. A websocket stream needs one IP for the life of the connection, so use a sticky session or an ISP proxy and reconnect with a new session when the stream drops.

Budget by endpoint weight, not by request count

Exchanges charge different weights for depth, trades and ticker calls. Track consumed weight per IP from the rate-limit headers the exchange returns, and route the next request to the IP with the most remaining budget rather than round-robin.

Country targeting only where the page is gated

Residential IPs cost more per GB than datacenter, so reserve them for geo-gated front ends. Pick countries that represent distinct regulatory regimes and compare the same page across them. State targeting is useful for countries where availability differs by state.

Timestamp with the exchange's clock

Record the server timestamp from each response alongside your own receive time. Snapshots routed through different IPs arrive with different latency, and aligning on exchange time keeps your order book reconstruction honest.

Log rate-limit headers and ban windows

Store the remaining-budget headers, every 429 and any temporary ban response per IP. When a feed develops gaps, this log tells you whether the exchange changed its limits or your rotation is too small.

What Geonode gives you for crypto market data

  • Rotating datacenter proxies from $0.14/GB for bandwidth-heavy order book and trade polling.
  • Residential IPs in 195+ countries for geo-gated exchange and NFT marketplace pages.
  • Sticky sessions up to 24 hours and ISP proxies for long-lived websocket streams.
  • HTTP, HTTPS, SOCKS5 and UDP support, no fixed thread limit on residential.
  • Pay-as-you-go, payment by card or crypto, 24/7 support.

Pricing for crypto market data

Order book polling is bandwidth-heavy, so the datacenter rate of $0.14/GB is where most of your spend should sit. Use residential traffic, from $0.27/GB at volume or 10 GB for $7.92, only for the geo-gated pages that need it. The 3-day trial for $5 lets you measure bytes per snapshot before committing, and there is no contract. ISP proxies start at $1.25/IP for stable streaming sessions. Compare plans on the pricing page.

FAQ

Why recommend datacenter proxies for crypto market data scraping?

Because the majority of the data comes from public APIs that enforce per-IP rate limits and do not care about IP type. Datacenter rotation multiplies your rate budget at the lowest per-GB price, which matters when order book snapshots run to many gigabytes a day.

When do I need residential proxies for crypto market data scraping?

When a page is geo-gated: exchange web interfaces that hide pairs by jurisdiction, regional NFT marketplaces, launchpads and token listing pages that differ by country. Residential IPs with country targeting let you build an availability matrix across markets.

Can I collect order books from several exchanges at once?

Yes. Treat each exchange as a separate rate budget, assign its own pool of rotating IPs, and keep per-exchange logs of 429 responses and consumed weight. Mixing exchanges on one rotation makes it hard to see which limit you are hitting.

Does this work with websocket feeds?

Yes. Open the websocket through a sticky residential session or an ISP proxy so the connection keeps one IP, and reconnect with a new session id when the stream drops. Geonode supports HTTP, HTTPS, SOCKS5 and UDP, so most client libraries work without changes.

Is crypto market data collection allowed under Geonode's terms?

Yes, for public market data collected within each exchange's API terms and rate limits. Do not automate trading or account actions through accounts you do not own or manage with authorisation, and respect regional restrictions. Geonode's AUP prohibits fraud, spam and credential abuse.

How do I handle an exchange that changes its rate limits?

Watch the rate-limit headers and the share of 429 responses per IP. A rising 429 rate with unchanged polling means the limit tightened. Lower per-IP frequency, widen the rotation, and keep an alert on feed gaps so you notice within minutes rather than days.

Start

Keep your order books, DEX and NFT feeds current from every region that matters. Get started with a 3-day trial for $5, or Contact sales for a datacenter and residential mix sized to your polling plan.

Related: Stock market data · Alternative data · Website change monitoring