Skip to content
NewWatchlists, pulse sweeps and every offer

Amazon product data, 2,000 ASINs a call.

Hand us a list of ASINs and get a signed webhook when anything changes. Or call it yourself: sweep the catalogue on pulse for 0.25 credit an ASIN, then pay for the buy box, the full listing or every seller's offer only where something moved. Failed lookups are refunded; credits never expire.

  • No card required
  • No subscription
  • Amazon US, any ASIN

Example: a cURL call to the Scrapely Amazon Product API (pulse · 10,000 ASINs · 2 refunded), answered with status 200 in 9.86s for 2500 credits, returning product JSON.

Data teams at fast-moving companies collect the web with Scrapely

  • Halcyon
  • kestrel/data
  • ORDINAL
  • Fernwood
  • tidewater
  • Parallax Labs
  • BASALT
  • quarry.io
  • Meridian Grid
  • saltmarsh
  • Corvid
  • ARCLIGHT

10,000

ASINs per pulse call

2,000 on the other tiers

2,500

ASINs per upstream request

pulse; lite and standard 800, full 200

33 B

Raw data per ASIN

on pulse; standard is ~3 KB

0.25 credit

Per ASIN on pulse

partial and unavailable are refunded

Watchlists · the easiest way in

Hand us a list. Get webhooks when anything changes.

Give us ASINs, a cadence and a webhook URL. We sweep them on pulse, re-fetch what changed on standard, run full once for new ASINs, delist dead ones, and POST you a signed event for each. No scheduler, no diffing, no queue to run.

Watchlist docs
  • Any cadence from 5 minutes

    Every 5 minutes or once a day — up to every 7 days. We schedule, chunk and retry.

  • Pulse first, standard on change

    Every ASIN is swept on pulse; only what moved is re-fetched on standard, plus a standard pass every 8th run to catch seller swaps.

  • Full once for new ASINs

    Every ASIN gets one full fetch as its baseline, then joins the sweep.

  • Dead ASINs delisted

    When Amazon says an ASIN is gone, we tell you and stop paying for it.

  • Signed webhooks

    Every event carries an HMAC signature you verify with your webhook secret. Or pull changes any time.

  • Billed as the calls it runs

    No watchlist fee. You pay the pulse, standard and full credits it spends.

1 · create it once
curl -X POST "https://scrapely.15.204.158.166.sslip.io/v1/watchlists" \
  -H "Authorization: Bearer $SCRAPELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Kitchen catalogue",
    "asins": ["B0009KNLV6", "B074PVTPBW", "B08N5WRWNW"],
    "every": "15m",
    "webhook_url": "https://hooks.yourapp.com/scrapely"
  }'
2 · we POST this when something moves
// POST https://hooks.yourapp.com/scrapely
// Scrapely-Signature: t=1760623331,v1=5257a869e7…
{
  "type": "watchlist.product.changed",
  "data": {
    "watchlist_id": "wl_7Hq2xN4p",
    "watchlist_name": "Kitchen catalogue",
    "run_number": 412,
    "changes": [{
      "asin": "B074PVTPBW",
      "tier": "standard",
      "changes": {
        "price": { "before": 18.99, "after": 17.49 },
        "merchant": { "before": { "name": "Brightwell Supply", … },
                      "after": { "name": "Northline Goods", … } }
      },
      "snapshot": { "price": 17.49, "inStock": true, "isFba": true, … }
    }]
  }
}
  • product.changed

    Pulse saw a change; we re-fetched it on standard. Carries each field before and after.

  • product.delisted

    Amazon says the ASIN no longer exists. We stop sweeping it.

  • run.completed

    A run ended: what it checked, changed and delisted, and the credits it spent.

One ladder

Pay for the detail you need

Sweep everything on pulse for 0.25 credit an ASIN, then climb only where it pays: standard for what changed, full for what is new, every offer when you need the whole field, and an offer check right before you buy.

Per-ASIN pricing
  1. 01/v1/products · pulse

    Pulse

    0.25credit / ASIN

    Every sweep, every ASIN

    New-offer count and lowest new price, up to 10,000 ASINs a call. Did anything move?

  2. 02/v1/products · standard

    Standard

    3credits / ASIN

    Only what pulse saw change

    Buy-box price, stock, seller, condition and offer listing id. What exactly moved?

  3. 03/v1/products · full

    Full

    10credits / ASIN

    Once per new listing

    Images, attributes, variations, list price and reviews. Enough to build the listing.

  4. 04/v1/offers

    Offers

    5credits / ASIN

    When you need the whole field

    Every offer on the listing: seller and rating, price plus shipping, FBA, and which one holds the buy box.

  5. 05/v1/offers/check

    Offer check

    1credit / offer

    Right before you buy

    Is this exact offer still available to buy? Buyable, not buyable or unavailable. No price, and not a stock count.

What each /v1/products tier returns

Fields, cost and throughput of the pulse, lite, standard and full tiers, and the delivery add-on
Tier"pulse"Pulse0.25credit / ASIN"lite"Lite1credit / ASIN"standard"Standard3credits / ASIN"full"Full10credits / ASIN
ASINs per upstream request2,500800800200
Upstream time per request—7–9 s8–10 s4.5–6 s
Raw response per ASIN~33 B~0.2 KB~3 KB~30 KB
Fields returned
New-offer count & lowest new pricelowest new price = buy-box price ~92% of the time
Buy-box price
Availability type (IN_STOCK, OUT_OF_STOCK)
Fulfiller name & isFba
Availability message
Condition (NEW, USED, PARENT_ASIN)
Merchant id & name
Buy-box offer listing id
Title & description
Used offer count & min price
Refurbished & collectible offers
List (basis) price
Images, all variants
Attributes (brand, size, weight…)
Variation children
Binding
Review count & rating
Delivery datesinclude: ["delivery"] · +3 credits / ASINadd-onadd-onadd-onadd-on
Use it forSweeping the whole catalogue for change, as often as you likeBuy-box price and stock on every sweepRepricing an ASIN whose price or stock movedFirst scrape of a new ASIN, building a listing

Up to 10,000 ASINs per call on pulse and 2,000 on the other tiers; Scrapely chunks them into upstream requests and de-duplicates for you. Pulse reports offers, not the buy box: its lowest new price equals the buy-box price about 92% of the time. Timings were measured against Amazon US and drift through the day; pulse timings are still being measured. Sellers other than the buy-box winner come from /v1/offers. No tier returns feature bullets.

Every requested ASIN comes back exactly once, with a status.

  • okbilled

    Product returned cleanly. Use it.

  • partialrefunded

    A sub-field errored. Re-fetch at a higher tier.

  • not_foundbilled

    Amazon says the ASIN does not exist. Delist it.

  • unavailablerefunded

    Upstream failed. Retry later; not evidence it is dead.

Call strategy

Sweep on pulse. Spend where it moved.

Most of a catalogue does not change between sweeps. Watch everything at 0.25 credit an ASIN and spend standard, full and offer credits only on the ASINs that need them.

Recommended call strategy: run a pulse sweep across every ASIN each cycle, diff the new-offer count and lowest new price against the last sweep, and re-fetch only the changed ASINs on standard. Run full once for each new ASIN. Before acting on a listing, fetch every offer with /v1/offers and confirm the one you want is still buyable with /v1/offers/check. A watchlist runs the sweep and the new-ASIN lanes for you and sends webhooks.

Write back to marketplace listings from standard or full data, never from pulse alone. A watchlist runs the first two lanes for you →

Structured data

Skip the parser. Get typed JSON.

Send ASINs, get one typed record per ASIN back, in request order, with a status you can act on. Amazon is live today; Google, Walmart and eBay endpoints are next.

Live · Amazon Product API

Coming soon

  • Amazon SearchSoon
  • Google Search (SERP)Soon
  • Google ShoppingSoon
  • Walmart ProductSoon
  • eBay SearchSoon

POST/v1/products

{ "tier": "pulse", "asins": ["B0009KNLV6", …] }

New-offer count and lowest new price, ~33 bytes per ASIN. The cheapest way to sweep a whole catalogue for change.

0.25 credit / ASIN
{
  "asin": "B0009KNLV6",
  "status": "ok",
  "fetchedAt": "2026-10-15T14:02:11.482Z",
  "offers": { "newCount": 14, "newMinPrice": 4.74 }
}

scrapely.15.204.158.166.sslip.io/v1/products · sample values are illustrative

Pay as you go

Pay per ASIN, not per month

No recurring bill and no use-it-or-lose-it quota. Size a pack to your catalogue and sweep cadence; your balance waits for you between runs.

  • Buy credits once — they never expire
  • Partial and unavailable ASINs are refunded automatically
  • Every product and tier runs on the same credits
  • Bigger packs cost up to 63% less per credit
Compare every pack
10,000
10010K1M
Pulse sweep cadence
pulse sweep · standard on 5% changed

A month costs

$745.00

5 × Growth pack · 2.88M credits needed

ASIN checks / month
7.2M
Per 1,000 checks
$0.10
  1. Starter$10
  2. Builder$49
  3. Growth$149
  4. Scale$399
  5. Volume$1,499
Tune change rate, new ASINs, delivery and offer checks

Platform

The whole scraping stack, one parameter at a time

Every feature is available on every credit. Turn things on per request; pay only for what that request used.

Rotating proxy pools

Datacenter, residential and mobile IPs across 64 countries. The router learns which pool works for each site and rotates on every block — you never manage a list.

JavaScript rendering

render=true loads the page in a real headless browser and waits for the network to settle.

CAPTCHA & bot walls

Challenges are detected and cleared automatically. Hard targets go to the ultra-premium pipeline.

Geotargeting

See the page a shopper in Munich or Osaka sees. One parameter, residential IPs in-country, localised currency and results.

Async jobs & batches

Queue 10,000 URLs in one call. We schedule against your concurrency and retry what fails.

Amazon Product API

Up to 2,000 ASINs per call as typed JSON, in three tiers. Google, Walmart and eBay endpoints are coming soon.

Signed webhooks

Results pushed to your endpoint, HMAC-signed with replay protection, retried with backoff.

Scraping API

Everything between you and the page, handled

For every page that is not an Amazon product. Scraping at scale is mostly failure handling: Scrapely does the rotating, rendering and retrying, and shows you exactly what happened on every request.

  1. 01

    Send a URL

    One GET with your key and the page you want. Add render, premium or country_code only when a target needs them.

    GET /v1/scrape?url=…

  2. 02

    We get through

    The router picks a proxy pool that is working for that site right now, fingerprints a real browser, retries blocks on fresh IPs and validates what comes back.

    rotate · render · retry

  3. 03

    You get clean data

    HTML, Markdown, text or parsed JSON in the response. Only successful responses spend credits — the rest are refunded automatically.

    200 OK · 10 credits

Request trace · req_8KQ2v7mXcN200 OK

Your app

GET

Scrapely

route · retry

Target

any site

0 ms1384 ms
  • Authenticate

    key ok · 5 of 20 slots

    0 to 14 milliseconds
  • Route

    pool: us residential

    14 to 46 milliseconds
  • Attempt 1

    403 · bot wall

    46 to 520 milliseconds
  • Rotate

    new IP + fingerprint

    520 to 566 milliseconds
  • Attempt 2

    200 · 184 KB

    566 to 1062 milliseconds
  • Render JS

    headless · networkidle

    1062 to 1288 milliseconds
  • Parse

    autoparse → JSON

    1288 to 1346 milliseconds
  • Deliver

    gzip · 9.2 KB

    1346 to 1384 milliseconds

Total

1.38 s

Billed

10 credits

Attempt 1

free

For developers

Integrate in the time it takes to read this

Not everything is on Amazon. The Scraping API fetches any other page through rotating proxies and real browsers. Toggle a parameter and watch the request — and its price — change.

Full API reference
output_format
Cost per successful request1 credit
curl -G "https://scrapely.15.204.158.166.sslip.io/v1/scrape" \
  --data-urlencode "api_key=$SCRAPELY_API_KEY" \
  --data-urlencode "url=https://shop.example.com/p/aeron-chair"

Why credits

Built for how scraping actually happens

Crawls are bursty. Targets fail. Pricing should not punish either. Here is how Scrapely compares with the typical scraping API.

Billing
Scrapely: Credit packs, pay as you go
Typical APIs: Recurring subscription tiers
Unused balance
Scrapely: Credits never expire
Typical APIs: Resets at the end of each cycle
Failed requests
Scrapely: Always free — auto-refunded
Typical APIs: Often counted against quota
Features
Scrapely: Every feature on every credit
Typical APIs: Rendering & geo gated by tier
Concurrency
Scrapely: Grows with lifetime purchases
Typical APIs: Locked to the tier you pay for
Getting started
Scrapely: 5,000 free credits, no card
Typical APIs: 7-day trial, card up front
Overage
Scrapely: None — you only spend what you hold
Typical APIs: Surprise overage invoices

From the teams

Fewer pagers. Cleaner data.

What engineers say after they stop maintaining their own proxy fleets.

We replaced four proxy vendors and a fleet of headless boxes with one GET. Our nightly price crawl went from a babysat job to something nobody thinks about.
Priya RamanHead of Data Engineering, Halcyon
The credits model is the reason we switched. We scrape hard for two weeks around launches and barely at all otherwise — nothing resets, nothing is wasted.
Tomás IbarraFounder, quarry.io
Failed requests being free sounds like a footnote until you look at a retry-heavy target. Our effective cost per page dropped by a third.
Hannah OkaforStaff Engineer, Ordinal Research
Async jobs with signed webhooks let us push two million SERP lookups a day through a queue we never had to build.
Daniel WeissPlatform Lead, Meridian Grid
Geotargeting is just country_code=de. Our localisation QA used to need a VPN rota; now it is a test suite.
Lena FischerQA Manager, Tidewater
Docs that are actually correct, a dashboard that shows every request, and support that answers with a curl command. Rare.
Marcus ChenSenior Developer, Parallax Labs

FAQ

Questions, answered

Something else? Email — a developer will answer, usually within the hour.

How is the Amazon Product API billed?

Per unique ASIN, by tier: 0.25 credit on pulse, 1 on lite, 3 on standard, 10 on full, plus 3 for delivery dates. /v1/offers is 5 credits an ASIN and an offer check 1 credit an offer. Watchlists are billed as the calls they run. ok and not_found are billed; partial and unavailable are refunded automatically.

Where should I start?

With a watchlist: hand us the ASINs, a cadence and a webhook URL, and we sweep them on pulse, re-fetch what changed on standard, run full once for new ASINs and send you signed events. If you would rather run the loop yourself, call pulse on every sweep and standard on what changed. Pulse reports the lowest new price, which matches the buy box about 92% of the time — so act on standard data, not pulse.

Which marketplaces and products are supported?

Amazon US, for any ASIN — not only books. Up to 10,000 ASINs per pulse call and 2,000 on the other tiers. Delivery dates are an add-on; every seller's offer comes from /v1/offers.

Why did an ASIN come back not_found or unavailable?

not_found means Amazon itself says the product does not exist: delist it, do not retry. unavailable means Amazon or the network failed us after retries and splits; it is not evidence the ASIN is dead, it is free, and you should retry it later.

Is there a subscription or a minimum commitment?

Neither. Scrapely is pay-as-you-go. There is no recurring charge, no seat fee and no tier that locks features. Optional auto top-up refills your balance when it runs low — and you can switch it off at any time.

What do I get for free?

5,000 credits when you create an account, no card required — enough to pulse 20,000 ASINs, or fetch a few hundred full listings. The Scraping API runs on the same credits.

Can I scrape pages that are not on Amazon?

Yes. The Scraping API fetches any URL with rotating proxies, headless rendering and CAPTCHA handling, from 1 credit a page, and accepts the familiar api_key, url, render and country_code parameters. Google, Walmart and eBay structured endpoints are coming soon.

Is web scraping legal?

Collecting publicly available data is lawful in many jurisdictions, but it depends on what you collect and how you use it. Our acceptable use policy forbids scraping behind logins without authorisation, personal data misuse and abusive request rates. Ask your counsel about your specific case.

Your first 5,000 ASINs are on us

Create an account, copy your key, sweep your first ASINs. No card, no subscription, no expiry date on what you buy later.

POST scrapely.15.204.158.166.sslip.io/v1/products { "tier": "pulse", "asins": […] }