Basis-URL
Alle REST-API-Endpunkte sind unter folgendem Pfad erreichbar:Zugang & Berechtigungen
Für den Zugriff auf die REST API ist ein Benutzerkonto erforderlich, das im Admin Interface Ihres Shops verwaltet wird. Das Admin Interface ist in sogenannte Services unterteilt (z. B. Produkte, Kategorien, Sitemaps, SEO-URLs, Datenfeeds, Statistiken etc.). Für jeden Service können im Admin-Bereich Berechtigungen vergeben werden – z. B. Lesen, Bearbeiten, Erstellen, Löschen oder Publizieren. Diese Rechte gelten auch für die REST API und bestimmen, auf welche Endpunkte Sie zugreifen und welche HTTP-Methoden (GET, POST, PUT, DELETE) Sie verwenden dürfen. Ein Benutzer mit z. B. nur Leserechten im Service „Produkte“ kann Produkte per API nur abrufen (GET), aber nicht bearbeiten (PUT/POST/DELETE). Ihre zugewiesenen Rechte können Sie im Admin Interface unter folgendem Pfad einsehen:- URL-Parameter
subshopId- hat Vorrang, sobald er gesetzt ist. - Header
X-SubshopId- greift, wenn der URL-Parameter fehlt oder leer ist. - Fallback: der erste im Shop konfigurierte Subshop.
Authentifizierung
Für den Zugriff auf geschützte REST-API-Endpunkte ist eine Anmeldung erforderlich. Die Authentifizierung erfolgt entweder über Benutzername/Passwort oder per API-Schlüssel. Erfolgreich authentifizierte Anfragen erhalten ein Access Token, mit dem weitere Endpunkte angesprochen werden können. Zusätzlich wird ein Refresh Token bereitgestellt. Der Login erfolgt über folgenden Endpunkt:X-Authorization enthalten. Der Wert besteht aus dem Wort Bearer, gefolgt vom Token:
Filter, Sortierung & Paginierung
Viele REST-Endpunkte liefern Listen von Daten – etwa Produkte, Bestellungen oder Kategorien. Um mit diesen Daten effizient zu arbeiten, stellt die API verschiedene Parameter zur Verfügung, mit denen sich die Ergebnisse eingrenzen, sortieren und seitenweise abrufen lassen. Diese Mechanismen sind besonders bei großen Datenmengen wichtig, um performante und gezielte Abfragen zu ermöglichen. Ein API-Aufruf kann dabei verschiedene Parameter enthalten. Ein typischer GET-Request könnte wie folgt aussehen:nextPageToken, den Gesamtzähler (totalCount) sowie das Flag endReached, das angibt, ob weitere Seiten zur Verfügung stehen:
Unterstützte Parameter
Die folgenden URL-Parameter werden zur Steuerung von Ergebnislisten unterstützt. Die Schreibweise ist case-sensitive.Anzahl & Paginierung
Die Anzahl der zurückgegebenen Datensätze pro API-Anfrage kann über den Parametersize gesteuert werden. Der Wert muss eine Ganzzahl zwischen 1 und 300 sein.
Wird kein size-Parameter übergeben, verwendet die API standardmäßig einen Wert von 100 Einträgen pro Seite.
Ist die angeforderte Datenmenge größer als der definierte size-Wert (bzw. größer als der Standardwert), liefert die API in der Antwort einen nextPageToken, mit dem weitere Seiten geladen werden können. Der Paginierungsmechanismus erlaubt es, große Datenmengen schrittweise abzurufen.
Beispiel
Beispiel für eine manuell gesetzte Seitengröße.Fehlercodes
Der Parameter
pageToken ermöglicht den Zugriff auf die Folgeseiten von Ergebnislisten. Der Wert wird von der API automatisch als nextPageToken zurückgegeben und muss base64-url-kodiert übergeben werden. Bei einer fehlerhaften oder ungültigen Codierung erfolgt eine Fehlermeldung.
Beispiel
Fehlercodes
Sonderfall: Produkte
Das Laden von Produkten mittels pageToken kann langsam sein, wenn mehr als 10.000 Produkte im Shop existieren. Neben dem pageToken wird bei Produkten auch einsearchAfterToken zurückgegeben.
Statt pageToken kann searchAfterToken in der URL angegeben werden, um auch bei vielen Ergebnissen die Produkte effizient laden zu können.
Beispiel
Sortierung
Die Sortierung von Ergebnissen erfolgt über den Parametersort. Er erwartet als Wert einen Feldnamen und eine Sortierrichtung (asc für aufsteigend, desc für absteigend), getrennt durch einen Doppelpunkt.
Für die Kombination mehrerer Sortierkriterien ist es erforderlich, mehrere sort-Parameter zu übergeben. Jeder Parameter steht dabei für ein einzelnes Kriterium. Eine kommaseparierte Liste innerhalb eines Parameters wird nicht unterstützt.
Falls kein Sortierparameter angegeben ist, wird standardmäßig nach der internen ID sortiert. Eine Ausnahme ist die Produktliste mit dem Filter inCategory: Dort gilt ohne eigenen sort-Parameter die im Shop gepflegte Kategoriereihenfolge – siehe Produkte – Reihenfolge bei inCategory.
Syntax
Sortierung nach Preis aufsteigend
Fehlercodes
Filter
Filter ermöglichen eine gezielte Einschränkung von Ergebnislisten. Jeder Filter folgt dem Muster.Syntax
Unterstützte Filteroperationen
Die Operationen
within, notWithin und empty stehen nur bei der Produktliste zur Verfügung (GET products und die davon abgeleiteten Endpunkte), weil nur dort Felder vom Typ Liste und Map vorkommen. Bei allen anderen Listen-Endpunkten führen sie zum Fehler UnknownOperation.Erlaubte Operationen je Feldtyp
Nicht auf jedem Feld ist eine Filteroperation erlaubt. Welche Operationen gültig sind, hängt vom Datentyp des Feldes ab. Die Aussage “Alle Produktdatenfelder sind filterbar” bedeutet also nicht, dass jedes Feld mit jeder Operation kombinierbar ist. Eine unzulässige Kombination wird nicht ignoriert, sondern mit dem Statuscode400 Bad Request und dem Typ illegalOperation abgewiesen.
Beispiele:
custom. adressiert:
Es gibt keine Operationen
like oder in. Verwenden Sie stattdessen contains (Teilstring-Suche) bzw. mehrere Filter auf dasselbe Feld, die die API als ODER verknüpft:Fehlercodes
Volltextsuche
Die meisten Endpunkte unterstützen eine Volltextsuche über den optionalen URL-ParametertextSearch. Damit lassen sich Ergebnisse nach einem Suchbegriff filtern, ohne explizite Filterfelder angeben zu müssen. Der Parameter kann mehrfach angegeben werden – mehrere Werte werden mit OR verknüpft. Die Suche ist schreibungsabhängig.
Syntax
Beispiel (einzelner Suchbegriff)
Beispiel (mehrere Suchbegriffe)
Bulk-Endpunkte
Für Massenoperationen stellt die API Bulk-Endpunkte bereit. Sie übertragen viele Datensätze in einem Request und sind deutlich effizienter als Einzelaufrufe.Gemeinsames Limit: 1000 Einträge pro Request
Wird das Limit überschritten, antwortet die API mit400 Bad Request. In diesem Fall werden keine Einträge verarbeitet und der Request wird komplett abgewiesen. Zerlegen Sie daher größere Datenmengen client-seitig in Blöcke von maximal 1.000 Einträgen.
Alle schreibenden Bulk-Endpunkte arbeiten mit POST, auch wenn sie bestehende Datensätze aktualisieren. Ein
PUT auf einen Bulk-Pfad wird nicht beantwortet.