BRAND MONITORING1 GB free

The counterfeit drop happened in the gap.

A few hundred hashtags, handles and review pages, re-polled at whatever cadence the target tolerates, and the value is the delta.

social.example.com/tag/yourbrandsample
Normal proxy0.00s
attempt 1 of 5
#yourbrandmentions per hour · last 24h
What you saw
—no row returned for this hour14:12
—no row returned for this hour15:03

Every poll in that window returned 200 with an empty array. The series has a flat stretch where the counterfeit listing drop was, and no alert fired.

6 hours with no data · the spike never fired an alert
Edge Proxy0.00s
connecting
#yourbrandmentions per hour · last 24h
What was in the gap
@example_seller_01yourbrand earbuds 70% off, link in bio, ships today14:12
@example_seller_02restock! #yourbrand bundle, DM to order15:03
24 of 24 polls · the spike is in the series

Sample mention series, illustrative. The rate-limit wording is the platform's own, and it parses clean.

24/7monitoring, no rate-limit babysitting
17+upstream networks behind one address
600 sdefault sticky window, raised on request
Per GBflat rate per plan — traffic never expires

A quiet week on the dashboard, a live counterfeit drop

The value is entirely in the delta between runs, which is why a degraded exit costs more than a blocked one: your ETL writes a row of zeros, the rolling average barely moves, and the dashboard shows a quiet week. The counterfeit listing gets found by legal on Thursday rather than by your pipeline at 02:00, and the archive you needed for the takedown was never collected.

One global health score per exitReputation scored per target host

A pool that tracks exit health globally keeps handing you an address that one platform has already started throttling while it still looks clean everywhere else. You get truncated results, not errors.

Scoring is per host, so a platform that throttles an exit does not cost you the exits carrying your marketplace and review polls. Each target keeps its own view of every exit.

You pay by the gigabyte to be blockedFailed attempts absorbed, not billed

Every challenge page, consent wall and re-fetch is metered traffic on a conventional pool. Across a few hundred targets polled around the clock, being blocked becomes a standing line on the invoice.

An attempt that fails at the transport — reset, TLS error, block status, known challenge response — is re-run through another exit before your code sees it, and absorbed rather than billed.

Rotation voids the cursor mid-listingOne exit per machine, for the window

Session and pagination state can be validated against the address that earned them. Rotate on page 4 and the cursor is void: you restart the listing at page 1 and pay for the first three pages twice.

Ask the operator to put the account in sticky mode: every connection from one machine leaves through the same exit, 10 minutes by default and raised on request. A second pinned chain needs a second machine.

The wrong market is the wrong evidenceCountry rides on the username

An exit in the wrong country lands on a different consent state, a different seller set and a different review catalogue. Collect the wrong market and the capture proves nothing in a takedown.

USER-country-de fetches the German storefront from Germany, with no geo surcharge. Consent state, seller set and pricing match what a buyer in that market sees, which matters when the HTML becomes evidence.

Before you point a crawler at it.

I already have a residential pool. What actually changes?

Where the retry decision is made, and who pays for it. Your pool retries blind and bills you for the challenge page. The edge scores exits against the specific host you are hitting, re-runs an attempt that failed at the transport, and does not bill it. Across a few hundred targets on a repeated cadence, that is the difference between a clean time series and a noisy one.

The platform returns 200 with an empty result set. Does your edge catch that?

Not from the payload — an empty result set is a valid response as far as the transport is concerned. The edge acts on connection failures, TLS errors, block status codes and known challenge responses; a stripped page served as a clean 200 is yours to detect. Keep a row-count floor in front of your sink and score your own soft-block rate per host.

Do you solve CAPTCHAs?

No. We do not solve or bypass them, and the acceptable use policy rules it out. What the edge does is route around exits that are drawing challenges on a given target and re-run through cleaner ones. If a site is deliberately gating something behind a human check, treat that as a signal to stop, not a problem to engineer past.

Can I pin a different exit per crawler thread?

No, and it is worth being exact about why. There is no session-id parameter on the username, so a pin cannot be named per thread; the one per-connection switch is -rotate, which does the opposite and gives every new connection a different exit. Longer stickiness is an account mode the operator sets, keyed on your source IP: every connection from one machine leaves through one exit until it has been idle for 10 minutes, the default. Two pinned listings at once means two machines.

This is monitoring people's posts. Where does that sit legally?

We are the transport, not the data source. Retention, minimisation and your DPIA are yours to run; the line here is public content at a rate the target tolerates, no logged-in scraping, no credential use. The proxy-side control that helps is country: collect EU-facing content from EU exits, so what you archive is what was published in that market.

One credential, every job.

All six →

Start with 1 GB free and re-run yesterday's poll

Take the listing your pipeline lost last week and re-run it on the free 1 GB. Compare row counts per page against your current pool, then ask us for sticky mode if the crawl needs it.

Get 1 GB free