Amazon Scraper API vs Proxy: Choose a Product Data Source
Distinguish authorized Amazon APIs, licensed product data and proxy-based page checks by record quality and access rights.
Read guide →Separate Australian egress from en-AU content, AUD pricing, GST display, postcode validation and the state delivery context.
Choose an Australian proxy around the state delivery or market result you need. A route may provide an Australian exit while the target keeps a US account, USD pricing, or a delivery form outside Australia. Australia also has state and territory delivery contexts, so a country-only check can hide the failure that matters to the job.
Choose a product against the Australian job, including the state delivery result, before comparing headline rates. Use these fields for both offers in a shortlist.
| Offer field | Buyer acceptance condition |
|---|---|
| Current AU and city entitlement | The exact account includes AU and Sydney or Perth when the job requires that city |
| Residential definition and sourcing | Documented network class; do not pay for mobile or city targeting unless the test needs it |
| Session and replacement rules | One route can cover the required product, delivery and cart sequence |
| No-match behavior | A missing city is reported distinctly or uses only a fallback you explicitly accept |
| State delivery result | The target records the requested NSW or WA destination and the required eligibility, charge or delivery window |
| Workload and billing terms | Permitted target, traffic unit, retry charges, minimum purchase and expiry support the planned sample |
For a hypothetical Perth freight check, prefer an AU offer with suitable session continuity over a Sydney-only rotating offer when the target chooses freight by delivery address. If the job also requires Perth network egress, neither a country-only entitlement nor a browser timezone setting satisfies it. Compare the cost of complete delivery records, including failed attempts, before paying for greater location precision.
Use AU as the ISO 3166 country field and AUD as the ISO 4217 currency field. Use en-AU when the workflow requires Australian English and select an IANA timezone for the requested location, such as Australia/Sydney or Australia/Perth. The timezone belongs to the browser context; it is not evidence that the proxy exit is in that city.
Australia Post's addressing standard describes a postcode as a four-digit numeric descriptor for a delivery area and places it on the last address line after the state or territory. The Australian Taxation Office describes GST as 10% on most goods and services sold or consumed in Australia. Record the target's tax display rather than adding GST to a price that may already include it or may be outside the relevant supply conditions.
For a price or catalog buyer, compare a named state fixture instead of one generic “Australia” row:
| Requirement | Example Australia fixture | Pass condition |
|---|---|---|
| Country exit | requested_country=AU |
A dated lookup reports AU and retains source and uncertainty |
| State and city | requested_state=NSW, requested_city=Sydney or WA, Perth |
The observed city or accepted metro matches the stated rule |
| Browser context | locale=en-AU, location-specific timezone |
The browser uses the intended locale and clock inputs |
| Delivery | Authorized Australian address with a four-digit postcode | The target accepts the selected state or territory context |
| Offer record | currency=AUD, amount, GST display, final URL |
Values come from the target observation, not from a provider claim |
For a hypothetical Sydney dispatch-cutoff test on an owned storefront, fix an NSW destination and capture times on either side of the merchant's declared local cutoff using Australia/Sydney. Accept when the delivery-window message changes according to that declared rule while SKU and destination remain fixed. Record UTC timestamps so the timing comparison is reproducible.
For a Perth freight-eligibility check, keep the same SKU but select an authorized WA address and Australia/Perth. Require the target's WA eligibility decision, freight charge or explicit refusal, and AUD/GST display. A default NSW shipping estimate fails the observation even with an AU exit. These are hypothetical test designs, not claims that a retailer has a particular cutoff or ships to either state. Buy city-level egress only when it is an additional requirement of the test.
Playwright supports proxy configuration when a browser context is created and exposes locale and timezone emulation. This example uses httpbin's /ip response contract to record the observed exit. It does not inspect an Australian retailer or prove residential classification.
import asyncio
import json
import os
from playwright.async_api import async_playwright
async def main():
user, password = os.getenv("PROXY_USER"), os.getenv("PROXY_PASSWORD")
if bool(user) != bool(password):
raise ValueError("Provide both proxy credentials or neither")
proxy = {"server": os.environ["PROXY_SERVER"]}
if user:
proxy.update(username=user, password=password)
async with async_playwright() as playwright:
browser = await playwright.chromium.launch()
try:
context = await browser.new_context(
proxy=proxy, locale="en-AU", timezone_id="Australia/Sydney"
)
try:
page = await context.new_page()
response = await page.goto("https://httpbin.org/ip", timeout=20000)
if response is None or response.status != 200:
raise RuntimeError("IP echo failed")
payload = json.loads(await page.locator("body").inner_text())
origin = payload.get("origin")
if not isinstance(origin, str) or not origin:
raise RuntimeError("IP echo did not return origin")
print({"observed_exit": origin, "locale": "en-AU", "timezone": "Australia/Sydney"})
finally:
await context.close()
finally:
await browser.close()
asyncio.run(main())
The navigation timeout is 20,000 milliseconds (20 seconds).
Keep PROXY_SERVER, PROXY_USER, and PROXY_PASSWORD in the approved secret store or environment binding. Do not place them in a URL, source file, screenshot, or CI log. Compare the observed address with a named, dated geolocation or ASN lookup. MaxMind explains why city-level IP data needs an uncertainty field.
After the IP check, request the permitted target in the same context. Keep the product or variant ID, account state, device, state, postcode and capture window fixed. Record observed_exit_country, observed_city, browser_locale, timezone, delivery_country, delivery_state, delivery_postcode_valid, currency, amount, gst_display, and final_url.
An AU exit with a US delivery country and USD price is not an Australian offer. An en-AU page with AUD pricing can still reject the requested state or use an account-specific shipping rule. A redirect to login, an unavailable product, or a missing GST line is an observed outcome to classify, not an invitation to invent a total or repeat the request until it looks local.
Residential, datacenter and mobile routes represent different procurement decisions. Choose residential when the target or acceptance rule requires an end-user network class and the supplier documents its sourcing. A datacenter route can fit a server-side Australian job when residential identity is not required. Mobile is a separate product with its own inventory and terms; an AU residential selector does not satisfy it. Compare the options in the residential versus datacenter guide and mobile and ISP guide.
For a Sydney or Perth delivery workflow, hold one session while checking the product, state and postcode fields. Rotate only when a fresh exit is part of the test, and record whether the route change also changed the page, currency or delivery outcome. The rotation and sticky-session guide shows how to keep that variable visible.
Set the budget in job units: transferred traffic, attempts, retries and accepted records, with minimum purchase or expiry terms beside them. The residential buying guide and cost-per-successful-request guide keep an Australian quote tied to useful output rather than the lowest headline number.
Distinguish authorized Amazon APIs, licensed product data and proxy-based page checks by record quality and access rights.
Read guide →Connect a buyer-owned proxy to an Apify Actor, keep the session boundary clear, and validate records instead of counting requests.
Read guide →Choose built-in versus custom Browser Use routing, check plan requirements, and validate the agent output against the browser network path.
Read guide →