Proxies for price monitoring

MIX pools up to 25,000 IPs and unlimited traffic: pull prices from marketplaces and competitor stores every hour if you like, product pages never run into a volume cap. A country code on every address gives you regional prices. A test hour costs $1.

  • Traffic is never metered
  • Pool checked every 5 minutes
  • Refund on packages from 3 days
See prices
Price tags from dozens of storefronts flow into a single proxy pool node

The price for your volume

Pick a package, then move the period and thread sliders. A thread is one product page your monitor is downloading at this moment: 500 threads means 500 pages at once.

MIX-Elite is made for repricing and scheduled runs every 15 minutes: hundreds of thousands of pages, full competitor catalogues, prices by country. This is the largest pool, 25,000 addresses, and the only package where threads go up to 9,900.

1 month
1,500

A thread is one simultaneous connection. More threads — more done in the same time.

$150
≈ $5 / dayfor 30 days

$150 for a monthno extra charge for threads

save $450 vs. daily
YESrefund of the remainder
  • 1 hour — $1
  • 1 day — $20
  • 3 days — $40
  • 1 week — $70
  • 2 weeks — $100
  • 1 month — $150
  • 3 months — $360
  • 6 months — $675
Buy proxies — MIX-Elite

How to connect the proxies to your price monitor

  1. 1
    Buy an hour for $1 and enter the IP of the server your monitor runs on.

    The whitelist opens access to the server itself: there is no login or password for the monitor to enter. Up to ten addresses fit on the list.

  2. 2
    Copy the link to the proxy list from your dashboard.

    The response is plain text: address and port, one proxy per line. The same URL ending in .csv returns the list with a country code on every address, which you need when prices depend on the region.

  3. 3
    Load the URL into your monitor as the proxy source.

    A-Parser, ZennoPoster and most price scrapers accept a list by URL and re-read it on their own. A monitor of your own in Python starts from the example below.

  4. 4
    Set monitor threads no higher than the port count in your package.

    Basic gives you 500 ports, Business 1,000, Elite 1,500. Every port is a separate proxy, and one product page downloads through one port.

  5. 5
    Take the price from the page markup, not from a screenshot.

    Most storefronts keep the price in schema.org data inside the HTML, so one product page is one request with no images or scripts. The script below reads it from there.

This is how prices are pulled from Python. The script reads product URLs from products.txt, fetches each page through a random proxy from the list, extracts the price from the schema.org markup and appends a line to prices.csv. Swap PROXY_LIST_URL_FROM_DASHBOARD for the URL from your dashboard and leave the rest alone.

# pip install requests[socks]
import json, random, re, time, requests

PROXY_LIST_URL = "PROXY_LIST_URL_FROM_DASHBOARD"
REFRESH_SEC = 600
HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",
           "Accept-Language": "en-US,en;q=0.9"}

_pool, _loaded = [], 0

def pool():
    global _pool, _loaded
    if time.time() - _loaded > REFRESH_SEC:
        text = requests.get(PROXY_LIST_URL, timeout=15).text
        _pool = [line.strip() for line in text.splitlines() if ":" in line]
        _loaded = time.time()
    return _pool

def fetch(url, tries=3):
    for _ in range(tries):
        proxy = random.choice(pool())
        try:
            r = requests.get(url, headers=HEADERS, timeout=15,
                             proxies={"http": f"socks5h://{proxy}", "https": f"socks5h://{proxy}"})
            if r.status_code == 200:
                return r.text
        except requests.RequestException:
            pass
        time.sleep(2)
    return ""

def offers(node, currency=""):
    if isinstance(node, dict):
        currency = node.get("priceCurrency", currency)
        if "price" in node:
            yield node["price"], currency
        for value in node.values():
            yield from offers(value, currency)
    elif isinstance(node, list):
        for item in node:
            yield from offers(item, currency)

def price(html):
    for block in re.findall(r'<script[^>]*type="application/ld\+json"[^>]*>(.*?)</script>', html, re.S):
        try:
            data = json.loads(block)
        except ValueError:
            continue
        for value, currency in offers(data):
            return str(value), currency
    return "", ""

with open("prices.csv", "a") as out:
    for url in open("products.txt"):
        url = url.strip()
        if url:
            value, currency = price(fetch(url))
            out.write(f"{int(time.time())};{url};{value};{currency}\n")
            print(url, value, currency)

Which package to take for price monitoring

MIX-Basic

8,000 IPs · 500–900 threads

from $50 a month

One store, one run a day. Take it when you track thousands of pages and need the report by morning.

MIX-Business

16,000 IPs · 1,000–1,400 threads

from $100 a month

A package for analysts and services: several marketplaces, tens of thousands of pages, several runs a day.

MIX-Elite

25,000 IPs · 1,500–9,900 threads

from $150 a month

A package for repricing: whole catalogues, a run every 15 minutes, threads up to 9,900.

Five settings that protect the pool

  • One product page through one proxy, the next through another. The storefront counts requests per address, not per account.
  • Download only the page HTML: images, scripts and styles are useless to a monitor and take many times longer.
  • A 403, a 429 or a captcha page: set that proxy aside for 10 minutes and retry the page through another.
  • Keep a 2–3 second pause between requests to one storefront from one address, even with many threads.
  • Download the list again every 10 minutes, so the monitor never hits addresses the check has already weeded out.

Questions about proxies for price monitoring

01How many product pages a day can the pool take?
The storefront counts requests per IP. With pauses, one address handles a few dozen pages a day, so the 8,000 addresses in Basic cover hundreds of thousands of pages, and the 25,000 in Elite several times more. Get the exact figure for your marketplace from a test hour: the share of captchas and 403s shows up right away.
02Do these proxies work for Amazon, eBay and Walmart?
Yes, on one condition: spread requests across the whole pool and keep pauses, because each of these marketplaces counts the rate per address. For full catalogues take Business or Elite, the address reserve is bigger there.
03Is the traffic really unlimited?
Yes. You pay for the period and the thread count, the volume downloaded is never counted. A catalogue of a million pages costs the same as a hundred.
04Which IPs get access to the pool?
By the ones you added in the dashboard: the proxies accept requests only from those addresses, up to ten per account, with no login or password. Moved the monitor to another server: change the address in the list and you are done.
05How do I pull prices for another country?
Marketplaces show price and availability by the address country. The same URL with .csv at the end returns a table with the columns ip, port, country, speed, uptime, real_ip, semicolon as the separator and the country as a two-letter code. The script below picks addresses from the countries you need and writes them to a file for the monitor. The example takes the US and the UK, swap in your own codes.
import csv, io, requests

CSV_URL = "PROXY_LIST_URL_FROM_DASHBOARD.csv"
COUNTRIES = {"us", "gb"}
OUT_FILE = "proxies_us_gb.txt"

text = requests.get(CSV_URL, timeout=15).text
rows = csv.DictReader(io.StringIO(text), delimiter=";")
picked = [f"{r['ip']}:{r['port']}" for r in rows if r["country"].lower() in COUNTRIES]

with open(OUT_FILE, "w") as f:
    f.write("\n".join(picked) + "\n")
print(f"{len(picked)} proxies saved to {OUT_FILE}")
06How do I test the pool before buying a month?
Start with the $1 hour: it shows how the marketplace reacts to the pool. A package from 3 days can be cancelled in the dashboard on any day, the time used is rebilled at the regular rate and the remainder returns to your balance.

General questions about the service are answered in the general FAQ, the full plan grid is on the home page.

Start with a $1 hour

One hour shows how many pages a day your monitor pulls without captchas. Choose the period after that; on packages from 3 days the unused remainder comes back.

Test proxies for $1
LOGIN/REGISTER