Key-Format
Zwei Prefixe: pm_live_ für Produktion, pm_test_ für Sandbox. Body sind 32 Zeichen Base62, der Prefix ist Klartext zur visuellen Identifikation.
pm_live_4f3a8b9c2d1e7f6a5b4c3d2e1f0a9b8cIn EntwicklungPackMate kommt bald — jetzt für den Early Access vormerkenBald verfügbar
OpenAPI-3.1-Spec, 16 Base-Tools, DSGVO-Webhooks, Rate-Limits pro Plan. Die Referenz für Shops, die PackMate in den eigenen Stack integrieren.
Vom Install zum ersten authentifizierten API-Call. Funktioniert für REST und MCP — gleicher Key, gleiche Tools, andere Transports.
Klick „Installieren" im App Store. PackMate läuft in jedem Plan, also kannst du mit Free starten.
Einstellungen → API & MCP → Key generieren. Keys haben Prefix pm_live_ oder pm_test_ für Sandbox.
pm_live_4f3a8b9c2d1e...Nutz curl, fetch oder einen beliebigen HTTP-Client. Der X-API-Key Header authentifiziert jede Anfrage.
curl https://packmate.shop/api/v1/health \
-H 'X-API-Key: pm_live_…'Wenn du KI-Integration willst, funktioniert derselbe Key für den MCP-Server. Siehe /ai für Claude / ChatGPT-Setup.
PackMate nutzt API-Keys mit dem X-API-Key Header. Keys werden SHA-256 at Rest gehashed, sind Shop-scoped und können in einem Klick rotiert werden.
Zwei Prefixe: pm_live_ für Produktion, pm_test_ für Sandbox. Body sind 32 Zeichen Base62, der Prefix ist Klartext zur visuellen Identifikation.
pm_live_4f3a8b9c2d1e7f6a5b4c3d2e1f0a9b8cSende den Key im X-API-Key Header bei jeder Anfrage. Bearer-Token im Authorization Header wird auch akzeptiert.
X-API-Key: pm_live_…
# oder
Authorization: Bearer pm_live_…Generiere einen neuen Key im Admin, tausch ihn im Client, dann revoke den alten. PackMate unterstützt bis zu 5 aktive Keys pro Shop für gestaffelte Rotationen.
DELETE /api/v1/keys/:key_id
Response: 204 No ContentKeys haben standardmäßig Voll-Read+Write. Scoped Keys (read-only, label-only) sind auf der Roadmap — bis dahin nutz Shopify-Staff-Permissions, um zu limitieren, wer Keys generiert.
scope: read_only | label_only | full
# (read_only und label_only kommen Q3 2026)Per-Minute und Burst-Limits. Bursts werden via Token-Bucket geglättet — kurze Spikes werden nicht geblockt. Custom-Pläne verhandeln eigene Limits.
| Plan | Req / min | Burst | Parallel |
|---|---|---|---|
| Free | 60 | 120 | 5 |
| Basic | 120 | 240 | 10 |
| Pro | 300 | 600 | 25 |
| Business | 600 | 1200 | 50 |
| Custom | neg. | neg. | neg. |
Wenn du das Limit erreichst, bekommst du eine 429-Response mit Retry-After Header. Der Header sagt dir, wie viele Sekunden zu warten sind.
Standard HTTP-Semantik mit PackMate-spezifischen Error-Bodies. Jeder Error enthält ein maschinenlesbares code-Feld und eine menschenlesbare Message.
| Code | Bedeutung | Aktion |
|---|---|---|
400 | Bad Request — Body oder Query ist fehlerhaft | Prüf die Request-Form gegen die OpenAPI-Spec. |
401 | Unauthorized — fehlender oder ungültiger API-Key | Sende X-API-Key Header mit einem gültigen pm_live_ oder pm_test_ Key. |
402 | Payment Required — Plan-Cap erreicht | Upgrade Plan oder warte bis zum nächsten Abrechnungszyklus. Nutz Bulk-Reconciliation nach Upgrade. |
403 | Forbidden — Feature nicht in deinem Plan | Aktuell ist nur query_carrier_rates plan-gegated (Custom only). |
404 | Not Found — Ressource existiert nicht | Verifizier die ID. Für Bestellungen: die Order ist evtl. noch nicht synced. |
422 | Unprocessable — semantische Validierung fehlgeschlagen | Lies die error.message — typischerweise fehlende Maße oder ungültiges Material. |
429 | Too Many Requests — Rate-Limit erreicht | Back-off via Retry-After Header. Siehe Rate-Limits-Tabelle oben. |
500 | Internal Error — Bug auf unserer Seite | Retry einmal, dann Email an support@packmate.shop mit der request_id aus dem Error-Body. |
503 | Service Unavailable — Wartung oder DB-Issue | Retry mit exponentiellem Backoff. Status-Page unter status.packmate.shop. |
PackMate registriert sechs Shopify-Webhooks. Vier sind DSGVO-Pflicht; zwei sind operativ. Alle Payloads sind mit HMAC-SHA256 signiert — verifizier vor Verarbeitung.
customers/redactPflichtCustomer hat Datenlöschung beantragt. PackMate anonymisiert Customer-bezogene Pack-Historie binnen 30 Tagen.
customers/data_requestPflichtCustomer hat Datenexport beantragt. PackMate kompiliert den Export binnen 30 Tagen.
shop/redactPflichtShopify schickt das rund 48 Stunden nach der Deinstallation. PackMate löscht dann alle Daten des Shops aus seiner Datenbank.
app/uninstalledPflichtDie App wurde deinstalliert. PackMate markiert den Shop als deinstalliert, widerruft seine API-Schlüssel und beendet das Abo. Gelöscht werden die Daten mit shop/redact.
products/updateOptionalProdukt hat sich geändert — PackMate aktualisiert gecachte Maße und Metafields.
app/scopes_updateOptionalPflicht-Scopes haben sich geändert — PackMate fordert den Händler auf, neu zu autorisieren.
Alle Webhooks mit HMAC-SHA256 via deinem App-Secret signiert. Verifizier den X-Shopify-Hmac-SHA256 Header vor Verarbeitung.
Installier PackMate, generier einen API-Key, mach deine erste Anfrage — alles in unter fünf Minuten.