Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

Target Proxies: 2,163 Words Need the Browser

What rendering target.com adds, measured through residential exits: 317 words without JavaScript against 2,163 rendered on 26 September 2026, 416,892 bytes in 18.5 seconds plain against 1,905,846 bytes in 41.9 seconds rendered on 28 September, and the same 256 words from the United Kingdom as from the United States
What rendering target.com adds, measured through residential exits: 317 words without JavaScript against 2,163 rendered on 26 September 2026, 416,892 bytes in 18.5 seconds plain against 1,905,846 bytes in 41.9 seconds rendered on 28 September, and the same 256 words from the United Kingdom as from the United States

Target proxies are the one case in this series where the browser earns its bill. On 26 September 2026 target.com gave a plain HTTP client behind a United States residential exit 317 words; a headless browser got 2,163, 6.8 times more, the exact opposite of Best Buy, which sells the same categories and renders into one word fewer. On 28 September the plain fetch weighed 416,892 bytes and the rendered one 1,905,846, so the browser buys 6.8 times the words for 4.6 times the bytes. The exit country changes nothing in the page, a British exit got the same 256 words as an American one, but the page state assigns every visitor a store and a ZIP from the IP alone, and that assignment is what a Target proxy actually selects.

The render multiplies Target by 6.8, the opposite of Best Buy

We audited the home with the tool in our MCP server, which fetches once as a pure HTTP bot and once fully rendered and counts the words in each view, then weighed both fetches two days later.

FetchDateExitStatusWordsBytesSeconds
Plain HTTP, no JavaScript26 SeptemberUnited States200317n/an/a
Rendered in a browser26 SeptemberUnited States2002,163n/an/a
Plain HTTP, no JavaScript28 SeptemberUnited States200256416,89218.5
Rendered in a browser28 SeptemberUnited States200n/a1,905,84641.9
Plain HTTP, no JavaScript28 SeptemberUnited Kingdom200256n/an/a

The plain page is not empty, and that matters for how you classify it. It has the title "Target : Expect More. Pay Less.", a canonical of https://www.target.com/, an h1 that literally reads "Homepage", a WebPage JSON-LD block and a robots tag of index, follow. It is a Next.js application shell with the navigation and the section headings server-rendered and every product tile left for the client. Best Buy ships the same kind of shell and then adds nothing in the browser; Target ships the shell and then adds 1,846 words of merchandising, deals and category rails. Two retailers, one category, and the measurement points in opposite directions. That is the reason a page per target exists: the network is the same residential exit in both cases, and the right fetch mode is decided by the site, not by the proxy.

Read the bytes column with the words column. The browser costs 4.6 times the bytes and 2.3 times the seconds to deliver 6.8 times the words, so on Target the render is the cheaper way to get a word, at 881 bytes per word against 1,315 for the plain fetch. That arithmetic only holds because the words you want are the ones JavaScript loads; on Walmart the render costs 7.5 times the bytes for 1.4 times the words and the arithmetic goes the other way.

The same 256 words from London and from Chicago, and a store nobody chose

Row five is the geo result, and it is a null one: a United Kingdom residential exit got the same 256-word page as the United States exit, same title, same canonical, same JSON-LD. Target does not localise its front door by country and does not redirect a foreign visitor anywhere. For a country-level job, that means the exit is not a lever.

The lever is one level down, and it is visible in the page without executing it. Target's server-rendered state carries the visitor's assignment: our fetch from a US exit was given store_id: 3991 and a nearby-stores query for place: 61486, a ZIP code, before any cookie existed and before any script ran. The same state carries isBot: false and is_seo_bot: false, which is Target telling you how it classified your client. Nothing in our request said where we were; the exit IP did, and Target turned it into a store. On product pages, that store decides the price shown, the pickup availability and the delivery promise. So a Target proxy is not a country selector, it is a store selector, and a rotating pool that drifts across ZIPs mid-crawl produces rows whose price belongs to one store and whose availability belongs to another. Hold a sticky exit while a crawl is scoped to a store, and write the store id from the page state into every row, because it is the only honest key for the price you captured.

Rendering through the API costs half of rendering through the pipe

Prices from our pricing page: residential Basic $0.80/GB, and the web scraping API from $0.0002 per page, or $0.001 with rendering. A gigabyte here is 10^9 bytes.

ApproachBytes per pagePages per GBWords per pageCost per 1,000 pages
Plain HTTP, residential US, $0.80/GB416,8922,398317 (26 September)$0.33
Rendered, residential US, $0.80/GB1,905,8465242,163 (26 September)$1.52
Web scraping API, engine tlsn/an/a317$0.20
Web scraping API with renderingn/an/a2,163$1.00

The row to read is the last one against the second. Rendering Target through raw residential bandwidth costs $1.52 per thousand pages at 1.9 MB a page; rendering it through the API costs $1.00, because the API bills per page and not per byte, and a 1.9 MB page is exactly the kind of page that per-byte pricing punishes. On Target, the setting is rendered, and the cheaper way to render is the API. Per word, the rendered API page costs $0.00046 per thousand words and the plain one $0.00063: the browser is the bargain here, which it is on none of the other five retailers in this series.

There is no Target collector in our catalogue. For a cross-retailer price check on the same product, product_offers returns every seller offer for a product at $0.002 per delivered offer, and google_shopping returns priced listings per query. For the Target page itself, the web scraping API with rendering is the job, and if the page you need is a product page, hold the store.

Target's robots.txt closes search and names no AI bot

target.com/robots.txt is 3,226 bytes, last modified on 8 July 2026. Six gzipped sitemap indexes come first: keywords, stores, taxonomy categories, product pages, brands and facet categories. The wildcard rules then close search (/s?), product lists under /pl/, /shop/, the cart, accounts, tracking and review submission, and carry a long tail of legacy paths from earlier platforms. No AI crawler is named and there is no Allow line: the file is a plain exclusion list and product pages under /p/ are not in it.

The Terms & Conditions page is the honest example of what a raw client sees on this site: fetched over plain HTTP it returned 200 and 130 words, all of them navigation and footer, because the terms themselves are loaded by the same client-side orchestration as the products. The seller portal, Target Plus, is more direct: it returns one sentence telling you to enable JavaScript. Target runs a marketplace for approved sellers with its own partner tooling, and that, not a public catalogue API, is the licensed route to Target data. Three of the ten pages ranking for this keyword are about restock monitoring and automated checkout for collectible card drops; we do not help with automated purchasing, and a proxy does not change how a retailer treats a bot at checkout, because that decision is made on behaviour, not on the address.

The setting that works on Target

  • Network: residential, Basic line at $0.80/GB, sticky while a crawl is scoped to a store. Every fetch in this post went through it, one attempt each.
  • Fetch mode: rendered. 2,163 words rendered against 317 without JavaScript on 26 September, 6.8 times more, at 1,905,846 bytes against 416,892.
  • Country: country: "us", and expect no change from any other: a United Kingdom exit got the same 256 words. What the exit does change is the store Target assigns; ours was store 3991 for ZIP 61486, from the IP alone. Pin the exit near the store whose prices you want and hold it.
  • When the proxy is not enough: the web scraping API with rendering at $0.001 per page, which is $1.00 per thousand against $1.52 for the same render over raw bandwidth. For offers across retailers, product_offers at $0.002 per delivered offer.
  • Free tier: every account gets $2 of free API usage per month, which is 2,000 rendered Target pages.

Sources & further reading

FAQ

Quick answers on target proxies.

Something else? Ask us →

Do I need a headless browser for target.com?

Yes. On 26 September 2026 the home gave a plain HTTP client 317 words and a browser 2,163, 6.8 times more, because Target ships a Next.js shell and loads every product tile on the client. Best Buy, in the same category, renders into 284 words from 285. Measure per site; the network was the same residential exit in both cases.

Does the exit country change what Target returns?

Not the page. On 28 September 2026 a United Kingdom residential exit received the same 256-word page as a United States one, with the same title, canonical and JSON-LD. What the exit changes is the store: Target’s page state assigned our US visitor store_id 3991 and ZIP 61486 from the IP alone, and the store decides price and availability on product pages.

How much does rendering Target cost per 1,000 pages?

$1.52 over residential bandwidth at $0.80/GB and 1,905,846 bytes per rendered page, counting a gigabyte as 10^9 bytes, or $1.00 through the web scraping API at $0.001 per rendered page. The plain fetch costs $0.33 per thousand but returns 317 words instead of 2,163. Every account gets $2 of free API usage per month.

Should a Target proxy rotate on every request?

Not while a crawl is scoped to a store. Target assigns a store and a ZIP from the exit IP before any cookie exists, so a pool that drifts across ZIPs produces rows whose price came from one store and whose availability came from another. Hold one sticky exit per store scope and write the store id from the page state into every row.

Does Target block AI crawlers in robots.txt?

No. The file, 3,226 bytes and last modified 8 July 2026, names no user agent at all: it is a single wildcard exclusion list closing search, product lists, cart and account paths, plus 6 gzipped sitemap indexes. Product pages under /p/ are not excluded. The Terms & Conditions page itself is client-rendered and gives a raw client 130 words of navigation.

Render the site that repays it, and only that one

One rendered fetch returned 6.8 times the words of the plain one on Target, and one word fewer on Best Buy. Every account gets $2 of free API usage each month, and failed requests are never billed.

Related reading