Solutions › Brand protection & counterfeit monitoring

Monitoring marketplaces for copies of your products

Brand protection is the one scraping workload where the images are the payload. Everywhere else on this site, product photos are waste bytes you'd happily drop. Here the photo is the evidence — it's what proves a listing is a copy of your design, not just a similar product, and it's what a marketplace complaint form asks you to attach. That single difference changes the traffic profile, the cost model, and how you should measure success.

It's also a workload that never ends. Listings get removed and reappear under a new seller within days, so the crawl runs at a steady rate for years, not in a burst.

What counts as a brand-protection target

  • Marketplace search results — your brand name, model numbers, and the generic keywords your product ranks for, per marketplace and per locale.
  • Listing pages and their image sets — title, seller, price, shipping origin, and every product photo at full resolution.
  • Seller storefronts — the other listings by an account you've already reported, which is usually where the rest of the infringement lives.
  • Social commerce and standalone shops — the sites that show up in ads and link out to a checkout you've never heard of.
  • Recheck sweeps — the URLs and search queries you've already actioned, re-run to catch relisting.

This isn't just for enforcement agencies. Any brand owner with a registered design or trademark ends up doing it in-house, because nobody watches a catalogue as closely as the person whose catalogue it is.

Budget traffic by images, not by pages

A text-only crawl is measured in kilobytes per record. A listing captured with its full image set is measured in megabytes, and the images are most of it. Plan sizing that works for a price monitor will be off by an order of magnitude here, and you'll find out mid-month.

Two practical points:

Don't filter images out. BotProxy supports per-credential request filters that block URL patterns you never meant to fetch — and blocked requests aren't billed. On most workloads the advice is to cut third-party assets aggressively. Here it's narrower: cut fonts, analytics, tag managers, and ad exchanges — which on a marketplace page can be a real share of the bytes — and leave the CDN that serves the product photos alone.

Fetch each image once. Store a hash alongside it. Marketplaces reuse the same image across many listings and many sellers, so a hash index both skips the re-download and does the matching work for you: the same photo appearing under a second seller is the signal you're looking for.

The exit country decides what you're looking at

On a marketplace, geography isn't an access question — it's a question of whether you captured the right thing. Assortment, price, shipping options, and sometimes whether the listing even appears all depend on the IP. A listing that's invisible from a US exit might be the first result from a French one.

This matters more here than in ordinary price monitoring, because the output is used to assert a right that exists in a specific territory. The listing you need to document is the one a buyer in the market where you hold the registration actually sees. Pin the exit country in the login and keep one country per dataset. All locations are included on every plan, so running the same query set from several countries costs nothing extra.

We've also seen servers that answer a US datacenter IP normally and return 403 to a European one. If a marketplace is refusing you outright, match the exit country before debugging anything else.

Rotation, and why concentration breaks the crawl

Every request through BotProxy runs inside a session, and a session holds one exit IP for its lifetime. If you don't supply a session ID, a default session is used and every request leaves from the same address. The session lives in the proxy login:

login + location + SESSIONID

pxu1000-0+FR+px-007      # French exit, worker 7
pxu1000-0+US+px-007      # same worker, US view of the same query

Across 268 targets in production traffic, 28 show failure rates climbing sharply as the same request volume is concentrated onto fewer exit IPs. The most extreme case went from 2.4% failures spread across the pool to 73.3% concentrated — same target, same requests. What's being enforced is a request budget per address, not a judgment about where the address lives.

Good defaults for this workload:

  • Rotate per listing. Each capture is independent. A fresh session ID per listing keeps per-IP volume flat.
  • Hold one session for a listing and its images. The image CDN often shares rate-limit accounting with the page, and a single session keeps the whole capture together.
  • Rotate on throttle, don't retry in place. Retrying through a session that just failed spends what's left of that address's budget.
  • Pace per marketplace. Your slowest target sets the schedule.

Anti-Detect Mode for marketplace WAFs

Large marketplaces run commercial WAFs that fingerprint the TLS and HTTP/2 handshake, so a default Python or Go client is identified as automation before a single header is read. Anti-Detect Mode rewrites the handshake to match a real browser — it's what gets past AWS WAF, Imperva, and Cloudflare fingerprint checks. It's on by default.

Two things to know: it works as a man-in-the-middle, so your client must accept the proxy's certificate. And the browser profile supplies the User-Agent, replacing the one your client sends.

Your evidence has to survive being challenged

A takedown is a claim you may have to defend, and a scraped page is only useful as evidence if you can say what it looked like, when, and from where. That puts a few requirements on the pipeline that other scraping workloads don't have.

  • Capture the rendered page, not just the HTML. Every plan includes cloud Chrome browsers you control over HTTP: navigate to the listing, screenshot it, or generate a PDF. Same account, same IP pool, same bill. See the Browser API reference.
  • Keep the raw response and the images, not just your parsed fields. You can redo the parse; you can't redo the listing, because it'll be gone.
  • Record the status code and exit country per request. BotProxy logs the status the target returned for every request, so the log can show that a URL answered 200 at capture time and 404 a week later.
  • Timestamp everything in UTC and keep the query that found the listing, not just the listing URL. “How did you find this” is a fair question.

Soft blocks corrupt the record, quietly

A marketplace block often arrives as HTTP 200 with a page that has no listing on it. If your pipeline validates on status codes, that page gets stored as a successful capture of an empty result — which looks exactly like a listing that was taken down. The consequence here is worse than a gap in a price series: you'll conclude that an enforcement action worked when the listing is still live, and stop watching it.

Check the extracted content instead. A capture with no title, no seller, and no images is a failure regardless of the status code, and it should re-queue rather than close the case.

Where this won't work

  • Anything behind your seller or rights-holder login. Brand Registry consoles, IP complaint portals, and seller back-offices sit behind authentication and MFA, and their terms cover automated access. Use them by hand or through whatever API the platform offers. BotProxy is for the public side of the marketplace.
  • Closed social apps. Content that's only reachable inside a logged-in mobile app isn't a public page and isn't what rotating datacenter IPs are for.
  • Cloudflare managed challenges. When a target has escalated to an interactive challenge, a datacenter exit is the wrong tool.

One more limit, and it's ours rather than technical. This page is written for rights holders monitoring copies of their own registered designs and marks. Complaint tooling can also be pointed at competitors selling lawfully, and we don't want that traffic. The Acceptable Use Policy is the binding version.

Use official channels when they exist

Several marketplaces offer rights-holder programmes with their own search, image-matching, and bulk-submission tools — and those are better than anything you'll build by crawling. Use a proxy for the marketplaces that offer nothing, for sites outside any programme, and for the recheck sweeps that tell you whether a removal stuck.


Try it on your target

Paste your URL into the live tester and see the real response before creating an account. Every plan includes all locations, Anti-Detect Mode, and the Browser API. You're billed on traffic volume only.

Test your target See plans Read the documentation

Other use cases

Public records & government registries

Licensing boards, Secretary of State business registries, county assessors and recorders. About 1,450 separate government domains, each with its own stack and its own WAF.

B2B data & business directories

Company and professional profiles, directories, and firmographic enrichment — long-running pipelines that re-check the same records on a schedule.

E-commerce price & catalog monitoring

Marketplace and retailer product pages, price history, and stock tracking across many sites at once.

SEO & SERP rank tracking

Search result pages by keyword and locale, rank monitoring, and share-of-voice reporting for agencies and in-house teams.

Travel & airline fare monitoring

Airline and OTA fare and availability checks, where the price depends on the country the request comes from.

Property & real-estate data

Listing portals plus the county assessor, recorder, and land-record sources that hold the official ownership and tax data.

Brand protection & counterfeit monitoring

Marketplace listings and product images collected on a schedule to find copies of your products and document them for takedowns.