Introduction
Scrapely returns product, price and stock data from the retailers you sell on — one API, one response shape, pay per item — and turns any other URL into clean HTML, Markdown, text or JSON.
Scrapely returns product, price and stock data from the retailers you sell on — one API, one response shape, pay per item — and turns any other URL into clean HTML, Markdown, text or JSON.
What Scrapely does
Send a platform and its item ids; get product, price and stock data back in one response shape, whichever retailer it came from. For any other page, send a URL and get the page back. You pay per item or per page that came back: failed lookups are free.
Product data —
POST /v1/productswithplatform,marketplaceandidsreturns title, price, stock, seller and more for each item, in the same shape on every platform. Live: Amazon (US), Walmart (US), Target (US) and Best Buy (US). Coming soon: Google, eBay and AliExpress.Watchlists — hand us item ids on any live platform, a cadence and a webhook URL, and get a signed event when anything changes. See Watchlists.
Scraping API —
GET /v1/scrape?url=…returns the page synchronously. ScraperAPI-compatible parameters, so existing code repoints by changing the host.Async jobs — queue a scrape, get a job id, and receive a signed webhook (or poll) when it finishes. Jobs wait for capacity instead of failing.
Batches — up to 10,000 URLs with shared options in one call.
Structured data (coming soon) — search and product pages as typed JSON.
Base URL
All endpoints live under one versioned root. Breaking changes ship as a new version; additions (new fields, new endpoints) do not.
https://api.scrapely.dev/v1Your first request
Every new account gets 5,000 free credits. A standard request costs 1 credit.
cURL
curl "https://api.scrapely.dev/v1/scrape?api_key=YOUR_API_KEY&url=https://example.com"Python
import requests
r = requests.get(
"https://api.scrapely.dev/v1/scrape",
params={"api_key": "YOUR_API_KEY", "url": "https://example.com"},
timeout=70,
)
print(r.json()["content"])Node.js
const params = new URLSearchParams({ api_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.scrapely.dev/v1/scrape?${params}`);
const { content } = await res.json();
console.log(content);Next: Authentication, then the Quickstart for rendering, geotargeting and async jobs.
Conventions
Parameters are
snake_case. GET takes them in the query string; POST takes the same names as JSON or a form.Timestamps are ISO-8601 UTC. Ids are prefixed by type:
job_,batch_,req_,evt_.Every response carries
X-Request-Id. Quote it to support.Errors are always
{ "error": { "code", "message", "param", "docs" } }. Branch oncode. See Errors.The full machine-readable spec is at
/v1/openapi.json(OpenAPI 3.1) and rendered in the API reference.