Build1 distinct publisher3 min readUpdated
A week of logged requests shows rotating residential exits mixing currencies into one price column, and the euro-to-dollar error is small enough to pass every sanity check.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
The two currency mixups in this log are not equally survivable. A Vietnamese row landing in a euro column reads 390,037 against 8.63, a factor of roughly 45,000 [2][1], and any range check ever written will stop it. A dollar row landing in a euro column reads 16.8 percent high, which is what the cookie ratios of 1.168, 1.167 and 1.168 in the dev.to write-up work out to [5][4]. Sixteen percent is a promotion ending. It clears every plausibility test and moves the average instead of breaking the job.
The same invisibility applies to the number itself. 1,234.56 and 1.234,56 are the same amount, and the usual cleanup of deleting commas turns 8,63 into 863 [13], which is a believable price for something. The rule that survives is positional: the decimal separator is whichever of the dot and the comma comes last, and only when exactly two digits follow it [14]. A regex anchored to a leading symbol, meanwhile, returns nothing at all in Poland (123,45 zl) or Sweden (1 299 kr) [15], which the author hit while testing all 18 marketplaces [16].
Byte count is the part worth stealing. Amazon's anti-bot interstitial arrives as HTTP 200 with Content-Type text/html at about 2,265 bytes, carrying none of the classic challenge strings, and on amazon.fr the same thing comes back as 202 [11]. Real search pages run 300 KB to 1.6 MB [12]. That puts the challenge page at roughly one one-hundred-and-thirtieth of the smallest legitimate response [2], and the suggested 50 KB floor sits about 22 times above the interstitial while staying a sixth below the smallest real page [3]. Margins that wide are why size works where the status line does not.
The rate numbers are one developer's, from a week of logging, and he says the single-IP burn-out figure is not published anywhere else [18]. Hourly probing from one datacenter IP at two requests per check produced two blocks in fourteen requests, and the baseline decayed across the day from two working methods to none [8]. Two requests seven minutes apart were both blocked and cost that address hours [9]. His reading is that Amazon weighs density per address far above total volume, so the unit should be a fresh exit per request rather than a session per run [10].
That prescription and the currency problem pull against each other. Maximum rotation is precisely the condition under which every request can land in a different pricing country [1], so the correctness work has to move into the parser: keep the a-offscreen symbol, resolve it to an ISO code, and compare it with the currency the requested marketplace should have returned [3][17]. Pinning the pool per marketplace gets you that comparison cheaply [17]. Either way the mismatch has to be flagged rather than dropped, because nothing downstream is ever going to notice it.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Amazon decides the requester's country from the IP address of the request and returns prices in that country's currency, without labelling the number.
Same URL, same product, same day: amazon.com from a European IP returned 8.63 and from an Asian IP returned 390037; both are correct prices for the same Logitech mouse (EUR 8.63 and 390,037 dong).
From a European IP with no cookie, three results were EUR 5.13, EUR 8.56 and EUR 13.69; with i18n-prefs=USD set, the same three were $5.99, $9.99 and $15.99.
The three cookie-set prices divided by their no-cookie counterparts give 1.168, 1.167 and 1.168, identical to three decimals, which the author reads as one exchange rate applied to the European catalogue rather than United States pricing.
The same search through an actual US exit returned a different product mix entirely, at $12.99, $27.99, $11.30 and $18.99.
A probe hitting Amazon hourly from one datacenter IP with two search requests per check logged 14 requests over six hours with two blocked, a 14 percent block rate; individual blocks cleared within the hour, but the baseline drifted from two of four methods working to zero across the day.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed first-party instrumentation, no replication
The post supplies unusually specific, checkable artefacts: paired exit prices for one product, three cookie/no-cookie price pairs with ratios to three decimals, interstitial body size and status codes including the amazon.fr HTTP 202 case, a legitimate page-size range, a working separator routine and a request-level probe log. That is well above assertion-only reporting. Against it: one publisher, one operator, no independent verification, tiny samples (14 requests; three price pairs), asserted rather than shown coverage of all 18 marketplaces, and inferences such as density-weighted throttling resting on a single incident.
No third-party adoption evidence
The cluster contains no deployment, install, customer or usage data. The only implementation named is the author's own Apify actor, disclosed without any adoption metric, and the probe is a measurement rather than an adoption signal. Nothing supplied shows whether other teams have adopted the country-pinning or ISO-currency practice, so adoption cannot be scored without guessing.
Mildly overstated generalisation on thin samples
Most of the post is narrower than its framing and the author repeatedly hedges ('Amazon appears to'), which keeps the gap small. The overstatement is in the leap from a 14-request single-IP probe and three price pairs to universal statements about what 'your' price column contains, plus an unverifiable novelty claim about the burnout figure and a closing product pointer that the evidence does not independently validate.
Author sells the tool the article prescribes
The piece is self-published on a developer platform with no editorial review, and the recommended remedy - 18 marketplaces, proxy country pinned, ISO currency code on every price - is exactly the feature set of the author's own Apify actor, named in the closing paragraph. That is a direct commercial interest in the problem being seen as widespread and hard. Mitigating factors: the disclosure is explicit, the methods and code are published for readers to reproduce, and the author concedes his own detector failed on the success-status interstitial.
Plausible mechanism, unverified magnitudes
Confidence is moderate-low. The mechanisms - IP-derived currency, symbol stripped by parsers, cookie-converted catalogue prices, success-status interstitials, separator ambiguity - are specific, internally consistent and independently checkable in principle, which supports directional trust. But there is one publisher, one operator, no replication, no vendor comment, small samples behind every number, and a seller's incentive on the concluding recommendation.
build
Nobody chose retry-by-default, and the bill arrives as your customer's timeout1 distinct publisher
build
The eBay scraper defect that bills your customer: sponsored cards in organic markup1 distinct publisher
build
A #1 ranking only its author could see, and eleven days spent measuring the wrong end1 distinct publisher
build
The block happens in the ClientHello, which is why your header budget buys nothing1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 22, 2026