Zum Inhalt springen

REST-Schnittstelle

Geprüft

Die REST-Schnittstelle liegt unter /api/v1 und beantwortet nur GET. Alles andere erhält 405, noch bevor der Server den Schlüssel überhaupt ansieht.

Der Zugriff wird mit einem Header nachgewiesen, siehe Übersicht.

Endpunkt Berechtigungsumfang Was es liefert
GET /account/connection stores:read Diagnose dieser Verbindung: die App, wer den Zugriff wann erteilt hat, erteilte und fehlende Berechtigungen nach Bereich, E-Shops und der Schreibmodus über KI.
GET /account/entitlements account:read Tarif des Mandanten, Funktionen und Limits mit aktueller Nutzung.
GET /affiliate/articles/:key affiliate:read Ein Hilfeartikel mit seinem Wortlaut (HTML) in allen oder in einer Sprache; Variablen nicht ersetzt.
GET /affiliate/articles affiliate:read Hilfeartikel des Partnerportals: Schlüssel, Standard/eigener, aktiviert, Reihenfolge, Status je Sprache.
GET /affiliate/campaigns/:campaignId affiliate:read Eine Kampagne des Partnerprogramms.
GET /affiliate/campaigns affiliate:read Kampagnen des Partnerprogramms eines Shops mit Vergütung, Verfügbarkeit und Anzahlen.
GET /affiliate/code-requests affiliate:read Anfragen von Partnern nach einem eigenen Rabattcode mit Status und Grund; offene zuerst.
GET /affiliate/conversions/:conversionId affiliate:read Detail einer Conversion: Beträge, Provision, Provisionsstatus mit Grund, Bestellstatus im Shop, Gutschrift, Auszahlung.
GET /affiliate/conversions affiliate:read Conversions des Partnerprogramms eines Shops: Provisionsbasis und Bestellsumme inkl. MwSt., Provision, Provisionsstatus mit Grund, Bestellstatus im Shop, Verknüpfung zur Auszahlung.
GET /affiliate/discount-codes affiliate:read Rabattcodes der Partner in einem Shop mit Anzahl der Verwendungen und Umsatz.
GET /affiliate/documents/:key/content affiliate:read Ein Rechtsdokument des Programms mit Wortlaut je Sprache (gespeicherter Text, öffentlicher Wortlaut, Version, Hashes, Quelle, PDF-Metadaten) und offenen Entwürfen.
GET /affiliate/documents affiliate:read Dokumente des Programms (Bedingungen, Vereinbarungen): Bestätigungsrichtlinie, unterschriebene Kopie, E-Mail-Anhang, Versionen je Sprache, Bereitschaft und Anzahl der Bestätigungen.
GET /affiliate/email-templates affiliate:read Vorlagen der E-Mails an Partner je Sprache (Betreff, aktiviert, mit Ereignis auch der Text) und automatische Anhänge der E-Mail „Konto freigegeben“.
GET /affiliate/links/generate affiliate:read Nachverfolgter Partnerlink auf die Startseite, ein Produkt oder eine Kategorie des Kampagnen-Shops; erhält nach dem Klick die Zuordnung zum Partner.
GET /affiliate/partners/:partnerId affiliate:read Ein Partner des Programms mit den Kampagnen, die ihm zur Verfügung stehen.
GET /affiliate/partners affiliate:read Partner des Programms mit Status, Leistung und Provisionen; Kontaktdaten nur mit personenbezogenen Daten.
GET /affiliate/payouts affiliate:read Auszahlungen von Provisionen an Partner mit Status; ohne Bank- und Rechnungsdaten.
GET /affiliate/portal affiliate:read Öffentliches Partnerportal: Adressen je Shop, Offenheit der Registrierung mit Grund, eigene Domains, Kontaktperson, Erscheinungsbild und Status der Texte je Sprache.
GET /affiliate/settings affiliate:read Einstellungen des Partnerprogramms: Provisionen, Klicks, Mindestauszahlung, Empfehlungen.
GET /affiliate/signatures/:signatureId affiliate:read Eine elektronische Unterschrift mit dem unterschriebenen Wortlaut und einer Momentaufnahme der Werte; ein unveränderlicher Eintrag, das PDF wird in der Anwendung erstellt.
GET /affiliate/signatures affiliate:read Elektronisch unterschriebene Dokumente der Partner (wer, Dokument, Version, Sprache, Shop, Zeit, Art, Prüfung, Hashes, Status) und Partner, denen eine Unterschrift fehlt; nur Lesen, eine Unterschrift entsteht ausschließlich im Portal.
GET /affiliate/statistics affiliate:read Statistik des Partnerprogramms: Verlauf nach Tagen, Zuordnungsquellen, Rangliste der Partner.
GET /affiliate/summary affiliate:read Übersicht des Partnerprogramms eines Shops für einen Zeitraum: Klicks, Conversions, Provisionen, Partner.
GET /affiliate/variables affiliate:read Register der Inhalts- und E-Mail-Variablen des Partnerprogramms: kanonische Namen, Aliasse, Typ, Einsatzorte, Beispiel; optionale Prüfung eines Textes auf unbekannte Variablen.
GET /analytics/advertising reports:read Werbung: Ausgaben, Budget, ROAS, Werbekostenanteil, CPA, durchschnittlicher Bestellwert und MER mit Vergleich; Google Ads und Meta Ads, Klicks aus GA4, 6 Monate.
GET /analytics/channels analytics:read Besucherkanäle einschließlich ChatGPT und anderer KI-Quellen.
GET /analytics/comparison reports:read Umsatz im Vergleich: Umsatz, Bestellungen, AOV, Besuche, CR und KI/LLM gegenüber dem Vorzeitraum oder Vorjahr.
GET /analytics/monthly reports:read Umsatz, Bestellungen und Besuche nach Monaten (höchstens 24), zum Beispiel im Jahresvergleich.
GET /analytics/order-coverage analytics:read Abdeckung der Bestellungen durch das Tracking.
GET /analytics/order-heatmap reports:read Wann Bestellungen eingehen: Wochentag × Stunde, stärkster Tag und stärkste Stunde.
GET /analytics/overview analytics:read Besuche, Bestellungen, Umsatz, Konversionsrate, AOV, Anteil der KI-Quellen.
GET /analytics/revenue-sources reports:read Woher der Umsatz kam: Kanäle, Summen für KI/LLM, MitoOps und Affiliate, Akquise laut GA4.
GET /analytics/seo analytics:read Search Console nach Suchanfrage oder Seite.
GET /automations/catalog automations:read Katalog der Automatisierungen: Auslöser, Bedingungsfelder, Operatoren, Aktionen, Vorlagen und catalogVersion.
GET /automations/:workflowId automations:read Eine Automatisierung mit DSL und Validierungsergebnis.
GET /automations automations:read Automatisierungen des Mandanten mit Status und Shop-Umfang.
GET /automations/options automations:read Optionsliste für ein Feld einer Automatisierung (Status, Versandarten, Zahlungen, Vorlagen, Reklamationen…): der Wert für die DSL und ein Name.
GET /automations/:workflowId/runs automations:read Verlauf der Ausführungen einer Automatisierung.
GET /automations/templates automations:read Fertige Automatisierungsvorlagen mit DSL.
GET /chatbot/conversations/:sessionId chatbot-conversations:read Transkript einer Unterhaltung mit dem Web-Chatbot einschließlich der Quellen der Bot-Antworten.
GET /chatbot/conversations chatbot-conversations:read Unterhaltungen von Kunden mit dem Web-Chatbot, beginnend mit der zuletzt aktiven, mit der ersten Frage; Cursor.
GET /chatbot/outcomes chatbot:read How web chatbot conversations ended: since when the outcome is measured, measured and unmeasured conversations, known and unknown outcome, resolved, unresolved, bot error and resolution rate with its denominator; N/A with a reason when the denominator is zero. Totals only.
GET /chatbot/stats chatbot:read Statistik des Web-Chatbots für einen Zeitraum: Trichter der Sprechblase aus einer einzigen Messung (ältere Zahlen kommen als historische mit), Öffnungsrate des Chats, Unterhaltungen, Ergebnis auf Ebene der Unterhaltung, Bewertungen.
GET /chatbot/topics chatbot:read Worum es in den Unterhaltungen ging: Anteile der Themen aus einer geschlossenen Taxonomie, Lösungsrate und Kandidaten für Wissenslücken je Thema, die häufigsten Produkte, der Typ der Startseite und der Verlauf nach Tagen. Die Anteile werden aus den ausgewerteten Unterhaltungen berechnet, deren Anzahl ebenfalls geliefert wird. Nur Summen.
GET /claims/config-drafts/:draftId claims-settings:read Status eines Änderungsvorschlags für die Reklamationseinstellungen (wartend, geschrieben, abgelehnt).
GET /claims/configuration claims-settings:read Reklamationseinstellungen: Tags, Felder, Rückversand, das Formular im Shop und Formulartypen.
GET /claims/:code claims:read Eine Reklamation mit Positionen, Erstattungen, Rücksendungen, Tags, Zeitachse und versendeten E-Mails.
GET /claims claims:read Reklamationen und Retouren eines Shops mit Verknüpfung zur Bestellung.
GET /claims/refund-options claims-settings:read Refunds: variable symbol source, refund coupon validity, coupon in the form, when the form asks for an account number.
GET /claims/:code/refund-readiness claims:read Claim before a refund: what the customer requests, masked account, variable symbol, mode and whether the claim can be deleted.
GET /claims/refund-settings claims-settings:read Erstattungen von Reklamationen: Modus, Bankkonten mit Eignung für Zahlungsaufträge (maskiert), Standard- und manuelles Konto.
GET /claims/routes claims-settings:read Rückversand für Reklamationen: Routen, Adressen, Versandprofile mit IDs und Retourenunterstützung, Falltypen.
GET /claims/settings claims:read Reklamationsprozesse mit IDs und Namen (Typen, Schritte, Status, Fristen), Tags; Moduleinstellungen mit dem Berechtigungsbereich claims-settings:read.
GET /claims/statistics claims:read Statistik der Reklamationen und Retouren für einen Zeitraum: Anzahlen, Bearbeitungszeiten, Typen, Bewertungen, Gründe.
GET /claims/templates claims-settings:read E-Mail-Vorlagen der Reklamationen (Betreff, Text, wann und ob sie automatisch versendet werden) und Dokumentvorlagen.
GET /content/articles products:read Blogartikel und Shop-Inhalte aus dem kanonischen Spiegel nach Titel oder Text.
GET /coupons/activation-link coupons:read Ein Link, der einen VORHANDENEN Gutschein im Warenkorb des Kunden anwendet. Erstellt keine Gutscheine.
GET /coupons/activation-status coupons:read Ob sich ein Gutschein im Shop über den Aktivierungslink verwenden lässt: Spiegel des Gutscheins + Status des Codes auf der Website.
GET /coupons/capabilities coupons:read Was die Plattform des Shops mit Gutscheinen kann. Vor dem Anlegen lesen.
GET /coupons/:code coupons:read Ein Gutschein nach Code.
GET /coupons coupons:read Rabattgutscheine des Shops mit Rabattart und -höhe, Gültigkeit und abgeleitetem Status.
GET /customers/:customerKey customers:read Ein Kunde aus dem Verzeichnis: Identität, Shops, Beträge über die gesamte Kundenbeziehung und optional für einen Zeitraum, aufgeschlüsselt nach Shop.
GET /customers customers:read Kundenverzeichnis: Identität (mit Maskierung personenbezogener Daten), Shops, Sprache, Anzahlen über die gesamte Kundenbeziehung und Umsatz je Währung; optionaler Filter nach Kaufaktivität in einem Zeitraum.
GET /customers/performance reports:read Kunden als Pseudonyme: Bestellungen, Umsatz, LTV, neue und wiederkehrende.
GET /credit-notes invoices:read Suche in Gutschriften.
GET /documents invoices:read Buchhaltungsbelege einer Art (Rechnungen, Proformarechnungen, Gutschriften) seitenweise mit Lebenszyklus, Status in der Quelle, Gültigkeitsfilter und PDF-Verfügbarkeit.
GET /documents/:documentType/:code/pdf invoices:read PDF einer Rechnung, Proformarechnung oder Gutschrift (Base64 und SHA-256), dieselben Bytes wie auf dem Bildschirm.
GET /invoices/:invoiceCode invoices:read Eine Rechnung mit Belegpositionen, Gutschriften, Proformarechnungen und der Bestellnummer.
GET /invoices invoices:read Suche in Rechnungen.
GET /inventory/movements inventory:read Verlauf der Lagerbewegungen: wann, was, wie viel, Art, Herkunft, Bestellung.
GET /inventory/availability inventory:read Lagerbestand mehrerer Positionen auf einmal.
GET /inventory/stock inventory:read Lagerbestand einer Position einschließlich der Quelle des Wertes.
GET /orders/:orderCode orders:read Eine gespeicherte Bestellung einschließlich Positionen.
GET /orders orders:read Gespeicherte Bestellungen eines Shops, die neueste zuerst.
GET /availabilities/drafts/:draftId products:read Status eines Änderungsvorschlags für die Verfügbarkeitsliste: wartet auf Freigabe, mit Ergebnis geschrieben, abgelehnt, abgelaufen.
GET /availabilities products:read Verfügbarkeitsliste des Shops: Name, Beschreibung, Einlagerungs- und Lieferzeit, Bedeutung für Google, Farbe, Standardrolle.
GET /catalog/category-content-drafts/:draftId category-content:read Status eines Kategorietext-Vorschlags: wartet auf Freigabe, geschrieben, abgelehnt, abgelaufen.
GET /categories/:guid/content category-content:read Texte einer Kategorie (obere und untere Beschreibung, SEO-Titel und -Beschreibung) mit Hash und Schreibbarkeit.
GET /categories products:read Kategorien des Shops mit Anzahl der Produkte.
GET /catalog/product-content-drafts/:draftId product-content:read Status eines Produkttext-Vorschlags: wartet auf Freigabe, geschrieben mit Shop-Hinweisen, abgelehnt, abgelaufen.
GET /products/:code/content product-content:read Texte eines Produkts aus dem Shop (Beschreibung, Kurzbeschreibung, SEO-Titel und -Beschreibung) mit Hash und Schreibbarkeit.
GET /product-content/policy product-content:read Inhaltsrichtlinie des Shops ohne Aufruf des Shops: was dieser Zugang lesen und vorschlagen darf, welche Felder die Plattform schreibt, Freigabemodus und autonomes Schreiben, Limits und Hashes.
GET /products/:code products:read Ein Produkt nach Code einschließlich Kategorie und Preis aus der Produktkarte.
GET /products products:read Produktsuche nach Name, Code, EAN oder PLU.
GET /reports/financial-summary reports:read Finanzübersicht eines Zeitraums; mit purchase-prices:read auch Wareneinsatz, Rohgewinn und Marge.
GET /sales/order-performance reports:read Umsatz je Bestellung mit Summen für den gesamten Zeitraum; mit purchase-prices:read auch Einkauf, Gewinn und Marge.
GET /sales/product-performance reports:read Verkäufe je Produkt mit Summen für den gesamten Zeitraum.
GET /search-console/query search-console:read Search Console nach Tag, Suchanfrage, Seite, Land und Gerät, mit Paginierung und Inhalts-Hash.
GET /search-console/status search-console:read Search-Console-Status eines Shops: Verbindung, Property, Berechtigung, Synchronisierung und Umfang des Archivs.
GET /shipping/carriers shipping:read Verbundene Versanddienstleister und Profile, ohne Zugangsdaten.
GET /shipping/shipments/:shipmentId shipping:read Eine Sendung mit allen Sendungsverfolgungsereignissen.
GET /shipping/shipments shipping:read Sendungen mit Versanddienstleister, Land, Übergabe- und Zustellzeit, seitenweise.
GET /shipping/stats shipping:read Zustellstatistik je Versanddienstleister: Anzahlen, Erfolgsquote, Median und p90 der Zustellzeit, Länder.
GET /stores/integration-status stores:read Status des MitoOps-Codes auf der Website je Shop: installiert, Version, Module, Bereitschaft des Gutscheins per Link.
GET /stores stores:read Shops des Mandanten mit ihrem Code.
GET /suppliers/:supplierId purchasing:read Ein Lieferant mit Angeboten und Kostenbestandteilen.
GET /suppliers purchasing:read Lieferanten mit Angeboten und Kostenbestandteilen.
GET /webhooks/endpoints/:endpointId/deliveries webhooks:read Zustellungsprotokoll eines Endpoints ohne Inhalte.
GET /webhooks/endpoints/:endpointId webhooks:read Ein Webhook-Endpoint mit der Anzahl ausstehender Zustellungen.
GET /webhooks/endpoints webhooks:read Webhook-Endpoints des Mandanten ohne Secrets und der Zustand der Warteschlange.
GET /webhooks/events webhooks:read Katalog der Ereignisse ausgehender Webhooks, Umschlag und Signatur.
Route Berechtigungsbereich Was es liefert
GET /capabilities — was dieser Schlüssel aufrufen darf
GET /openapi.json — die maschinenlesbare Beschreibung der Schnittstelle

GET /capabilities ist der schnellste Weg herauszufinden, was ein Schlüssel öffnet: Es liefert genau das, was seine Berechtigungsbereiche erlauben, nicht den ganzen Katalog. Die genauen Parameter und Antwortfelder jedes Aufrufs stehen in openapi.json.

Jede Antwort hat zwei Teile: data und meta.

{
"data": [ { "market": "sk", "name": "Mein Shop" } ],
"meta": { "requestId": "…", "count": 1, "hasMore": false, "nextCursor": null }
}

meta.requestId kennzeichnet den Aufruf. Wenn etwas schiefgeht, ist das der Wert, an dem der Support erkennt, welchen Aufruf Sie meinen.

Die nächste Seite fordern Sie an, indem Sie den nextCursor aus der Antwort im Parameter cursor zurücksenden. Alle anderen Parameter müssen gleich bleiben: Ein Cursor gehört zu der Abfrage, aus der er stammt, und bei einem anderen Shop oder Zeitraum lehnt die Schnittstelle ihn ab (400). Das Ende erkennen Sie an hasMore, nicht an der Anzahl der gelieferten Datensätze. Ein ungültiger Cursor ist ein Fehler, kein leeres Ergebnis: Eine leere Antwort sähe wie das Ende der Daten aus, und ein Export würde still unvollständig.

Seitenzahlen gibt es bewusst nicht: Kommt zwischen zwei Aufrufen ein Datensatz hinzu, zeigt „Seite 2“ nicht mehr dorthin, wohin sie eben noch gezeigt hat.

Bei Produkten, Rechnungen und Gutschriften sind das zwei Modi einer Adresse: Ohne query erhalten Sie eine seitenweise Auflistung, die neuesten zuerst (paginiert und auf einen Zeitraum einschränkbar); mit query erhalten Sie eine nach Relevanz sortierte Suche (höchstens limit Datensätze). Die Suche wird weder paginiert noch auf einen Zeitraum eingeschränkt: Die Kombination von query mit cursor, from oder to ergibt 400, statt den Filter still zu ignorieren. Um den gesamten Datenbestand auszulesen, verwenden Sie die Auflistung ohne query.

Bestellungen, Belege, Sendungen, Statistiken, Analytik und Berichte lassen sich mit from und to in der Form YYYY-MM-DD einschränken.

  • Beide Grenzen sind inklusive. to=2026-08-05 umfasst den ganzen 5. August, nicht die Mitternacht an seinem Beginn.
  • Der Tag wird so genommen, wie der Shop ihn gesendet hat: in seiner eigenen Zeitzone, so wie ihn auch die Mitarbeitenden in der Anwendung sehen.
  • Bestellungen werden nach dem Datum der Bestellung sortiert, Sendungen nach dem Datum, an dem die Sendung angelegt wurde.
  • Rechnungen und Gutschriften nach dem Steuerdatum; wenn ein Beleg keines hat, nach dem Ausstellungsdatum. Das ist dieselbe Semantik, mit der die Anwendung Belege Zeiträumen zuordnet. Welcher Wert den Beleg eingeordnet hat, sehen Sie im Feld businessDate.
  • Verkäufe je Produkt nach dem Belegdatum; hier ist der Zeitraum Pflicht.
  • Der längste Zeitraum beträgt 366 Tage. Alles Längere wird abgelehnt.
  • Ohne Zeitraum liefern Sendungen und Statistiken die letzten 30 Tage, Analytik und Finanzübersicht den laufenden Monat. Die Antwort nennt den Zeitraum immer.
  • Ein umgekehrter Zeitraum ist ein Fehler, kein leeres Ergebnis: Sonst sähe ein Tippfehler wie ein Zeitraum ohne Belege aus.

Bestellungen akzeptieren weiterhin todayOnly. Es lässt sich nicht mit from/to kombinieren: Das sind zwei Antworten auf dieselbe Frage.

  • purchasePriceWithoutVat bei einer Bestellposition ist der Einkaufspreis zum Zeitpunkt der Bestellung, so wie ihn der Shop gespeichert hat. Es ist nicht der Preis aus der heutigen Produktkarte; dieser ist purchasePrice in products/{code}.
  • cogs in der Finanzübersicht ist der Wareneinsatz des Zeitraums aus allen Bestellungen; null bedeutet, dass die Einkaufspreise für zu wenige Zeilen bekannt sind (cogsCoverage). Dann wird auch der Rohgewinn nicht angezeigt: lieber nichts als eine falsche Zahl.
  • grossProfit ist der Umsatz ohne MwSt. abzüglich des Wareneinsatzes, grossMargin dasselbe in Prozent. resultAfterCosts ist der Rohgewinn abzüglich Versand und abzüglich der Kosten des Unternehmens: eine Kennzahl für die Unternehmensführung, kein buchhalterischer Gewinn.
  • Bei den Verkäufen je Produkt ist purchaseCostWithoutVat der Einkaufspreis zum Belegzeitpunkt aus dem Abgleich mit dem Katalog; unmappedLines gibt an, wie viele Zeilen nicht zugeordnet werden konnten.
  • Alle Beträge in Berichten und Analytik sind in EUR (Feld currency), umgerechnet zum Kurs zum Zeitpunkt der Synchronisierung. Bestellungen und Belege tragen ihre eigene Währung.

Ohne den Berechtigungsbereich purchase-prices:read fehlen diese Felder in der Antwort: nicht null, sondern nicht vorhanden.

Die Zustellstatistik (shipping/stats) misst die Zeit von der Übergabe an den Versanddienstleister bis zum ersten Zustellereignis in den Sendungsverfolgungsereignissen. Aus dem Bestelldatum wird nichts berechnet. Eine Sendung, der einer der beiden Punkte fehlt, fließt nicht in den Median ein; wie viele eingeflossen sind, gibt delivery.measured an. Jede Sendung trägt dieselben zwei Zeitpunkte in handedOverAt und deliveredAt.

deliveryRate ist der Anteil zugestellter Sendungen unter denen, deren Schicksal entschieden ist (zugestellt, zurückgesendet, fehlgeschlagen). Eine Sendung unterwegs ist noch weder Erfolg noch Misserfolg; eine stornierte Sendung ist Ihre Handlung, kein Versagen des Versanddienstleisters, und wird gar nicht gezählt.

inventory/stock liefert quantity und source: aus welchem Bestandsmodell der Wert stammt (Varianten, Bilanz des Shops, Produktkarte). Wenn der Shop eine Bilanz führt, stehen auch physical, available (verfügbar für den Verkauf) und reserved (in Bestellungen reserviert) zur Verfügung; andernfalls sind sie null. Die Schnittstelle erfindet keinen „Bestand am Lager“, den die Anwendung nicht führt.

Der Lagerbestand (inventory/stock und inventory/availability, Berechtigungsbereich inventory:read) sagt, wie viel von einem Produkt vorhanden ist; die Verfügbarkeitsliste (/availabilities, Berechtigungsbereich products:read) enthält die benannten Zustände, die ein Shop Kunden neben einem Produkt anzeigt, zum Beispiel Auf Lager oder Auf Bestellung.

GET /availabilities?market=sk liefert in data die Einträge der Liste eines Shops: id, name, description, onStockHours, deliveryHours, meaning (die Bedeutung für Google Shopping: in_stock, backorder, preorder, out_of_stock), color, system, defaultRoles (die Standardrolle im Shop) und pairingRows (in wie vielen Zeilen der Verfügbarkeitszuordnung der Eintrag vorkommt). meta trägt market, manageable und reason: ob sich die Liste aus MitoOps ändern lässt und, falls nicht, warum (PLATFORMA, BEZ_ROZSIRENIA, PROSTREDIE).

Über REST lässt sich die Liste nicht ändern. Eine Änderung vorbereiten kann nur ein Assistent über MCP, und zwar als Vorschlag mit dem sensiblen Berechtigungsbereich availabilities:draft; in den Shop schreibt ihn ein Mensch, indem er ihn in der Anwendung freigibt. Den Status eines solchen Vorschlags können Sie über REST lesen: GET /availabilities/drafts/:draftId liefert den status (pending, writing, executed, partial, failed, rejected, expired), die Vorschau und nach der Freigabe das Ergebnis je Position. Einzelheiten in der MCP-Schnittstelle.

Für Kunden gibt es zwei verschiedene Lesezugriffe, und wer sie verwechselt, liest eine andere Zahl als erwartet:

  • /customers und /customers/{customerKey} (Berechtigungsbereich customers:read) sind das Verzeichnis: dieselbe Projektion, die die Mitarbeitenden in der Ansicht Kunden sehen und die in den Export geht, also Identität, Shops, Land, Sprache, Anzahlen und Daten.
  • /customers/performance (Berechtigungsbereich reports:read) ist die Analytik über den Rohbestellungen: Der Kunde ist nur ein Pseudonym, Name und Kontaktdaten sind darin überhaupt nicht enthalten.

Von außen ist market bei beiden Pflicht. Ohne ihn würde über alle Shops des Mandanten gelesen, auch über diejenigen, die dieser Zugriff nicht abdeckt.

customers:read allein liefert das Pseudonym (customerKey), Shops, Land, Sprache, die Anzahl der Bestellungen und die Daten der ersten und der letzten Bestellung. Darüber hinaus:

  • Name, Firma, E-Mail, Telefon und Marketing-Geschlecht nur mit personal-data:read,
  • Umsatz, durchschnittliche Bestellung und LTV nur mit reports:read.

Felder, für die Sie keinen Berechtigungsbereich haben, werden entfernt, nicht auf null gesetzt. Ein null an der Stelle der E-Mail würde bedeuten „dieser Kunde hat keine E-Mail“, was nicht stimmt; ein fehlender Schlüssel bedeutet „Sie haben kein Recht darauf“.

customerKey ist der SHA-256-Hash der normalisierten E-Mail-Adresse. Es ist dasselbe Pseudonym, das Belege tragen (customerEmailHash) und das /customers/performance verwendet, sodass sich die drei Sichten verknüpfen lassen, ohne irgendwohin eine E-Mail-Adresse zu senden.

Das Verzeichnis hat einen optionalen Filter purchaseFrom / purchaseTo (YYYY-MM-DD, beide Grenzen inklusive). Er bedeutet Kaufaktivität im Zeitraum: Der Kunde hat in diesem Intervall mindestens eine Bestellung. Er ist kein Filter auf das Datum des ersten oder letzten Kaufs.

Mit einem Zeitraum erscheinen die Felder periodFrom, periodTo, periodOrdersCount und periodRevenueByCurrency neben den Werten über die gesamte Kundenbeziehung (ordersCount, revenue, lifetimeRevenue, firstOrderAt, lastOrderAt), nie an ihrer Stelle. Die Werte über die gesamte Kundenbeziehung ändern sich mit dem Zeitraum nicht.

Umsatz, durchschnittliche Bestellung und LTV sind ein Array je Währung, nie eine einzelne Zahl. Ein Kunde mit Bestellungen in EUR und in CZK hat zwei Einträge; sie zu einem einzigen Skalar zu addieren hieße, Kronen zu Euro zu addieren. Dasselbe gilt für /customers/performance: Eine Zeile ist ein Paar (Kunde, Währung), und die Summen des Filters stehen in totals.revenueByCurrency.

  • language ist die Sprache des Shops, in dem der Kunde bestellt hat (source: "store_locale"), nicht seine eigene Wahl. Eine ausdrückliche Sprachpräferenz des Kunden erfasst die Anwendung derzeit nicht.
  • marketingGender (male / female / unknown) ist eine Schätzung aus dem Vornamen, keine Angabe des Kunden. Die Herkunft steht immer in genderSource (derzeit ausschließlich name_inference oder unknown), die Zuverlässigkeit in genderConfidence. Ein Firmenkunde hat das Feld nicht. Wer es weiter anzeigt, sollte „aus dem Namen geschätzt“ sagen, nie „vom Kunden angegeben“. Es liegt wie der Name selbst hinter personal-data:read.

Aufrufe über die Daten eines einzelnen Shops erfordern dessen Code im Parameter market. GET /stores liefert die Liste der Codes.

Hat der Schlüssel für diesen Shop keinen Berechtigungsbereich, lautet die Antwort 403, keine leere Liste. Eine leere Liste ließe sich nicht von einem Shop ohne Bestellungen unterscheiden. Ein Datensatz eines anderen Shops (zum Beispiel eine Sendung) ergibt 404.

Eine Fehlerantwort hat immer dieselbe Form und trägt einen Code. Die Liste der Status steht in der Übersicht.

Terminal window
# Bestellungen eines Zeitraums, seitenweise
curl -H "Authorization: Bearer <Ihr Schlüssel>" \
"https://<Ihre Adresse>/api/v1/orders?market=sk&from=2026-08-01&to=2026-08-31&limit=50"
# Zustellstatistik für August
curl -H "Authorization: Bearer <Ihr Schlüssel>" \
"https://<Ihre Adresse>/api/v1/shipping/stats?market=sk&from=2026-08-01&to=2026-08-31"
# Finanzübersicht für August (mit dem Recht auf Einkaufspreise auch der Rohgewinn)
curl -H "Authorization: Bearer <Ihr Schlüssel>" \
"https://<Ihre Adresse>/api/v1/reports/financial-summary?market=sk&from=2026-08-01&to=2026-08-31"
# Lagerbestand von drei Positionen
curl -H "Authorization: Bearer <Ihr Schlüssel>" \
"https://<Ihre Adresse>/api/v1/inventory/availability?market=sk&codes=A100,A101,A102"
# Die Verfügbarkeitsliste des Shops
curl -H "Authorization: Bearer <Ihr Schlüssel>" \
"https://<Ihre Adresse>/api/v1/availabilities?market=sk"