logo

All Offers

Get all seller offers for any Amazon product

The All Offers endpoint retrieves every seller listing for a specific product, including pricing, shipping costs, seller information, and Buy Box status. This is the same data you see on Amazon's "All Offers" page (structured as JSON for easy price comparison, seller analysis, and competitive intelligence).


Endpoint

GET https://api.scrape.do/plugin/amazon/offer-listing

Input Parameters

ParameterTypeRequiredDescription
tokenstringYour Scrape.do API authentication token
asinstringAmazon Standard Identification Number (10-character product ID)
geocodestringCountry code (e.g., us, gb, de, jp)
zipcodestringPostal code formatted according to country requirements
superbooleanEnable residential/mobile proxies (default: false)

Response Parameters

FieldTypeDescription
asinstringProduct ASIN number
statusstringRequest status (success or error)
errorMessagestringError message if request failed
offersarrayList of all seller offers

Offer Object Fields

FieldTypeDescription
conditionstringProduct condition (New, Used, Refurbished, etc.)
offerHeaderstringOffer header text
sellerIdstringUnique seller identifier
merchantNamestringSeller/merchant display name
shippingTimeobjectShipping time details including deliveryDate
listingPriceobjectCurrent offer price with currencyCode and amount
listPriceobjectOriginal list price (if discounted)
discountobjectDiscount details with percentage, amount, and currencyCode
shippingobjectShipping cost with currencyCode and amount
shipsFromstringShipping origin location
isFulfilledByAmazonbooleanWhether the offer is FBA (Fulfilled by Amazon)
primeInformationobjectPrime eligibility details
isBuyBoxWinnerbooleanWhether this offer holds the Buy Box
quantitynumberAvailable stock quantity

Example Usage

Step 1: Find the Target Product

Navigate to any Amazon product page or the "All Offers" page. For this example, we'll check all sellers for a Bluetooth headphone:

Amazon All Offers Page

Step 2: Get the ASIN

Extract the ASIN from the product URL:

  • URL: amazon.com/dp/B0DGJ7HYG1 (the ASIN is B0DGJ7HYG1)

Step 3: Send the API Request

curl --location --request GET 'https://api.scrape.do/plugin/amazon/offer-listing?token=<SDO-token>&asin=B0DGJ7HYG1&geocode=US&zipcode=10001&super=true'
import requests
import json

token = "<SDO-token>"
asin = "B0DGJ7HYG1"
geocode = "US"
zipcode = "10001"

url = f"https://api.scrape.do/plugin/amazon/offer-listing?token={token}&asin={asin}&geocode={geocode}&zipcode={zipcode}&super=true"

response = requests.request("GET", url)

print(json.dumps(response.json(), indent=2))
const axios = require('axios');

const token = "<SDO-token>";
const asin = "B0DGJ7HYG1";
const geocode = "US";
const zipcode = "10001";

const url = `https://api.scrape.do/plugin/amazon/offer-listing?token=${token}&asin=${asin}&geocode=${geocode}&zipcode=${zipcode}&super=true`;

axios.get(url)
  .then(response => {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(error => {
    console.error(error);
  });
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    token := "<SDO-token>"
    asin := "B0DGJ7HYG1"
    geocode := "US"
    zipcode := "10001"

    url := fmt.Sprintf(
        "https://api.scrape.do/plugin/amazon/offer-listing?token=%s&asin=%s&geocode=%s&zipcode=%s&super=true",
        token, asin, geocode, zipcode,
    )

    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
require 'net/http'
require 'json'

token = "<SDO-token>"
asin = "B0DGJ7HYG1"
geocode = "US"
zipcode = "10001"

url = URI("https://api.scrape.do/plugin/amazon/offer-listing?token=#{token}&asin=#{asin}&geocode=#{geocode}&zipcode=#{zipcode}&super=true")

response = Net::HTTP.get(url)

puts JSON.pretty_generate(JSON.parse(response))
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class AmazonOfferListing {
    public static void main(String[] args) throws Exception {
        String token = "<SDO-token>";
        String asin = "B0DGJ7HYG1";
        String geocode = "US";
        String zipcode = "10001";

        String url = String.format(
            "https://api.scrape.do/plugin/amazon/offer-listing?token=%s&asin=%s&geocode=%s&zipcode=%s&super=true",
            token, asin, geocode, zipcode
        );

        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
        conn.setRequestMethod("GET");

        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        StringBuilder response = new StringBuilder();
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        reader.close();

        System.out.println(response.toString());
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string token = "<SDO-token>";
        string asin = "B0DGJ7HYG1";
        string geocode = "US";
        string zipcode = "10001";

        string url = $"https://api.scrape.do/plugin/amazon/offer-listing?token={token}&asin={asin}&geocode={geocode}&zipcode={zipcode}&super=true";

        using HttpClient client = new HttpClient();
        string response = await client.GetStringAsync(url);

        Console.WriteLine(response);
    }
}
<?php
$token = "<SDO-token>";
$asin = "B0DGJ7HYG1";
$geocode = "US";
$zipcode = "10001";

$url = "https://api.scrape.do/plugin/amazon/offer-listing?token={$token}&asin={$asin}&geocode={$geocode}&zipcode={$zipcode}&super=true";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
?>

Step 4: Receive All Seller Offers

The API returns a complete list of all sellers with their pricing and fulfillment details:

{
  "asin": "B0DGJ7HYG1",
  "status": "success",
  "errorMessage": null,
  "offers": [
    {
      "condition": "New",
      "offerHeader": "New",
      "merchantName": "Amazon Resale",
      "shippingTime": {
        "minimumHours": 72,
        "maximumHours": 168,
        "deliveryDate": "December 23 - 29"
      },
      "listingPrice": {
        "currencyCode": "USD",
        "amount": 99.99
      },
      "listPrice": {
        "currencyCode": "USD",
        "amount": 179.00
      },
      "discount": {
        "percentage": 44.14,
        "amount": 79.01,
        "currencyCode": "USD"
      },
      "shipping": {
        "currencyCode": "USD",
        "amount": 0.00
      },
      "shipsFrom": "United States",
      "isFulfilledByAmazon": true,
      "primeInformation": {
        "isPrime": true,
        "isNationalPrime": true
      },
      "isBuyBoxWinner": true,
      "quantity": 3
    },
    {
      "condition": "New",
      "offerHeader": "New",
      "sellerId": "ALAQLAKJ574UN",
      "merchantName": "6ave",
      "shippingTime": {
        "minimumHours": 24,
        "maximumHours": 48,
        "deliveryDate": "Thursday, December 11"
      },
      "listingPrice": {
        "currencyCode": "USD",
        "amount": 196.98
      },
      "shipping": {
        "currencyCode": "USD",
        "amount": 0.00
      },
      "shipsFrom": "United States",
      "isFulfilledByAmazon": false,
      "primeInformation": {
        "isPrime": false
      },
      "isBuyBoxWinner": false,
      "quantity": 30
    }
  ]
}

The isBuyBoxWinner field indicates which seller currently holds the Buy Box (the default seller when customers click "Add to Cart"). This is valuable for competitive pricing analysis.

Response is limited to a maximum of 4MB. Offers are returned with complete price, seller, and shipping information.