Nimbryxo Studio

Use Amazon All Offers & Buy Box Tracker with Python

Collect every seller offer for Amazon ASINs you supply - condition, price, seller name and rating, shipping terms, delivery estimate, and which offer currently holds the buy box.

1. Choose the data you need

Review the published README for supported collection modes, examples, and limits. The recipe below uses the current published input definition.

2. Prepare a source-based input

This JSON contains published prefills and required-field defaults. Review every value for your task before running it; it is not a promise of successful collection.

{
  "asins": [
    "B0DXXYS4BJ"
  ],
  "conditions": "ALL",
  "deliveryCountry": "US",
  "fulfillmentTypes": [],
  "maxOffersPerProduct": 5,
  "postalCode": "10001",
  "productUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Download input.example.json and save your reviewed copy as input.json.

FieldTypeRequiredDescription
asinsarrayrequiredAmazon ASINs to fetch offers for, e.g. `B0DCH8VDXF`.
productUrlsarrayoptionalFull Amazon product URLs (any `/dp/{ASIN}` link). The marketplace domain and ASIN are both extracted from each URL.
conditionsstringoptionalOnly emit offers of this condition. Amazon's offer panel surfaces 4 distinct condition buckets -- New, Used, Collectible, and Renewed (Amazon Renewed program) -- each matched exactly ("Used only" never silently includes Collectible/Renewed offers).
fulfillmentTypesarrayoptionalOnly emit offers with this fulfillment type. Derived from Amazon's own explicit "Ships from"/"Sold by" labels: FBA (Fulfilled by Amazon -- ships from Amazon, sold by a third-party seller), AMAZON (sold and shipped by Amazon itself), FBM (Fulfilled by Merchant -- the seller ships it themselves). Leave empty for no filter. Offers where the fulfillment type couldn't be confidently derived are excluded whenever a filter is set (but still included when this filter is empty).
maxOffersPerProductintegeroptionalHard cap on the number of offer records emitted per ASIN (the buy-box/pinned offer counts as one).
deliveryCountrystringoptional2-letter destination country. Offer sets are destination-dependent; also selects the default marketplace domain for bare ASINs (ignored when `productUrls` supplies its own domain).
postalCodestringoptionalDestination postal code to refine delivery estimates. Optional.
proxyConfigurationobjectoptionalUses the free AUTO (datacenter) proxy group by default. Some marketplaces (e.g. amazon.co.uk, amazon.de) drop datacenter connections outright, so the actor fast-fails a network-level timeout on a target and automatically retries it once under a RESIDENTIAL session -- a bounded fallback, never the default.

3. Start an Actor run

Set APIFY_TOKEN in your environment. Python 3.10 or newer is sufficient; this recipe uses no third-party packages.

Execution may incur charges. Review current pricing on Apify. The request asks for a 120-second timeout and a charge limit; these settings are subject to Apify’s pricing and do not guarantee an all-inclusive spending cap.

import json
import os
import urllib.request

# Save the schema-derived example as input.json; review and edit it first.
with open("input.json", encoding="utf-8") as stream:
    actor_input = json.load(stream)

token = os.environ["APIFY_TOKEN"]
request = urllib.request.Request(
    "https://api.apify.com/v2/acts/XjOVCjhbnY2TsHduO/runs?timeout=120&maxTotalChargeUsd=0.50",
    data=json.dumps(actor_input).encode("utf-8"),
    headers={"Authorization": "Bearer " + token, "Content-Type": "application/json"},
    method="POST",
)
# This starts a potentially billable run. Do not automatically retry this POST.
with urllib.request.urlopen(request, timeout=40) as response:
    run = json.load(response)["data"]
print("Run ID:", run["id"])
print("Status:", run["status"])
# Inspect and download results in Apify Console once the run succeeds.

4. Inspect the actual results

Open the run in Apify Console and wait for a successful completion. Use the published output schema to locate results and the dataset schema to understand declared views. Missing or optional record fields must not be treated as guaranteed values.

Per-seller offers for scraped Amazon ASINs -- condition (+ seller-provided condition note on used offers, e.g. "A bright, square, and overall a nice copy"), price, seller name/rating, ships-from, delivery estimate, fulfillment type (FBA/FBM/AMAZON, when derivable), free-delivery flag/shipping price (when the delivery text gives explicit evidence either way), and buy-box winner flag.

Questions before you run

Which inputs are required?

The published required fields are asins

What does this guide verify?

The fields, prefills, and schema links are rendered from the published build. This is a usage recipe, not a paid live extraction test. Source availability and collection results can vary.

What if the run request times out?

Check Apify Console before retrying. The first request may already have created a run. Do not automatically repeat a run-creation POST.

Generated from source build Vw92ArgIhYsmbT25L and its README and schemas. Source changes regenerate this guide; no third-party editorial claims are inferred.