Zum Hauptinhalt übergehen

Sticker Mule API

Die Sticker Mule API ermöglicht es Ihnen, Produkte nachzubestellen und Ihre gespeicherten Artikel, Adressen und Zahlungsmethoden über Ihren eigenen Code abzurufen. Es handelt sich um eine kleine REST-API, die mit einem persönlichen API-Schlüssel authentifiziert wird.

Schnellstart

1. Generieren Sie einen API-Schlüssel

Öffnen Sie Ihre Kontoeinstellungen und generieren Sie unter "Shop-Einstellungen" einen API-Schlüssel. Kopieren Sie ihn sofort, er wird nur einmal angezeigt.

Öffnen Sie die Kontoeinstellungen

2. Rufen Sie die API auf.

Senden Sie Ihren Schlüssel als Bearer-Token. In diesem Beispiel wird eine Bestellung für einen gespeicherten Artikel aufgegeben:

POST /api/orders
curl -X POST https://www.stickermule.com/api/orders \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [{ "id": "456", "quantity": 50 }],
    "addressId": "22",
    "paymentId": "7"
  }'

Authentifizierung

Jede Anfrage muss Ihren API-Schlüssel als Bearer-Token im Authorization-Header enthalten.

Authorization: Bearer YOUR_API_KEY
  • Die API ist nur für persönliche Konten, nicht für Teamkonten verfügbar.
  • Jedes Konto hat einen Schlüssel. Die Generierung eines neuen Schlüssels ersetzt den alten.
  • Behandeln Sie den Schlüssel wie ein Passwort. Damit können Bestellungen aufgegeben und Ihre gespeicherten Daten abgerufen werden.

Basis-URL

Alle Endpunkte sind relativ zu dieser Basis-URL.

https://www.stickermule.com/api

Endpunkte

Gibt die Artikel zurück, die Sie nachbestellen können. Die ID jedes Artikels ist beim Erstellen einer Bestellung als items[].id gültig.

GET /api/items
curl "https://www.stickermule.com/api/items?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Abfrageparameter

ParameterTypStandardBeschreibung
limitnumber20Anzahl der zurückzugebenden Artikel, von 1 bis 50.
offsetnumber0Anzahl der Artikel, die vor der Ergebnisrückgabe übersprungen werden sollen.
currencystringUSDFür die Preisangaben wird der ISO 4217 Währungscode verwendet.
localestringenFür Produktnamen und Preise verwendetes Locale.

Antwort

Die Ergebnisse werden mit limit und offset paginiert, und canLoadMore ist wahr, wenn weitere Artikel verfügbar sind. Da die Paginierung offsetbasiert ist, können sich die Seiten verschieben, wenn neue Bestellungen eingehen.

FeldTypBeschreibung
idstringArtikel-ID. Verwenden Sie diese als items[].id beim Erstellen einer Bestellung.
namestring | nullBenutzerdefinierter Name, den Sie dem Artikel gegeben haben, falls vorhanden.
productIdnumberSticker Mule Produkt-ID.
productNamestring | nullProduktname oder null, falls das Produkt nicht mehr verfügbar ist.
quantitynumberMenge aus der ursprünglichen Bestellung.
sizeRegularItemDimensions | TShirtDimensions | HoodieDimensionsArtikelgröße. Für T-Shirts und Heavyweight T-Shirts, ein Objekt mit der Kleifergröße __typename TShirtDimensions und einer Größe. Für Hoodies, __typename HoodieDimensions und einer Größe. Für alle anderen Produkte, physische Abmessungen in Zoll __typename RegularItemDimensions und Breite und Höhe.
isSizeRequiredbooleanWahr, wenn für die Nachbestellung des Produkts eine Kleidergröße benötigt wird (T-Shirts, Heavyweight T-Shirts und Hoodies). Andernfalls falsch.
buyingOptionsobject | nullZulässige Nachbestellmengen als min, max und increment. null, falls das Produkt nicht verfügbar ist.
retailPricenumber | nullPreis bei Mindestmenge oder null, falls kein Preis verfügbar ist.
artworkUrlsstring[]URLs der genehmigten Grafiken für den Artikel.
Beispielantwort
{
  "items": [
    {
      "id": "456",
      "name": "Logo stickers",
      "productId": 12,
      "productName": "Die cut stickers",
      "quantity": 50,
      "size": { "__typename": "RegularItemDimensions", "width": 3, "height": 3 },
      "isSizeRequired": false,
      "buyingOptions": {
        "quantity": { "min": 50, "max": 5000, "increment": 5 }
      },
      "retailPrice": 79,
      "artworkUrls": ["https://cdn.stickermule.com/artwork.png"]
    },
    {
      "id": "789",
      "name": "Team t-shirt",
      "productId": 34,
      "productName": "Custom t-shirts",
      "quantity": 25,
      "size": { "__typename": "TShirtDimensions", "size": "sizeL" },
      "isSizeRequired": true,
      "buyingOptions": {
        "quantity": { "min": 1, "max": 500, "increment": 1 }
      },
      "retailPrice": 18,
      "artworkUrls": ["https://cdn.stickermule.com/shirt.png"]
    },
    {
      "id": "812",
      "name": "Team hoodie",
      "productId": 56,
      "productName": "Custom hoodies",
      "quantity": 10,
      "size": { "__typename": "HoodieDimensions", "size": "sizeM" },
      "isSizeRequired": true,
      "buyingOptions": {
        "quantity": { "min": 1, "max": 500, "increment": 1 }
      },
      "retailPrice": 32,
      "artworkUrls": ["https://cdn.stickermule.com/hoodie.png"]
    }
  ],
  "canLoadMore": true
}

Gibt Ihre gespeicherten Lieferadressen zurück, die Standardadresse an erster Stelle. Jede ID kann beim Erstellen einer Bestellung als addressId verwendet werden.

GET /api/addresses
curl https://www.stickermule.com/api/addresses \
  -H "Authorization: Bearer YOUR_API_KEY"

Antwort

FeldTypBeschreibung
idstringAdress-ID. Verwenden Sie diese als addressId beim Erstellen einer Bestellung.
namestring | nullVollständiger Name des Empfängers.
firstNamestring | nullVorname des Empfängers.
lastNamestring | nullNachname des Empfängers.
companyNamestring | nullFirmenname, falls vorhanden.
addressLine1stringStraßenadresse.
addressLine2string | nullZusätzliche Adresszeile, falls vorhanden.
cityNamestringOrt.
stateNamestring | nullName des Bundeslandes oder der Provinz, falls vorhanden.
stateAbbreviationstring | nullAbkürzung des Bundeslandes oder der Provinz, falls vorhanden.
zipCodestringPostleitzahl.
countryIsostringISO 3166 Ländercode, z. B. US.
countryNamestringLandname.
phonestring | nullKontakttelefonnummer, falls vorhanden.
isDefaultbooleanWahr für Ihre Standard-Lieferadresse.
Beispielantwort
{
  "addresses": [
    {
      "id": "22",
      "name": "Jane Doe",
      "firstName": "Jane",
      "lastName": "Doe",
      "companyName": null,
      "addressLine1": "123 Main St",
      "addressLine2": null,
      "cityName": "Amsterdam",
      "stateName": null,
      "stateAbbreviation": null,
      "zipCode": "1000AA",
      "countryIso": "NL",
      "countryName": "Netherlands",
      "phone": "+31612345678",
      "isDefault": true
    }
  ]
}

Gibt Ihre gespeicherten Zahlungsmethoden zurück, die Standardmethode an erster Stelle. Jede ID kann beim Erstellen einer Bestellung als paymentId verwendet werden.

GET /api/payments
curl https://www.stickermule.com/api/payments \
  -H "Authorization: Bearer YOUR_API_KEY"

Antwort

FeldTypBeschreibung
idstringZahlungsmethoden-ID. Verwenden Sie diese als paymentId beim Erstellen einer Bestellung.
ccTypestringKartenmarke, wie beispielsweise Visa oder Mastercard.
lastDigitsstringDie letzten vier Ziffern der Karte.
expirationobjectAblaufdatum der Karte in Monat und Jahr.
isDefaultbooleanWahr für Ihre Standard-Zahlungsmethode.
Beispielantwort
{
  "payments": [
    {
      "id": "7",
      "ccType": "visa",
      "lastDigits": "1007",
      "expiration": { "month": 7, "year": 2028 },
      "isDefault": true
    }
  ]
}

Zeigt Ihre aufgegebenen Bestellungen an, beginnend mit der neuesten. Die Nummer jeder Bestellung entspricht der Nummer, die von POST /api/orders zurückgegeben wird.

GET /api/orders
curl "https://www.stickermule.com/api/orders?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Abfrageparameter

ParameterTypStandardBeschreibung
limitnumber10Anzahl der zurückzugebenden Bestellungen, von 1 bis 50.
offsetnumber0Anzahl der Bestellungen, die vor der Ergebnisrückgabe übersprungen werden sollen.

Antwort

Die Ergebnisse werden mit limit und offset paginiert, und canLoadMore ist wahr, wenn weitere Bestellungen verfügbar sind. Da die Paginierung offset-basiert ist, können sich die Seiten verschieben, wenn neue Bestellungen aufgegeben werden.

FeldTypBeschreibung
numberstringBestellnummer. Derselbe Wert, der von POST /api/orders zurückgegeben wird.
state"complete" | "canceled" | "gift_unclaimed" | "ready_for_production" | "in_production" | "ready_to_proof" | "awaiting_scheduled_date"Status der Bestellung.
paymentState"paid" | "credit_owed" | "balance_due" | "failed" | "checkout" | "completed" | "pending" | "processing" | "void" | nullDer Zahlungsstatus der Bestellung oder null.
shipmentState"backorder" | "canceled" | "partial" | "pending" | "ready" | "shipped" | "returned_for_reship" | "reship" | "delivered"Versandstatus der Sendung. Standardmäßig "ausstehend".
placedAtstringZeitpunkt der Bestellungserteilung, als ISO 8601 Zeitstempel.
currencystringISO 4217 Währung, in der die Bestellung in Rechnung gestellt wurde.
itemTotalnumberZwischensumme der Artikel vor Versandkosten, Steuern und Rabatten.
totalnumberGesamtbetrag inklusive Versandkosten und Steuern, abzüglich Rabatte.
expectedDeliveryDatestring | nullVoraussichtlicher Liefertermin als ISO 8601 Zeitstempel oder null.
deliveredAtstring | nullZeitpunkt der Bestellungszustellung, als ISO 8601 Zeitstempel oder null.
Beispielantwort
{
  "orders": [
    {
      "number": "R286234605",
      "state": "complete",
      "paymentState": "paid",
      "shipmentState": "shipped",
      "placedAt": "2026-07-20T14:03:00.000Z",
      "currency": "USD",
      "itemTotal": 79,
      "total": 88.5,
      "expectedDeliveryDate": "2026-07-27T00:00:00.000Z",
      "deliveredAt": null
    }
  ],
  "canLoadMore": true
}

Geben Sie eine Bestellung für einen oder mehrere gespeicherte Artikel auf, die an eine gespeicherte Adresse geliefert und über eine gespeicherte Zahlungsmethode abgerechnet werden.

POST /api/orders
curl -X POST https://www.stickermule.com/api/orders \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [{ "id": "456", "quantity": 50 }],
    "addressId": "22",
    "paymentId": "7"
  }'

Anfrage-Body

FeldTypErforderlichBeschreibung
itemsarrayJaZu bestellende Artikel. Es muss mindestens ein Artikel enthalten sein.
items[].idstringJaEine Artikel-ID von GET /api/items.
items[].quantitynumberJaBestellmenge für den Artikel.
items[].sizeTShirtSize | HoodieSize | nullNeinKleidergröße, erforderlich bei der Bestellung von Bekleidung (T-Shirts, Heavyweight T-Shirts und Hoodies). Verwenden Sie die unten aufgeführten Werte, die zum Produkt passen. Bei anderen Produkten bitte weglassen.
addressIdstringJaEine Adress-ID von GET /api/addresses.
paymentIdstringJaEine Zahlungsmethoden-ID von GET /api/payments.

Eine Bestellung kann bis zu 50 Artikel enthalten. Jede Menge muss den min, max und increment Werten des Produkts aus GET /api/items entsprechen.

Kleidergrößen

Welche Größen gültig sind, hängt vom Schnitt des Produkts ab:

  • T-Shirts und Heavyweight T-Shirts (TShirtSize): "sizeYS" | "sizeYM" | "sizeYL" | "sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL" | "size3XL" | "size4XL" | "size5XL" | "size6XL" | "size7XL"
  • Hoodies (HoodieSize): "sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL"

Antwort

Beispielantwort
{
  "order": { "number": "R286234605" }
}

Fehler

Bei Fehlern wird der entsprechende HTTP-Status und ein JSON-Body mit Typ und Nachricht zurückgegeben.

Beispielantwort
{
  "type": "UserInputError",
  "message": "items is required and must be a non-empty array"
}
StatusTypBedeutung
400UserInputErrorDie Anfrage war ungültig, beispielsweise fehlte ein Feld oder die ID war unbekannt.
401UnauthorizedErrorDer Authorization-Header fehlt oder ist fehlerhaft.
403ForbiddenErrorDer API-Schlüssel ist ungültig.
500Es ist ein Fehler auf unserer Seite aufgetreten. Bitte später erneut versuchen.

Wie es zusammenpasst

  • Sie können nur Artikel bestellen, die Sie bereits zuvor bestellt haben. Sonderanfertigungen, Verpackungsband und Klebebuchstaben sind über die API nicht verfügbar.
  • Lesen Sie zuerst Ihre Artikel, Adressen und Zahlungsmethoden ein und übergeben Sie dann deren IDs an POST /api/orders.
  • GET /api/orders zeigt Ihre aufgegebenen Bestellungen an, beginnend mit der neuesten. Die Nummer jeder Bestellung entspricht der Nummer, die von POST /api/orders zurückgegeben wird.
  • Die meisten Produkte werden in ihren ursprünglichen Abmessungen (Breite und Höhe in Zoll) nachbestellt. Bekleidung (T-Shirts, Heavyweight T-Shirts und Hoodies) hat stattdessen eine Kleidergröße: GET /api/items gibt diese unter size mit isSizeRequired true zurück, und Sie übergeben items[].size, um sie zu bestellen. Die gültigen Größen hängen vom Produkt ab, und Sie können die Größe bei der Nachbestellung ändern, zum Beispiel ein sizeM T-Shirt in sizeL nachbestellen.
  • GET /api/items und GET /api/orders sind paginiert mit limit und offset. Die Endpunkte für Adressen und Zahlungen hingegen nicht.