Skip to content
Screaming Data
Documentation menu

Guide

Getting started

Six short steps from zero to production-ready product data. Examples are in cURL, Python and JavaScript — pick your language once and every example follows.

1. Request access

Every request is authenticated with your API login and an API key. Accounts are set up on request:

  1. Request access — tell us what you are building, your expected monthly volume and the marketplaces you need.
  2. We set up your account — we reply with a quote for your volume (see the list prices), create your account and e-mail you a secure one-time link to your API login and first API key (the key itself is never sent by e-mail).
  3. Call the API — store the credentials safely and make your first request, as shown below.

2. Store them safely

Keep the key on your server — never in browser or mobile app code. The examples in these docs read the credentials from two environment variables:

Shell
export API_LOGIN="your-login"
export API_KEY="sd_live_…your key…"

3. Make your first request

The quickest way to see data is live: one request, one result, typically within a few seconds ($0.0040 per request at list price; every response reports the exact cost).

curl --request POST \
  --url "https://api.screamingdata.dev/v1/amazon/product/live" \
  --user "$API_LOGIN:$API_KEY" \
  --header "Content-Type: application/json" \
  --data '[
  {
    "asin": "B0EXAMPLE1",
    "marketplace": "com",
    "max_age_minutes": 60
  }
]'

4. Read the response

Every endpoint answers with the same envelope. The fields you will use most:

  • status_code — 20000 means the request succeeded. Each task has its own status_code too; see Status codes.
  • cost — exactly what the request cost in US dollars.
  • tasks[0].result[0] — the product object: title, byline, variants, price, Best Sellers Rank, rating and the label → value pairs of details.
Response
{
  "version": "1.0.0",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "3.8342 sec.",
  "cost": 0.004,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "09241241-1d5e-4c8a-a3f0-9e2b7c6d5a14",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "3.8120 sec.",
      "cost": 0.004,
      "result_count": 1,
      "path": [
        "v1",
        "amazon",
        "product",
        "live"
      ],
      "data": {
        "api": "amazon",
        "function": "product",
        "asin": "B0EXAMPLE1",
        "marketplace": "com",
        "max_age_minutes": 60
      },
      "result": [
        {
          "asin": "B0EXAMPLE1",
          "marketplace": "com",
          "url": "https://www.amazon.com/dp/B0EXAMPLE1",
          "observed_at": "2026-09-24T12:41:07Z",
          "status": "ok",
          "title": "Acme Wireless Noise Cancelling Headphones, Black",
          "byline": [
            "Acme"
          ],
          "variant": "Black",
          "variants": [
            {
              "name": "Black",
              "asin": "B0EXAMPLE1"
            },
            {
              "name": "White",
              "asin": "B0EXAMPLE2"
            },
            {
              "name": "Navy Blue",
              "asin": "B0EXAMPLE3"
            }
          ],
          "price": {
            "amount": 59.99,
            "currency": "USD"
          },
          "bsr": {
            "rank": 1432,
            "category": "Electronics",
            "subcategories": [
              {
                "rank": 12,
                "category": "Over-Ear Headphones"
              },
              {
                "rank": 31,
                "category": "Noise-Cancelling Headphones"
              }
            ]
          },
          "rating": 4.5,
          "ratings_count": 2318,
          "image_url": "https://m.media-amazon.com/images/I/example._AC_SL1500_.jpg",
          "details": {
            "brand": "Acme",
            "color": "Black",
            "connectivity_technology": "Wireless",
            "date_first_available": "March 4, 2025",
            "item_model_number": "AC-WH400",
            "item_weight": "8.8 ounces",
            "manufacturer": "Acme",
            "product_dimensions": "7.3 x 6.5 x 3.1 inches"
          },
          "parser_version": "2026.09.2"
        }
      ]
    }
  ]
}

5. Scale up with batch tasks

For many products, post tasks instead: up to 100 per request at $0.0015 each (list price). Collect results with tasks_ready and task_get, or add a postback_url and let the API deliver them — see Webhooks.

# 1. Post a task and keep its id (jq reads it from the response)
TASK_ID=$(curl -s -u "$API_LOGIN:$API_KEY" \
  -H "Content-Type: application/json" \
  -d '[{"asin":"B0EXAMPLE1","marketplace":"com","tag":"catalog-sync"}]' \
  https://api.screamingdata.dev/v1/amazon/product/task_post | jq -r '.tasks[0].id')

# 2. Collect the result when it is ready (status_code 40401 = not ready yet)
curl -s -u "$API_LOGIN:$API_KEY" \
  https://api.screamingdata.dev/v1/amazon/product/task_get/$TASK_ID

6. Monitor products automatically

To track the same products every hour, every 6 hours or every day, add them to monitoring. Fresh observations appear in monitoring/list and in history.

curl --request POST \
  --url "https://api.screamingdata.dev/v1/amazon/monitoring/add" \
  --user "$API_LOGIN:$API_KEY" \
  --header "Content-Type: application/json" \
  --data '[
  {
    "asin": "B0EXAMPLE1",
    "marketplace": "com",
    "frequency": "daily",
    "tag": "client-42",
    "external_user_id": "u_8f3a2c"
  },
  {
    "asin": "B0EXAMPLE2",
    "marketplace": "uk",
    "frequency": "hourly",
    "tag": "launch-watch"
  }
]'

Next steps

Questions?

Write to [email protected] — include the task id from the response if something looks wrong.