Aby monitorować ceny na amazon.pl przez API, użyj API Amazon od Scavio. Zapytanie POST do https://api.scavio.dev/api/v1/amazon/search z {"query": "lego", "country": "pl", "language": "PL"} zwraca 48 produktów z ASIN, ceną w złotych, oceną i terminem dostawy. Dla wybranego ASIN /product zwraca pełną kartę produktu, a /offers ceny wszystkich sprzedawców z kosztem dostawy i oznaczeniem Buy Box. Każde zapytanie kosztuje 1 kredyt.
Amazon nie udostępnia otwartego API do cudzych ofert: Selling Partner API obsługuje tylko własne konto sprzedawcy, a Creators API wymaga konta partnerskiego ze sprzedażą. Poniższe kroki wymagają tylko klucza Scavio. Wszystkie odpowiedzi pobraliśmy z amazon.pl 2 listopada 2026.
Czego potrzebujesz
- Klucza API Scavio. Przy rejestracji dostajesz 50 kredytów gratis, bez karty i bez konta Amazon.
- Dowolnego języka, który wysyła zapytania HTTP. Przykłady są w cURL i Pythonie; SDK dla Pythona (
pip install scavio) i JavaScriptu (npm i scavio) wywołują te same endpointy.
Krok 1: wyszukaj produkty na amazon.pl
curl -X POST 'https://api.scavio.dev/api/v1/amazon/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"query": "lego", "country": "pl", "language": "PL"}'Odpowiedź zawierała 48 produktów z "Wyniki: 1–48 z ponad 50 000 dla hasła lego" i 19 grup filtrów (Możliwość darmowej dostawy, Recenzja klienta, Marki, Okazje i oszczędności, ...). Jeden z wierszy, z parametrami śledzącymi usuniętymi z URL i bez innych zmian:
{
"asin": "B0DWDQGXLF",
"title": "LEGO City Pościg łodzią policyjną 60456",
"url": "https://www.amazon.pl/LEGO-policyjn%C4%85-60456-Plywaj%C4%85ca-dziewczynki/dp/B0DWDQGXLF",
"image": "https://m.media-amazon.com/images/I/81FFn3SddlL._AC_UL320_.jpg",
"price": 80.63,
"currency": "PLN",
"rating": 4.8,
"reviews_count": 968,
"is_sponsored": false,
"position": 14,
"badge": null,
"sales_volume": null,
"delivery": {
"is_free": false,
"date": "czw., 5 lis",
"fastest_date": null
}
}position to pozycja w siatce Amazon wraz z miejscami reklamowymi, więc "trzeci wynik" bierz z kolejności w tablicy. Następna strona: "page": 2, znowu 1 kredyt. Dwa pola wyszukiwania są dziś na amazon.pl niewiarygodne: total_results (50 dla "ponad 50 000"; rozmiar wyniku podawaj z total_results_text) oraz reviews_count dla produktów z ponad tysiącem opinii (42 dla LEGO Game Boy, który ma 4220). Dokładną liczbę opinii daje krok 2.
Krok 2: pobierz kartę produktu po ASIN
curl -X POST 'https://api.scavio.dev/api/v1/amazon/product' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"asin": "B0DWDGVHM6", "country": "pl", "language": "PL"}'Skrócone do pól handlowych:
{
"asin": "B0DWDGVHM6",
"title": "LEGO Game Boy 72046",
"brand": "LEGO",
"price": 160.99,
"list_price": null,
"currency": "PLN",
"rating": 4.8,
"reviews_count": 4220,
"is_prime": true,
"has_buy_box": true,
"availability": "Dostępny",
"max_quantity": 2,
"sold_by": "Amazon",
"other_sellers_count": 22,
"sales_volume": null
}Pełna odpowiedź zawiera też 5 punktów w features, 10 zdjęć, 1 film, specifications z polskimi etykietami Amazon (na przykład "Globalny Numer Jednostki Handlowej": "05702017816616"), opcje dostawy (bezpłatna standardowa na "środa, 4 listopada") i best_sellers_rank: miejsce 39 w Zestawach zabawek do budowania i 75 w Zabawkach. price to cena z Buy Box, którą widzi klient. availability to tekst Amazon, więc czytaj go jako tekst, nie jako pole tak/nie.
Krok 3: sprawdź wszystkie oferty i koszt dostawy
other_sellers_count wynosił 22, więc zapytanie /offers ma sens:
curl -X POST 'https://api.scavio.dev/api/v1/amazon/offers' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"asin": "B0DWDGVHM6", "country": "pl", "language": "PL"}'Odpowiedź zawierała 11 ofert, total_offers 22 i has_more_pages true: /offers zwraca pierwszą stronę, którą pokazuje Amazon. Dwie pierwsze, skrócone (kilka pustych pól pominiętych, żadna wartość nie zmieniona):
[
{
"condition": "Nowe",
"seller_id": "A1C3SOZRARQ6R3",
"seller_name": "Amazon",
"ships_from": "Amazon",
"is_fulfilled_by_amazon": true,
"is_buy_box_winner": true,
"price": 160.99,
"currency": "PLN",
"shipping_price": 0,
"quantity": 2,
"delivery": { "min_hours": 24, "max_hours": 72, "date": "środa, 4 listopada", "is_free": false }
},
{
"condition": "Nowe",
"seller_id": "A39XMPISIIMU4F",
"seller_name": "Kraina Zabawy",
"ships_from": "Kraina Zabawy",
"is_fulfilled_by_amazon": false,
"is_buy_box_winner": false,
"price": 194.73,
"currency": "PLN",
"shipping_price": 15.6,
"quantity": 17,
"delivery": { "min_hours": 24, "max_hours": 72, "date": "środa, 4 listopada", "is_free": false }
}
]Cena dla kupującego to price + shipping_price: u Kraina Zabawy 210,33 zł, o 30,6 procent więcej niż u Amazona. Na 14 sprawdzonych produktach Amazon miał Buy Box w 13; zestawienie znajdziesz w najlepszych API do danych z Amazon.pl.
Krok 4: porównaj z amazon.de
Polscy kupujący często sprawdzają, czy ten sam produkt nie jest tańszy w Niemczech. Wystarczy zmienić country na "de". Bez language amazon.de odpowiedział po angielsku ("In stock"), z cenami w euro; przeliczenie robisz sam, bo API nie przelicza walut. Kursem referencyjnym EBC z 2 listopada 2026 (4,4185 zł za euro):
| Produkt | amazon.pl | amazon.de | amazon.de w zł | Różnica |
|---|---|---|---|---|
| LEGO Game Boy 72046 | 160,99 zł | 42,99 € | 189,95 zł | amazon.pl taniej o 15,2% |
| LEGO City 60456 | 80,63 zł | 20,99 € | 92,74 zł | amazon.pl taniej o 13,1% |
| Philips Sonicare 5300 | 221,93 zł | 52,99 € | 234,14 zł | amazon.pl taniej o 5,2% |
| Oral-B iO 2 | 181,42 zł | 39,99 € | 176,70 zł | amazon.de taniej o 2,7% |
Ceny zawierają VAT danego marketplace'u (23 procent w Polsce, 19 w Niemczech); przy zamówieniu z amazon.de z dostawą do Polski kwota w koszyku może się zmienić. Darmowe GET /api/v1/amazon/options zwraca listę 22 marketplace'ów bez klucza. Dwuliterowy kod spoza listy nie daje błędu, tylko sklep amerykański, więc sprawdzaj kod wcześniej.
Krok 5: zapisuj odczyty codziennie
API zwraca cenę z chwili zapytania, więc historię budujesz sam. Ten skrypt dopisuje do pliku CSV jedną linię na każdą ofertę:
import csv, datetime, requests
ASINS = ["B0DWDGVHM6", "B0DWDQGXLF", "B0DCGK4MT7"]
today = datetime.date.today().isoformat()
with open("ceny-amazon-pl.csv", "a", newline="") as f:
w = csv.writer(f)
for asin in ASINS:
r = requests.post(
"https://api.scavio.dev/api/v1/amazon/offers",
headers={"Authorization": "Bearer sk_live_your_key"},
json={"asin": asin, "country": "pl", "language": "PL"},
timeout=90,
)
for o in r.json()["data"]["offers"]:
w.writerow([today, asin, o["seller_name"], o["condition"], o["price"],
o["shipping_price"], o["is_buy_box_winner"]])Uruchamiaj go z crona raz dziennie. Trzy ASIN to 3 kredyty na dzień. Zmiana właściciela Buy Box albo spadek ceny najtańszej oferty to dwa najprostsze alerty, jakie zbudujesz z takiego pliku.
Wszystkie endpointy i ich koszt
| Endpoint | Co zwraca | Kredyty |
|---|---|---|
POST /api/v1/amazon/search | 48 produktów na stronę z amazon.pl z ASIN, ceną, oceną, dostawą i oznaczeniem reklamy, plus filtry | 1 |
POST /api/v1/amazon/product | Pełna karta produktu po ASIN: cena i sprzedawca z Buy Box, dostępność, zdjęcia, specyfikacja, warianty, dostawa | 1 |
POST /api/v1/amazon/offers | Pierwsza strona ofert ze sprzedawcą, stanem, ceną, kosztem dostawy i is_buy_box_winner | 1 |
GET /api/v1/amazon/options | 22 marketplace'y jako kody krajów i domeny | Gratis |
Każde płatne zapytanie kosztuje tyle samo na każdym marketplace. Nie ma sortowania po stronie serwera, treści recenzji ani historii cen. Codzienny odczyt ofert dla 500 ASIN to około 15 000 kredytów miesięcznie, czyli 30 dolarów w planie Growth płatnym rocznie (2 dolary za 1000 kredytów).
Jak zacząć
- Zarejestruj się na dashboard.scavio.dev: 50 kredytów gratis, bez karty.
- Skopiuj klucz API z panelu.
- Wyślij POST na
/api/v1/amazon/searchz"country": "pl","language": "PL"i kluczem w nagłówkuAuthorization.
Wypróbuj API Amazon za darmo albo najpierw uruchom wyszukiwanie w demo na polskiej stronie. Jeśli pracujesz z agentem AI, serwer MCP udostępnia te same zapytania jako narzędzia.
Źródła: API Amazon Polska · wyszukiwanie · karta produktu · oferty · marketplace'y · cennik
Frequently asked questions
Jak monitorować ceny na Amazon.pl?
Dla kilku produktów wystarczą aplikacje z powiadomieniami. Dla setek ASIN użyj API: wywołuj endpoint offers lub product Scavio z "country": "pl" o stałej porze i zapisuj odpowiedzi. Każdy odczyt kosztuje 1 kredyt, a odpowiedź zawiera cenę, koszt dostawy, sprzedawcę i informację, kto ma Buy Box.
Czy amazon.pl ma publiczne API?
Nie dla badania rynku. Selling Partner API działa tylko z własnym kontem sprzedawcy, a Creators API wymaga konta partnerskiego z co najmniej 10 kwalifikującymi się sprzedażami w ostatnich 30 dniach. API Amazon od Scavio zwraca publiczne dane z amazon.pl jako JSON z samym kluczem Scavio.
Czy amazon.de jest tańszy niż amazon.pl?
Nie zawsze. 2 listopada 2026, po przeliczeniu kursem EBC 4,4185 zł za euro, amazon.pl był tańszy dla 3 z 4 sprawdzonych produktów: LEGO Game Boy kosztował 160,99 zł wobec 42,99 euro (189,95 zł) na amazon.de. Szczoteczka Oral-B iO 2 była o 2,7 procent tańsza w Niemczech. Ten sam ASIN sprawdzisz w obu krajach dwoma zapytaniami.
Jak dostać polskie tytuły i ceny w złotych?
Dodaj "country": "pl" i "language": "PL" do zapytania. 2 listopada 2026 tytuły, dostępność ("Dostępny"), stan ("Nowe") i daty dostawy ("środa, 4 listopada") wróciły po polsku, z currency PLN.
Ile kosztuje monitoring cen na amazon.pl?
Wyszukiwanie, karta produktu i oferty kosztują po 1 kredycie, około 0,002 dolara w planie Growth płatnym rocznie. Codzienny odczyt ofert dla 500 ASIN to około 15 000 kredytów miesięcznie, czyli 30 dolarów. Nowe konta dostają 50 kredytów gratis, bez karty.