Amazon PA-API eingestellt: Produktdaten auslesen ohne PA-API
PA-API 5 antwortet jetzt mit 403 und verweist auf die Creators API. Wer migrieren sollte, wer für Preismonitoring stattdessen eine Daten-API braucht, Feld-Mapping und echte Abdeckungszahlen.

Amazons Product Advertising API 5 ist veraltet (deprecated), und laut Amazons eigener Mitteilung liefern Aufrufe jetzt HTTP 403 AccessDeniedException und verweisen auf die Creators API. Wenn du Provisionen über Amazon Associates (in Deutschland das PartnerNet) verdienst, migriere zur Creators API. Wenn du nur Produktdaten brauchst (Preise, Bewertungen, Verfügbarkeit, Angebote) für Monitoring, Anreicherung oder Recherche, liefert eine Daten-API wie FastAF sie für 1 Credit pro Produkt, ohne Associates-Account. Unten: die Aufteilung, ein Feld-Mapping und was 24 echte Produktabfragen am 19. Oktober 2026 zurückgaben.
Was ist mit PA-API 5 passiert?
Amazons Mitteilung zur Einstellung von PA-API 5 (gelesen am 19. Oktober 2026) sagt, die API „has been deprecated and is being replaced by the Creators API”. Anwendungen, die sie weiter aufrufen, bekommen ein 403, dessen Meldung zur Migration auffordert. Die alten Seiten unter webservices.amazon.com/paapi5/documentation/ leiten jetzt auf diese Mitteilung um.
Die Mitteilung nennt kein Enddatum. Ein Artikel eines Dritten, ein Beitrag auf DEV Community, nennt den 30. April 2026 für die Einstellung als veraltet und den 15. Mai 2026 für die Abschaltung. Wir konnten diese Daten auf keiner Amazon-Seite bestätigen, nimm sie also als berichtet, nicht als offiziell.
Der Migrationsguide listet die tatsächlichen Änderungen: OAuth 2.0 statt AWS Signature V4, neue Zugangsdaten (die alten Keys funktionieren nicht), ein neuer Endpoint unter creatorsapi.amazon/catalog/v1/, Felder in lowerCamelCase und OffersV2 statt Offers.Listings.
Sollte ich die Creators API oder eine Daten-API nutzen?
Nimm die Creators API, wenn du Associate bist und dein Produkt aus Affiliate-Links besteht. Sie ist der offizielle Weg, sie liefert provisionsverfolgte URLs, und dieselben vier Operationen gibt es weiter: SearchItems, GetItems, GetVariations, GetBrowseNodes.
Der Haken ist die Zugangsberechtigung. Amazons Einführung nennt mindestens 10 qualifizierende Verkäufe in den letzten 30 Tagen als Voraussetzung, und die Dokumentation zu den Raten sagt, dass der Zugang nach 30 aufeinanderfolgenden Tagen ohne qualifizierte vermittelte Verkäufe verloren geht. Das Anfangslimit liegt in den ersten 30 Tagen bei 1 Request pro Sekunde und 8.640 pro Tag, danach wächst es mit dem versandten Umsatz (1 TPS je 4.320 $ versandter Artikel in den vorherigen 30 Tagen, bis zu 10).
Ein Preismonitoring, ein Job zur Katalog-Anreicherung, eine Marktstudie oder ein KI-Agent, der „was kostet das in Deutschland” beantwortet, hat meist keine Affiliate-Verkäufe und darf nicht von ihnen abhängen. Dafür nimmst du eine Daten-API. Der Kompromiss ist klar: Du bekommst Produktdaten, aber keine verfolgten Links, und Amazons Bedingungen und die Associates-Richtlinien bleiben deine Verantwortung.
Wie werden die PA-API-5-Operationen auf FastAF abgebildet?
Alles unten ist GET https://api.fastaf.co/v1/amazon mit einem Bearer-Key. Die Feldnamen stammen aus echten Antworten.
| PA-API 5 / Creators API | FastAF-Aufruf | Gelieferte Felder | Lücke |
|---|---|---|---|
| SearchItems | query, domain, page (1 bis 100), 1 Credit |
asin, title, extracted_price, rating, reviews, image, has_prime |
Kein minPrice, brand oder sortBy; 15 bis 48 Produkte pro Seite |
| GetItems | resource=product&asin=, 1 Credit |
title, extracted_price, availability_status, images, extracted_average_rating, extracted_total_reviews |
Eine ASIN pro Aufruf, kein Batching von 10 |
| ItemInfo (Features, Marke, Technik) | derselbe Aufruf | feature_bullets, brand, product_information |
Freies Dict, Schlüssel variieren je nach Kategorie und Sprache |
| Images | derselbe Aufruf | images, main_image |
Keine Größenvarianten, keine Felder für Breite und Höhe |
| GetVariations | derselbe Aufruf | parent_asin, variant_combinations (asin, dimensions) |
Kein Preis pro Variante: ein Produktaufruf pro Kind |
| OffersV2-Angebote | resource=offers, 5 Credits |
offers[] mit price.value, condition, seller.name, buybox_winner |
Keine Felder zu Angebotszeiträumen in den Angeboten, die ich gesehen habe |
| BrowseNodeInfo | derselbe Produktaufruf | category_id, categories, best_sellers_rank |
Der Rang ist nur auf .com strukturiert (siehe unten) |
| GetBrowseNodes | resource=bestsellers&category_id=, 5 Credits |
gerankte results plus ein Kategoriebaum |
Kein Aufruf, der die Kinder eines beliebigen Knotens listet |
detailPageURL mit partnerTag |
keiner | /dp/<asin> selbst bauen |
Keine provisionsverfolgten Links |
Zwei Dinge liefert FastAF, die die Ressourcenliste der Creators API nicht erwähnt: Bewertung und Anzahl der Rezensionen (die Liste deckt ItemInfo, Images, OffersV2, BrowseNodeInfo, ParentASIN, SearchRefinements und VariationSummary ab) sowie number_of_people_bought. Es gibt außerdem eine Ressource reviews, die auf der Amazon-API-Seite beschrieben ist.
Wie vollständig sind die Daten?
Am 19. Oktober 2026 haben wir 9 Suchen ausgeführt (3 Anfragen: „mechanical keyboard”, „air fryer”, „yoga mat”, auf com, co.uk und de) und dann 27 ASINs daraus mit resource=product und resource=offers abgefragt, 5 Requests parallel. 24 Produktseiten und 26 Angebotslisten kamen zurück. Der Rest lieferte nach etwa 40 Sekunden ein 4xx und wurde nicht berechnet.
| Feld | Suchergebnisse (239 Produkte) | Produktseiten (24) |
|---|---|---|
| Preis (numerisch) | 235 (98 %) | 24 (100 %) |
| Bewertung | 237 (99 %) | 23 (96 %) |
| Anzahl Rezensionen | 237 (99 %) | 23 (96 %) |
| Bild | 239 (100 %) | 24 (100 %) |
| Verfügbarkeit | nicht in der Suche | 24 (100 %) |
| Feature-Bullets | nicht in der Suche | 24 (100 %) |
| Marke | nicht in der Suche | 19 (79 %) |
| Varianten | nicht in der Suche | 21 (88 %) |
Alle 26 Angebotslisten hatten mindestens ein Angebot, ein Angebot mit Preis und einen Buy-Box-Gewinner; sie enthielten zwischen 1 und 12 Angebote. Die eine Produktseite ohne Bewertung hatte in der Antwort überhaupt keine Bewertungsfelder.
Latenz bei 5 parallelen Requests, nur erfolgreiche Aufrufe: Suche Median 5,8 s (p90 16,9 s), Produkt Median 5,3 s (p90 11,1 s), Angebote Median 13,5 s (p90 35 s). Bestätigungsaufrufe gegen die Produktions-API, einzeln nacheinander, brauchten 4,8 s (Produkt, de), 6,5 s (Suche, co.uk) und 17,6 s (Angebote, com). Eine Produktabfrage auf com scheiterte zweimal mit einem 422 und ohne Berechnung. Plane Retries und Tail-Latenzen von mehreren zehn Sekunden ein, das ist also ein Batch-Werkzeug, keine Abhängigkeit im Request-Pfad.
Was sind die Stolperfallen?
Die Währung folgt der Postleitzahl. Eine Suche auf co.uk nur mit country=gb lieferte Preise als „USD 278.64”. Mit postal_code=SW1A 1AA kam „£171.00”. Gib country und postal_code jedes Mal mit. Selbst dann kam eines von 8 Produkten auf co.uk in USD zurück, prüf also price_symbol.
Der Preis ist ein Anzeigestring; nutz das numerische Feld. price lautet „$28.49 with 33 percent savings”, während extracted_price 28.49 ist.
Validiere Bewertungen. Auf einer deutschen Seite lautete die Bewertung „4,7”, und extracted_average_rating kam als 47 zurück. Ein erneuter Aufruf lieferte 4.7. Verwirf alles über 5.
Der Bestseller-Rang ist nur auf .com strukturiert. Auf co.uk und de steht er als Text in product_information.
Wie migriere ich einen GetItems-Aufruf?
Eine Drop-in-Funktion mit vertrauter Form: eine Liste von ASINs und ein Marktplatz hinein, Artikel heraus. Wir haben sie mit 12 ASINs über die drei Marktplätze laufen lassen und 12 Artikel zurückbekommen.
import os
import time
from concurrent.futures import ThreadPoolExecutor
import requests
BASE = "https://api.fastaf.co/v1/amazon"
HEADERS = {"Authorization": f"Bearer {os.environ['FASTAF_API_KEY']}"}
# PA-API "Marketplace" value -> FastAF domain, country, postal code
MARKETPLACES = {
"www.amazon.com": ("com", "us", "10001"),
"www.amazon.co.uk": ("co.uk", "gb", "SW1A 1AA"),
"www.amazon.de": ("de", "de", "10115"),
}
def _get(params, retries=1):
for attempt in range(retries + 1):
r = requests.get(BASE, params=params, headers=HEADERS, timeout=90)
if r.status_code == 200:
return r.json()
if r.status_code in (422, 429, 502, 503) and attempt < retries:
time.sleep(3)
continue
return None # failed requests are not billed
return None
def _rating(p):
value = p.get("extracted_average_rating")
if value is not None and value > 5: # "4,7" parsed as 47
value = value / 10
return value
def get_items(item_ids, marketplace="www.amazon.com"):
"""Same call shape as PA-API GetItems: ASINs in, items out."""
domain, country, postal = MARKETPLACES[marketplace]
def one(asin):
p = _get({"resource": "product", "asin": asin, "domain": domain,
"country": country, "postal_code": postal})
if not p:
return None
return {
"asin": asin,
"title": p.get("title"),
"brand": p.get("brand"),
"price": p.get("extracted_price"),
"currency": p.get("price_symbol"),
"rating": _rating(p),
"reviews": p.get("extracted_total_reviews"),
"availability": p.get("availability_status"),
"image": (p.get("images") or [None])[0],
"features": p.get("feature_bullets") or [],
"parent_asin": p.get("parent_asin"),
}
with ThreadPoolExecutor(max_workers=5) as pool:
return [i for i in pool.map(one, item_ids) if i]
Ausgabe für die deutsche Test-ASIN B09ZYLM43B: Preis 191.3, Währung „€“, Bewertung 4.7, 8.344 Rezensionen, „In stock”. Vier ASINs brauchten pro Marktplatz 9 bis 47 Sekunden, lass große Listen also in Batches laufen und speicher Ergebnisse laufend. Die bestehenden Guides decken den Rest ab: was der Amazon-Endpoint liefert und ein vollständiger Bot zur Preisverfolgung mit SQLite-Verlauf und Alarmen.
Was kostet das?
Such- und Produktanfragen kosten 1 Credit, Angebote und Bestseller 5. 1.000 Produkte täglich zu aktualisieren sind 30.000 Credits im Monat, etwa 11,60 $ eines Growth-Pakets für 29 $ (75.000 Credits, 12 Monate gültig). Zusätzlich täglich eine Angebotsprüfung für jedes Produkt wären 150.000 weitere, hol Angebote also nur für die ASINs, bei denen der Buy-Box-Verkäufer zählt. Unser Migrationstest mit 12 ASINs kostete 12 Credits. Aktuelle Preise stehen auf der Preisseite, alle Parameter in den Docs, und eine fehlgeschlagene Anfrage wird nie berechnet.
Die Kurzfassung
PA-API 5 ist veraltet und antwortet mit 403; der offizielle Ersatz ist die Creators API, die einen Associates-Account mit aktuellen qualifizierenden Verkäufen braucht. Wenn du Provisionen verdienst, migriere dorthin. Wenn du Preise, Bewertungen, Verfügbarkeit, Varianten und Angebote ohne Affiliate-Berechtigung brauchst, decken das eine Daten-API ab: 98 bis 100 % der Produkte hatten in unserem Lauf Preis, Verfügbarkeit und Bild, zu 1 Credit pro Produkt. Validiere Bewertungen und Währung, wiederhole bei 4xx und rechne mit Latenzen von mehreren Sekunden. Du kannst dir 500 kostenlose Credits holen und diesen Test mit deinen eigenen ASINs wiederholen.