image

An ASIN can have more than one seller. Offers lists those sellers for one product: price, condition, who ships it, and the seller id. You use it after you already have an ASIN from search, details, or a similar-products call.

👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register


Authentication

Every call uses a Bearer token from your SteadyAPI dashboard.

Documentation:
https://docs.steadyapi.com/#authenticating-requests

headers = {
  'Authorization': 'Bearer YOUR_API_KEY'
}

Where this fits

Start from a product ASIN, then call GET /v1/amazon/products/offers. The seller_id on a row is the input for GET /v1/amazon/seller/profile. This list is not a search. It will not find products by keyword.


Compare Amazon offers

Endpoint: GET /v1/amazon/products/offers

Documentation:
https://docs.steadyapi.com/#amazon-GETapi-v1-amazon-products-offers

Parameters

  • asin — required, max 20 characters (example: B09TDP1HCV)
  • country — optional marketplace code, default US
  • condition — optional: new, like_new, very_good, good, acceptable
  • delivery — optional: prime or free
  • language — optional language code for that marketplace

Omit condition and the list includes every condition. meta.condition is then all. Omit delivery and both Prime and non-Prime offers can appear. meta.delivery is then all. Set delivery to prime when you only want Prime. Country codes are case-insensitive. There is no page parameter.

Python

import requests

url = "https://api.steadyapi.com/v1/amazon/products/offers"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

response = requests.get(url, headers=headers, params={
    "asin": "B09TDP1HCV",
    "delivery": "prime",
})
response.raise_for_status()
payload = response.json()
print(payload.get("meta", {}).get("asin"))

for offer in payload.get("body") or []:
    print(offer.get("product_price"), offer.get("seller"), offer.get("seller_id"))

Annotated sample

{
  "product_price": "$24.07",
  "product_original_price": null,
  "product_condition": "Used - Very Good",
  "ships_from": "Amazon.com",
  "seller": "Yuanchina",
  "seller_id": "A531LOZXINYGL",
  "currency": "USD",
  "delivery_price": "FREE",
  "delivery_time": "Monday, July 21"
}

Store seller_id if you will open the seller profile. Show seller and product_price. The price is a string, not a number. meta.asin is the ASIN you asked for, not a different product. delivery_price in this row is the word FREE. seller_star_rating can be null even when the offer is present.


Practical use

The sample row is a used offer. If you need new items only, pass condition=new. Leaving it off does not mean the first row is new.

product_condition is a display string such as Used - Very Good. The filter you send is the short code very_good, not that display string.

A Prime filter changes who comes back. Read meta.delivery before you compare two saved lists. all and prime are not the same result set.

👉 Get your API key and compare offers: https://steadyapi.com/register

How to List MLB Teams Using SteadyAPI Oct 13, 2026

How to List MLB Teams Using SteadyAPI

List MLB clubs and store the numeric id. The roster call takes that id as teamIds.

How to Get an AliExpress Description Using SteadyAPI Oct 12, 2026

How to Get an AliExpress Description Using SteadyAPI

Turn a product-detail description token into ordered text modules. The product id alone is not enough.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.

How to Track Amazon New Releases Using SteadyAPI Oct 10, 2026

How to Track Amazon New Releases Using SteadyAPI

Pull one category’s new-release ranking. Store each row’s ASIN, rank, and price string.