Amazon bulk product data API

Run a list of ASINs. Know the cost before you run it.

10,000 ASINs per batch Free pre-run estimate CSV & JSONL out Daily / weekly / monthly Or no code at all

Submit a list of ASINs or Walmart item IDs and get product records back as CSV or JSONL, through the API or by uploading a file in your dashboard. Ask for an estimate first and we will tell you how many rows come from the warehouse, how many need a scrape, and what the run costs, before anything is billed.

API key = 500 free credits · No card · Estimates are always free · Failed, not-found and not-tracked rows are never billed

Price the job first.

A live-scrape vendor cannot quote a batch before running it, because running it is the quote. We hold the warehouse, so the split is a lookup. Post your list to /v1/batch-estimate and nothing is billed.

Request
curl -X POST https://api.logimu.com/v1/batch-estimate \
  -H "Authorization: Bearer $LOGIMU_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "country": "us",
        "mode": "auto",
        "max_age_days": 30,
        "asins": ["B07FZ8S74R", "B0BDHWDR12", "..."]
      }'
Response
{
  "country": "us",
  "mode": "auto",
  "max_age_days": 30,
  "rows_submitted": 5000,
  "rows_valid": 4981,
  "rows_invalid": 12,
  "rows_duplicate": 7,
  "tracked": 4402,
  "not_tracked": 579,
  "fresh_within_max_age": 3810,
  "stale": 592,
  "estimated_credits_max": 3076.5,
  "estimated_live_rows": 1171,
  "estimate_valid_minutes": 60,
  "billing_note": "Upper bound: failed, not-found
    and not-tracked rows are never billed.
    Cached rows 0.5 credits, live rows 1.0.",
  "age_histogram_days": { "0": 214, "1": 388, ... }
}

Field values above are illustrative of the response shape. The estimate is an upper bound and holds for 60 minutes. The age histogram lets you re-price a different max_age_days client-side without asking again.

Live demo · this page queries the production API in real time

The same warehouse a batch reads from. Try it.

A batch is this engine run over a list instead of one query. Search, then click any product for its full history — price and rank over time, every seller on the listing, and who has held the buy box.

Live responses from our production warehouse — observed snapshots, not Amazon's live feed. Demo is limited to 30 searches per hour per visitor and two products per group; the API itself returns more, with full facets and filters. Get a free API key (500 credits, no card).

Every submitted row comes back, with a state.

Silently dropping a row from a billed batch is the worst thing a bulk API can do, so we do not do it. If you send 10,000 lines you get 10,000 rows, each carrying what happened to it.

Row state What it means Credits
ok A product record, with the observation timestamp and age on the row. 0.5 from the warehouse, 1.0 scraped
stale_skipped Tracked, but our copy is older than the max_age_days you set, and you asked for cache mode. Never quietly upgraded to a scrape. 0
not_tracked We do not hold this product. Our warehouse is broad but it is not a mirror of Amazon's full catalog, so this row is a real outcome, not an error to hide. 0

Freshness fields are default columns, not an opt-in. Every row states when it was observed and how old that is, so a warehouse read is never mistaken for a fetch made just now.

Three freshness modes, one parameter.

cache

Warehouse only. Rows older than your max_age_days come back as stale_skipped rather than being scraped. The cheapest way to sweep a large list, and the split is knowable in advance.

live

Scrape every row. Use it when you need the listing as Amazon serves it right now and the age of our copy is not good enough. Walmart batches are warehouse-only and reject this mode.

auto

The default. Rows fresh enough for your threshold serve from the warehouse; the rest are scraped. This is where the pre-run estimate earns its keep, because the price depends on the split.

Modes and max_age_days are the same freshness semantics as a single /v1/product call — a batch just carries them for a list. Nothing new to learn.

You do not have to write any code.

Everything below is in the dashboard as well as the API. Upload a CSV, read the estimate, run it, watch it, download the result.

Upload a file

Drop a CSV or a plain text list of ASINs into the new-batch form. Name it, pick the marketplace and the freshness mode, and it is saved as a batch you can re-run later.

See the price first

The form returns the estimate before you commit: how many rows are already in the warehouse, how many need a fresh lookup, and the credit cost. Nothing is billed until you start the run.

Watch it and collect it

The run page updates as rows complete, so you can download partial results while it is still going. Finished runs stay downloadable as CSV or JSONL for 30 days.

Schedules, mode changes and deletion are all dashboard controls too. The API exists for the jobs you want to automate, not because it is the only way in.

What a batch can do.

  • Up to 10,000 ASINs per product batch, or up to 500 search terms per search batch, 1 to 3 pages each
  • CSV in, CSV or JSONL out, with the columns you pick, uploaded in the dashboard or posted to the API
  • Named and re-runnable — a batch is a saved list, not a one-shot job
  • Daily, weekly or monthly schedules on any saved batch
  • Download, email or webhook delivery — completion emails carry per-run links, webhooks are HMAC-SHA256 signed
  • Resumable runs and partial download while a run is still going
  • Results retained 30 days, each run its own numbered result set
  • A spend guard — if a run overruns its estimate past your ceiling it pauses and emails you rather than spending on
  • 11 Amazon marketplaces plus Walmart US, priced the same everywhere
  • Optional extras — attach the observed featured-review set to product rows

No batch surcharge.

A row in a batch costs what the same row costs on its own. There is no per-job fee and no minimum.

Served from the warehouse, within your max age 0.5 credits
Scraped live 1.0 credits
Not tracked, or the scrape failed 0 — never billed

Credit packs and monthly plans are on the pricing page. Start with 500 free credits and no card.

What this is good for.

Catalogue re-verification

Re-check a supplier list or a competitor's catalogue on a schedule and diff the runs. Set a max age that matches how often the answer actually changes and most rows never need a scrape.

Sourcing shortlists

Take a few thousand candidate ASINs down to the ones worth a closer look, with price, stock, seller count and buy-box holder on every row.

Backfilling a dataset

Fill a product table you already have. The estimate tells you what the gap costs before you commit to it, and untracked rows come back labelled rather than missing.

Coverage note: the warehouse covers Amazon's best-seller product universe across 11 marketplaces and excludes media products (books, music, video). Products outside it come back as not_tracked and cost nothing. We are working on extending coverage to media and beyond the best-seller range.

Find out what your list costs.

Estimates are free and never billed. Get a key, post your ASINs, and read the split before you spend anything.