Run a list of ASINs. Know the cost before you run it.
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.
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.
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", "..."]
}'
{
"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.
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.