Getting started
Everything you need for your first successful request: how to authenticate, what a response looks like, and how limits work.
Authentication
Every request must carry your API key in the x-api-key header. Create and manage keys in the dashboard. Keys are shown once at creation – store them in a secret manager, never in client-side code.
x-api-key: dk_live_xxxxxxxxxxxxxxxxxxxxxxxxBase URL: https://api.everydata.io. All endpoints are served over HTTPS in production.
Your first request
Fetch an Amazon product page. Pass the full product URL – the marketplace is derived from the domain. We recommend appending ?psc=1 so the exact variation is loaded.
curl "https://api.everydata.io/amz/amazon-lookup-product?url=https%3A%2F%2Fwww.amazon.com%2Fdp%2FB0B17BYJ5R%3Fpsc%3D1" \
-H "x-api-key: YOUR_API_KEY"Response envelope
Every JSON response starts with two fields you can rely on for routing and monitoring, followed by the endpoint-specific payload. Paged endpoints add currentPage, nextPage and lastPage.
{
"responseStatus": "PRODUCT_FOUND_RESPONSE",
"responseMessage": "Product successfully found!",
"productTitle": "…",
"asin": "B0B17BYJ5R",
"price": 12.99
}Error codes
Errors use the same envelope, wrapped in FastAPI's detail object.
{
"detail": {
"responseStatus": "PRODUCT_NOT_FOUND",
"responseMessage": "Product not found"
}
}| HTTP | responseStatus | Meaning |
|---|---|---|
| 200 | PRODUCT_FOUND_RESPONSE / PAGE_FOUND | Success. Payload follows the envelope fields. |
| 400 | PARAMETER_ERROR | A required parameter is missing or malformed. |
| 401 | UNAUTHORIZED | Missing or invalid x-api-key header. |
| 403 | FORBIDDEN | Key is revoked or not allowed to access this endpoint. |
| 404 | PRODUCT_NOT_FOUND | The target page exists but no product/listing could be found for the given parameters. |
| 429 | RATE_LIMITED / QUOTA_EXCEEDED | Per-minute rate limit or monthly quota exceeded. Retry after the window resets or upgrade your plan. |
| 502 | BLOCKED | The target site blocked the request. Retry – not counted against your quota. |
| 503 | UPSTREAM_ERROR | The target site could not be fetched. Retry – not counted against your quota. |
Rate limits & quota
Two limits apply per account: a per-minute rate limit (10 – 750 requests/minute depending on plan) and a monthly request quota. Both are shared across all platforms and all keys of your account. When a limit is hit, the API responds with 429. Rate-limit responses include a Retry-After hint; quota resets on the first day of the next billing period.
Requests that fail with 5xx because a target site could not be fetched are not counted. See pricing for the limits of each plan.
Caching
Responses are realtime by default. Where speed matters more than freshness, many endpoints accept cacheTtl (seconds) or withCache=true to allow a recent cached copy. Cached responses still count as one request.
Next: browse the full API reference.