To get Amazon Netherlands product data, call the SellerMagnet API with marketplaceId=A1805IZSGTT6HS: the request goes to amazon.nl and prices come back in EUR. Offers, product lookup, search, deals, bestsellers and seller feedback all answer for amazon.nl. Price history, sales estimates and the ASIN converter do not; they reject amazon.nl with a free 400, the same gate that blocks amazon.se and amazon.ie. Unlike amazon.se, listedSinceDate from /amazon-product-lookup works normally on amazon.nl, because the backend's label-matching list recognises the Dutch "Date First Available" phrase.
Key Takeaways
- amazon.nl is marketplace A1805IZSGTT6HS and is priced in EUR.
- Six endpoints answer on amazon.nl; statistics, estimated sales and the converter return a free 400 and no data, the same as amazon.se and amazon.ie.
listedSinceDateIS populated on amazon.nl: the backend's label-matching list has a Dutch phrase, unlike the Swedish list which has none.- amazon.nl has its own bestseller category tree; it is not aliased to another marketplace.
- Comparing amazon.nl with amazon.de costs 2 credits per ASIN, and both prices stay in EUR.
What is different about the Amazon Netherlands API?
The request format is the same as for every other store: GET, query parameters, the key in the X-Api-Key header. What changes are a few values and the endpoint coverage. The API resolves the amazon.nl domain itself and reads prices in the EU decimal format, so the decimal values you get back are plain numbers in EUR, the same currency as amazon.de.
| Item | amazon.nl |
|---|---|
| Marketplace ID | A1805IZSGTT6HS |
| Store | amazon.nl |
| Currency | EUR (Euro) |
| Default postcode | 1012 |
| listedSinceDate | populated normally (Dutch date phrase matched) |
| First-party seller ID | A17D2BRD4YMT0X |
| Bestseller category tree | amazon.nl's own tree |
| History endpoints | free 400, no data |
The amazon.nl entry of /amazon-get-marketplaces (data is keyed by marketplace ID)
{
"A1805IZSGTT6HS": {
"marketplace_domain": "amazon.nl",
"marketplace_name": "Amazon NL",
"currency_code": "EUR",
"currency_name": "Euro",
"currency_symbol": "€",
"geo_location": "1012"
}
}
Which endpoints work on amazon.nl?
Six of the ten endpoints only check that the marketplace ID is valid, so they answer on all 23 marketplaces, amazon.nl included. The three history endpoints read a data source that covers only 11 marketplaces and turn every other one away before the credit is taken: amazon.nl gets a 400 with the message "This endpoint is not available for the requested marketplace" followed by the list of supported stores. That call costs nothing, but it returns no data either.

Does listedSinceDate work on amazon.nl?
Yes, and that is the opposite of amazon.se. productInfo.listedSinceDate is set by matching the page's "Date First Available" label text against a single hardcoded phrase list shared by every marketplace. That list has an entry for German, English, Spanish, Italian, Japanese, Portuguese, French and Polish, and also a Dutch fragment that matches the amazon.nl label. Because the phrase is recognised, listedSinceDate comes back populated on amazon.nl just like on amazon.de. Do not assume every EU marketplace behaves the same way here: the Swedish list has no matching entry, so the identical field is always null on amazon.se even though the information is on the page.
How do I compare amazon.nl with amazon.de in Python?
The script below reads listedSinceDate for one ASIN on both stores to show that both work, then reads the live offers of three ASINs on each store side by side. It skips anything that is not a 10-character ASIN before paying, because the offers endpoint bills a malformed ASIN like any other request, and it stops the whole run on a 401/403 instead of looping. It uses sellermagnet.py (ApiError, new_session) and retry.py (get_with_retry) from the Python quickstart.
nl_vs_de.py - the same ASINs on amazon.nl and amazon.de
"""Amazon Netherlands (amazon.nl) product check: price history gate and listedSinceDate, next to amazon.de.
amazon.nl is marketplace A1805IZSGTT6HS, priced in EUR. Two things to know:
1. amazon.nl is NOT one of the 11 marketplaces with full price-history support (the SellerMagnetAPI config
has no amazon.nl entry in its history-domain map), so /amazon-product-statistics, estimated sales and the
ASIN converter all answer it with a free 400 "This endpoint is not available for the requested
marketplace", the same gate that blocks amazon.se and amazon.ie.
2. Unlike amazon.se, /amazon-product-lookup's productInfo.listedSinceDate DOES work on amazon.nl: the shared
date-phrase match list (SellerMagnetAPILambda language_translation.py date_phrases) has a Dutch entry
("beschikbaarheid"), so the label on the amazon.nl page is recognised and the field gets populated like on
amazon.de.
Helpers: sellermagnet.py and retry.py from https://sellermagnet-api.com/blog/amazon-product-api-python
"""
import re
import requests
from retry import get_with_retry
from sellermagnet import ApiError, new_session
MARKETS = {"NL": "A1805IZSGTT6HS", "DE": "A1PA6795UKMFR9"} # amazon.nl (EUR), amazon.de (EUR)
HISTORY_MARKETS = {"ATVPDKIKX0DER", "A2EUQ1WTGCTBG2", "A1AM78C64UM0Y8", "A2Q3Y263D00KWC", "A1F83G8C2ARO7P",
"A1PA6795UKMFR9", "A13V1IB3VIYZZH", "APJ6JRA9NG5V4", "A1RKKUPIHCS9HS", "A21TJRUUN4KGV",
"A1VC38T7YXB528"} # the 11 marketplaces with full statistics, estimated sales, converter
ASINS = ["B0CL61F39H", "B0IEONLY01", "B0NOOFFER1", "not-an-asin"]
MAX_FAILED = 3 # 502/503 are billed on every attempt: stop after 3 calls that keep failing
def history_allowed(marketplace_id):
return marketplace_id in HISTORY_MARKETS
def product_info(session, asin, marketplace_id):
"""Read productInfo directly (not through lookup()): we need listedSinceDate, which lookup() drops."""
from sellermagnet import get # the quickstart's low-level helper, used by lookup() internally
return get(session, "amazon-product-lookup", asin=asin, marketplaceId=marketplace_id)["productInfo"]
def featured(data):
"""(price, currency, holder, unique sellers) from one offers answer; price None when nothing is featured."""
box, offers = data.get("buyBox") or {}, data.get("offers") or []
sellers = len({o.get("sellerId") for o in offers if o.get("sellerId")}) # a seller can be listed twice
currency = (data.get("currency") or {}).get("code", "")
if data.get("buyBoxSuppressed") or not box.get("totalPrice"):
return None, currency, "no featured offer", sellers
if box.get("sellerId") == "Amazon":
holder = f"Amazon ({box.get('amazonSellerId') or 'no first-party ID'})"
else:
holder = f"{box.get('fulfillmentType', '?')} seller {box.get('sellerId', '?')}"
return round(box["totalPrice"], 2), currency, holder, sellers # buyBox.totalPrice is not rounded upstream
def main():
session = new_session()
failed = 0
for code, marketplace in MARKETS.items():
note = "history endpoints answer" if history_allowed(marketplace) else \
"history endpoints skipped (free 400)"
print(f"{code} {marketplace}: {note}")
print("\nlookup: listedSinceDate")
for code, marketplace in MARKETS.items():
try:
info = product_info(session, "B0CL61F39H", marketplace)
except ApiError as err:
if err.status in (401, 403): # key or credits: every other call fails the same way
print(f"stopped: {err}")
return
print(f"{code:<5} error {err}")
continue
since = info.get("listedSinceDate") or "null"
print(f"{code:<5} listedSinceDate={since}")
print(f"\n{'asin':<11} {'store':<5} {'featured':>10} {'cur':<4} {'sellers':>7} holder / note")
for raw in ASINS:
asin = raw.strip().upper()
if not re.fullmatch(r"[A-Z0-9]{10}", asin):
print(f"{raw:<11} {'-':<5} {'-':>10} {'-':<4} {'-':>7} skipped: not an ASIN (offers would bill it)")
continue
for code, marketplace in MARKETS.items():
if failed >= MAX_FAILED:
print(f"stopped after {MAX_FAILED} failed calls")
return
try:
data = get_with_retry(session, "amazon-product-offers", asin=asin, marketplaceId=marketplace)
except ApiError as err:
if err.status in (401, 403): # key or credits: every other call fails the same way
print(f"stopped: {err}")
return
label = "not listed in this store (billed 404)" if err.status == 404 else f"error {err}"
print(f"{asin:<11} {code:<5} {'-':>10} {'-':<4} {'-':>7} {label}")
failed += err.status >= 500
continue
except (requests.ConnectionError, requests.Timeout) as err:
print(f"{asin:<11} {code:<5} {'-':>10} {'-':<4} {'-':>7} error {type(err).__name__}")
failed += 1
continue
price, currency, holder, sellers = featured(data)
shown = f"{price:.2f}" if price is not None else "-"
print(f"{asin:<11} {code:<5} {shown:>10} {currency:<4} {sellers:>7} {holder}")
if __name__ == "__main__":
main()
Output (illustrative data: two stores, a billed 404, a retried 502 and a skipped input)
NL A1805IZSGTT6HS: history endpoints skipped (free 400)
DE A1PA6795UKMFR9: history endpoints answer
lookup: listedSinceDate
NL listedSinceDate=2023-07-19
DE listedSinceDate=2024-03-11
asin store featured cur sellers holder / note
B0CL61F39H NL 249.00 EUR 2 FBA seller A1NLSELLER01
B0CL61F39H DE 229.99 EUR 3 Amazon (A3JWKAKR8XB7XF)
B0IEONLY01 NL 99.00 EUR 1 FBM seller A3NLSELLER03
B0IEONLY01 DE - - - not listed in this store (billed 404)
B0NOOFFER1 NL - 0 no featured offer
B0NOOFFER1 DE 15.99 EUR 1 FBM seller A4DESELLER04
not-an-asin - - - - skipped: not an ASIN (offers would bill it)
calls= 9
- sellers counts distinct seller IDs: the offers list can show the same seller twice (different delivery date or condition), so
len(offers)overcounts. - listedSinceDate populated on both NL and DE confirms the field is not broken on EU stores in general; amazon.se is the exception, not the rule.
- not listed in this store (billed 404): the offers endpoint answers an unknown ASIN with 404 "Invalid product" and charges the credit. The ASIN may well exist on the other store.
- no featured offer with 0 sellers is a listing without offers on that page, not an error. Confirm a stock-out with a second check before acting on it.

Does amazon.nl use its own bestseller category tree?
Yes. amazon.ie borrows the UK category tree because it has none of its own; amazon.nl is not in that alias list, so category_id for amazon.nl must come from amazon.nl's own tree (category explorer). An ID from another marketplace's tree, a German one for example, fails with "Invalid CategoryId", a billed 400.
What does an amazon.nl check cost?
1 credit per request, as on every store. The comparison script costs 2 credits per ASIN (one lookup call per store), plus each billed retry: a 502 or 503 is charged on every attempt, a 500 without Retry-After is refunded. The 404 for an ASIN that a store does not have is billed; an invalid marketplace ID and the history endpoints' amazon.nl 400 are free. The example run made 9 calls, 2 for the listedSinceDate check, 6 for three ASINs and 1 retried 502. For the whole picture across stores, see API marketplace coverage and the marketplace IDs list.
Frequently Asked Questions
What is the Amazon Netherlands marketplace ID?
A1805IZSGTT6HS. Pass it as marketplaceId and the request goes to amazon.nl, with prices in EUR. A country code like "NL" or a domain like "amazon.nl" is rejected with a free 400 Invalid marketplaceId.
Can I get Amazon Netherlands price history?
Not from this API. The statistics, estimated sales and converter endpoints cover only 11 marketplaces and answer amazon.nl with a free 400, the same as amazon.se and amazon.ie. Store your own offers snapshots if you need a history.
Does listedSinceDate work on amazon.nl?
Yes, unlike on amazon.se. The backend matches the page's "Date First Available" label against a hardcoded phrase list that includes a Dutch fragment, so the label on amazon.nl is recognised and listedSinceDate comes back populated, the same as on amazon.de.
Does amazon.nl use its own bestseller category tree?
Yes. Unlike amazon.ie, which borrows the UK category tree, amazon.nl is not in the alias list, so category IDs must come from amazon.nl's own tree; an ID from another marketplace's tree is a billed 400.
What is Amazon's first-party seller ID on amazon.nl?
A17D2BRD4YMT0X. A buy box held by that ID (or shown as the generic "Amazon" seller) means Amazon itself is the featured seller on that listing, not a third party.
Bottom line: use A1805IZSGTT6HS for amazon.nl, expect EUR, keep history calls for the 11 covered stores, and trust listedSinceDate on amazon.nl the same way you would on amazon.de. To compare prices across more stores, see comparing Amazon prices across marketplaces; the offers endpoint page lists every field, and a free account includes 150 credits.