Clair API
  • All APIs
  • Pricing
  • Docs
SERP & Search
  • Google Search API
  • Google Maps API
News & Media
  • Google News API
  • Bloomberg News API
  • Associated Press API
  • Reuters News API
Jobs & Hiring
  • Glassdoor API
  • Greenhouse Jobs API
  • Indeed Jobs API
E-commerce
  • Amazon Products API
Company Data & Reviews
  • Trustpilot Reviews API
  • Product Hunt API
  • Crunchbase API
Contact & Lead Data
  • Website Contacts API
Missing a data source? Ask for one →
  • Use cases
  • Comparisons
  • Glossary
Ecommerce and reviews
  • Amazon price monitoring
  • Trustpilot review monitoring
  • MAP enforcement on Amazon
  • Amazon rating monitoring
  • Amazon category research
  • Trustpilot competitor benchmarking
Search and local
  • Google rank tracking
  • Local lead generation
  • Local SEO competitor audit
  • Grounding LLM answers in search results
  • Content research from People also ask
Leads and companies
  • Lead enrichment from company websites
  • Product Hunt launch tracking
  • Startup deal sourcing
  • Account research briefs
Jobs and hiring
  • Salary benchmarking
  • Job market analytics
  • Hiring signals for sales
  • Employer reputation tracking
News
  • Media monitoring
  • Financial news alerts
  • News corpus for research and RAG
Comparisons
  • Clair vs SerpApi
  • Clair vs Google Places API
  • Clair vs Google Custom Search API
  • Clair vs Hunter
GlossarySERPSERP APIPeople also askGoogle place IDASINBuy BoxGTINSalary percentilesTrustScoreWeb scrapingAll 40 terms →
PricingDocs
Dashboard

Use cases / Amazon Products API

MAP enforcement on Amazon

A brand with a minimum advertised price policy needs to know, every day, which sellers list its products below it. Search the brand on Amazon, check each watched product's lowest offer against its MAP, and read every offer on the ones below to name the sellers.

Last updated September 28, 2026. Response excerpts are recorded from the live API.

Try the Amazon Products API →

On this page

  1. Who
  2. Pipeline
  3. Code
  4. Cost
  5. Response times
  6. Limits
  7. FAQ

Who

Who runs this, and what for

TeamWhat they decide with it
Brand protection teamsWhich sellers to contact or report today, with the price and date as evidence.
Channel and distribution managersWhich authorised resellers break the policy, and how often.
Agencies managing brands on AmazonWhat to put in each client's weekly compliance report.

Pipeline

The calls, step by step

  1. 01Search the brand

    Search with q and brand returns the brand's listings with the featured price and, in other_offers, the lowest price among the other sellers and how many there are. That is enough to spot a violation without opening every product.

    GET /v1/search?engine=amazon&q=wireless+mouse&prime=true&page=1 · results.0

    {
      "position": 1,
      "asin": "B004YAVF8I",
      "title": "Logitech M185 Compact Ambidextrous 2.4 GHz Wireless Mouse - Swift Grey",
      "url": "https://www.amazon.com/dp/B004YAVF8I",
      "price_text": "$13.99",
      "price": 13.99,
      "currency": "USD",
      "original_price_text": "$17.99",
      "original_price": 17.99,
      "rating": 4.4,
      "ratings_count": 45089,
      "badge": "Overall Pick",
      "sales_volume": "10K+ bought in past month",
      "image_url": "https://m.media-amazon.com/images/I/51WN5aXZWIL._AC_UY218_.jpg",
      "sponsored": false,
      "is_prime": true,
      "delivery": "FREE delivery Tomorrow, Sep 26",
      "coupon": null,
      "other_offers": {
        "min_price_text": "$6.58",
        "min_price": 6.58,
        "count": 8
      }
    }
    Recorded response. Live values differ.
  2. 02Open offers only where the price is below MAP

    For each watched ASIN whose price or other_offers.min_price is below its MAP, the offers endpoint lists every seller with condition, price, delivery, and the seller's id, name, and rating.

    GET /v1/product/offers?engine=amazon&asin=1098145356 · offers.0

    {
      "position": 1,
      "condition": "New",
      "price_text": "$40.94",
      "price": 40.94,
      "currency": "USD",
      "original_price_text": "$65.99",
      "original_price": 65.99,
      "delivery": "$33.04 delivery October 14 - 30.",
      "ships_from": "Pensive Keyboard Books",
      "seller": {
        "id": "A245R8VFMDKNT1",
        "name": "Pensive Keyboard Books",
        "rating": 3,
        "ratings_count": 225,
        "positive_percent": 52
      }
    }
    Recorded response. Live values differ.
  3. 03Identify the seller

    The seller endpoint returns the business name and address Amazon shows for a seller id, with its feedback. That is who a notice goes to.

    GET /v1/seller?engine=amazon&seller_id=AWZI6BA70DZZD · seller

    {
      "id": "AWZI6BA70DZZD",
      "name": "M + L",
      "url": "https://www.amazon.com/sp?seller=AWZI6BA70DZZD",
      "storefront_url": "https://www.amazon.com/s?me=AWZI6BA70DZZD",
      "logo_url": "https://m.media-amazon.com/images/I/41FV8yzLbkL.jpg",
      "rating": 3.5,
      "ratings_count": 2229,
      "positive_percent": 61,
      "ratings": {
        "last_30_days": {
          "rating": 3.1,
          "ratings_count": 332
        },
        "last_90_days": {
          "rating": 3.2,
          "ratings_count": 823
        },
        "last_12_months": {
          "rating": 3.5,
          "ratings_count": 2229
        },
        "lifetime": {
          "rating": 4.5,
          "ratings_count": 43640
        }
      },
      "rating_distribution": {
        "1": 8,
        "2": 1,
        "3": 2,
        "4": 5,
        "5": 84
      },
      "business_name": "Marc & Lukas GmbH",
      "business_address": "Kaiserswerther Str. 85D, Ratingen, NRW, 40878, DE",
      "about": "Contact us: service.us@mplusl.de",
      "feedback": [
        {
          "rating": 5,
          "text": "Puzzle arrived on time. Excellent condition.",
          "author": "Diana M.",
          "date": "2026-09-23"
        }
      ]
    }
    Recorded response. Live values differ.

Code

A script to start from

map_check.py

# MAP check: find listings of a brand's products priced below the minimum
# advertised price, and name the sellers behind each.
import csv, os, requests

API = "https://api.clair.im"
HEADERS = {"Authorization": f"Bearer {os.environ['CLAIR_API_KEY']}"}
BRAND = "Logitech"
MAP = {"B004YAVF8I": 14.99, "B015NBTAOW": 49.99}  # ASIN -> minimum advertised price
ZIP = "10001"

def get(path, **params):
    r = requests.get(f"{API}{path}", headers=HEADERS, timeout=90,
                     params={"engine": "amazon", "zip_code": ZIP, **params})
    r.raise_for_status()
    return r.json()

with open("map_violations.csv", "w", newline="") as f:
    out = csv.writer(f)
    out.writerow(["asin", "map", "seller_id", "seller", "condition", "price"])
    for page in range(1, 4):  # the brand's first three result pages
        body = get("/v1/search", q=BRAND, brand=BRAND, page=page)
        for item in body["results"]:
            floor = MAP.get(item["asin"])
            prices = [item["price"], (item["other_offers"] or {}).get("min_price")]
            lowest = min((p for p in prices if p), default=None)
            if floor is None or lowest is None or lowest >= floor:
                continue  # not a watched ASIN, or nobody is below MAP
            for offer in get("/v1/product/offers", asin=item["asin"])["offers"]:
                if offer["condition"] == "New" and offer["price"] < floor:
                    out.writerow([item["asin"], floor, offer["seller"]["id"],
                                  offer["seller"]["name"], offer["condition"], offer["price"]])
        if not body["next_cursor"]:
            break

Set CLAIR_API_KEY to a key subscribed to the Amazon Products API. Each call is one request against that API's monthly quota.

Cost

What it costs per month

ScheduleRequestsPlanPer monthPer 1,000
1 brand, 3 search pages, daily90 search pages plus about 5 offers calls a day = 240 requests.240Pay as you go$4.82$20.08
200 ASINs checked individually, daily6,000 product calls plus about 20 offers calls a day = 6,600 requests.6,600Pro$89.20$13.52
5 brands in 3 marketplaces, daily1,350 search pages plus about 15 offers calls a day = 1,800 requests.1,800Pay as you go$36.18$20.10
The cheapest Clair plan for each volume: the monthly fee plus overage past the included requests. USD, before tax. The free tier covers 200 requests a month for trying the pipeline.

Measured

Response times

Amazon Products API
Succeeded6 of 7
Median response time15.1 s
95th percentile18.5 s
Had price83%
Had availability100%
Had sold by100%
Had rating100%
Had best sellers rank100%
Had variants83%
Amazon product detail pages on amazon.com, delivery to ZIP 10001. ASINs from the recorded examples. 7 requests, one at a time, on September 27, 2026.

Limits

What to plan for

  • Prices follow the delivery location. Check from the zip_code your policy is enforced for; a seller can price differently by region.
  • Search shows a brand's listings as Amazon ranks them, up to 10 pages. For a long catalogue, check watched ASINs with the product endpoint instead.
  • Keep condition in mind: many MAP policies cover new items only, and used offers are allowed below MAP.
  • Amazon changes prices many times a day. A daily check records the price at that moment; store the response time as evidence.

FAQ

Common questions

What is MAP?

Minimum advertised price: the lowest price a brand allows resellers to advertise. It is a brand policy enforced through reseller agreements, not an Amazon rule.

Does the Buy Box price tell me enough?

No. A seller below MAP may not hold the Buy Box. other_offers.min_price in search, or the offers endpoint, shows every seller's price.

Can I watch other marketplaces?

Yes: us, gb, ca, au, in, de, es, nl, be, and jp. Each has its own sellers and prices, so check each one your policy covers.

Related

Keep reading

APIs

  • Amazon Products API

Glossary

  • MAP policy
  • Buy Box
  • ASIN

Run it on your own products

200 requests a month free on each API, no card. Enough to run the pipeline on a short list before choosing a plan.

Get API Key →Compare plans
Clair API

Live data APIs for search, news, jobs, marketplaces, companies, reviews, and website contacts. Each call fetches the page and returns clean JSON.

contact@serinlabs.com@clair_api

APIs

SERP & Search
  • Google Search API
  • Google Maps API
News & Media
  • Google News API
  • Bloomberg News API
  • Associated Press API
  • Reuters News API
Jobs & Hiring
  • Glassdoor API
  • Greenhouse Jobs API
  • Indeed Jobs API
E-commerce
  • Amazon Products API
Company Data & Reviews
  • Trustpilot Reviews API
  • Product Hunt API
  • Crunchbase API
Contact & Lead Data
  • Website Contacts API

Use cases

Ecommerce and reviews
  • Amazon price monitoring
  • Trustpilot review monitoring
  • MAP enforcement on Amazon
  • Amazon rating monitoring
  • Amazon category research
  • Trustpilot competitor benchmarking
Search and local
  • Google rank tracking
  • Local lead generation
  • Local SEO competitor audit
  • Grounding LLM answers in search results
  • Content research from People also ask
Leads and companies
  • Lead enrichment from company websites
  • Product Hunt launch tracking
  • Startup deal sourcing
  • Account research briefs
Jobs and hiring
  • Salary benchmarking
  • Job market analytics
  • Hiring signals for sales
  • Employer reputation tracking
News
  • Media monitoring
  • Financial news alerts
  • News corpus for research and RAG

Compare and learn

Comparisons
  • Clair vs SerpApi
  • Clair vs Google Places API
  • Clair vs Google Custom Search API
  • Clair vs Hunter
Glossary
  • SERP
  • SERP API
  • People also ask
  • Google place ID
  • ASIN
  • Buy Box
  • All 40 terms
Developers
  • Documentation
  • Quickstart
  • API catalog
  • Pricing
  • All resources
© 2026 Serin Technologies, LLC
  • Terms of Service
  • Privacy Policy