Sticker Mule API
Met de API van Sticker Mule kun je producten herbestellen, en je opgeslagen producten, adressen en betaalmethoden opvragen vanuit je code. Het is een kleine REST-API, waarvoor je je moet aanmelden met een persoonlijke API-sleutel.
Snel aan de slag
1. API-sleutel aanmaken
Open je accountinstellingen en maak onder Instellingen webwinkel een API-sleutel aan. Kopieer die meteen, je krijgt deze maar eenmaal te zien.
Accountinstellingen openen2. API-call maken
Verstuur je sleutel als draagtoken. Dit voorbeeld plaatst een bestelling voor een opgeslagen product:
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"
}'Authenticatie
Elk verzoek moet je API-sleutel als draagtoken in de authorisatie-header bevatten.
Authorization: Bearer YOUR_API_KEY- De API is alleen voor persoonlijke account beschikbaar, niet voor teamaccounts.
- Elk account heeft één sleutel. Het genereren van een nieuwe sleutel vervangt de oude.
- Beschouw de sleutel als een wachtwoord. Hiermee kun je je bestellingen plaatsen en je opgeslagen gegevens lezen.
Basis-URL
Alle eindpunten zijn gerelateerd aan deze basis-URL.
https://www.stickermule.com/apiEindpunten
Geeft de producten weer die je kunt herbestellen. De ID van elk artikel is geldig als een items[].id bij het aanmaken van een bestelling.
GET /api/itemscurl "https://www.stickermule.com/api/items?limit=20" \ -H "Authorization: Bearer YOUR_API_KEY"Zoekparameters
Parameter Type Standaard Beschrijving limitnumber20Aantal terug te sturen producten, van 1 tot 50. offsetnumber0Aantal producten dat moet worden overgeslagen, voordat de resultaten worden teruggestuurd. currencystringUSDISO 4217-valutacode gebruikt voor prijzen. localestringenLandinstelling voor productnaam en prijs. Antwoord
Resultaten worden gepagineerd met een limiet en offset, en canLoadMore is waar, wanneer er meer producten beschikbaar zijn. Omdat de paginering is gebaseerd op offset, kunnen pagina's verschuiven naarmate nieuwe bestellingen binnenkomen.
Veld Type Beschrijving idstringProductidentificatie. Gebruik deze als items[].id bij het aanmaken van een bestelling. namestring | nullDe naam die je aan het product hebt gegeven, indien van toepassing. productIdnumberSticker Mule productidentificatie. productNamestring | nullProductnaam, of nul als het product niet langer beschikbaar is. quantitynumberAantal van de oorspronkelijke bestelling. sizeRegularItemDimensions | TShirtDimensions | HoodieDimensionsAfmetingen van het product. Voor t-shirts en heavyweight t-shirts: een object met kledingmaat met de __typename TShirtDimensions en een maat. Voor hoodies: de __typename HoodieDimensions en een maat. Voor alle andere producten: fysieke afmetingen in millimeters met de __typename RegularItemDimensions, plus breedte en hoogte. isSizeRequiredbooleanWaar als het product een kledingmaat nodig heeft om opnieuw te bestellen (t-shirts,heavyweight t-shirts en hoodies). Anders onwaar. buyingOptionsobject | nullToegestane hoeveelheden voor herhaalbestellingen als min, max en meer. Nul als het product niet beschikbaar is. retailPricenumber | nullPrijs voor minimumaantal, of nul als er geen prijs beschikbaar is. artworkUrlsstring[]URL's van de goedgekeurde illustraties voor het product. Voorbeeldantwoord{ "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 }Geeft je opgeslagen verzendadressen weer, met het standaardadres bovenaan. Elke ID kan worden gebruikt als addressId bij het aanmaken van een bestelling.
GET /api/addressescurl https://www.stickermule.com/api/addresses \ -H "Authorization: Bearer YOUR_API_KEY"Antwoord
Veld Type Beschrijving idstringAdresidentificatie. Gebruik het als addressId bij het aanmaken van een bestelling. namestring | nullVolledige naam ontvanger. firstNamestring | nullVoornaam ontvanger. lastNamestring | nullAchternaam ontvanger. companyNamestring | nullBedrijfsnaam, indien van toepassing. addressLine1stringStraatnaam. addressLine2string | nullExtra adresregel, indien van toepassing. cityNamestringStad. stateNamestring | nullNaam staat of provincie, indien van toepassing. stateAbbreviationstring | nullAfkorting staat of provincie, indien van toepassing. zipCodestringPostcode. countryIsostringISO 3166-landencode, bijvoorbeeld VS. countryNamestringNaam van het land. phonestring | nullTelefoonnummer, indien van toepassing. isDefaultbooleanDit geldt voor je standaard verzendadres. Voorbeeldantwoord{ "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 } ] }Geeft je opgeslagen betaalmethoden weer, met de standaardmethode bovenaan. Elk ID kan worden gebruikt als paymentId bij het aanmaken van een bestelling.
GET /api/paymentscurl https://www.stickermule.com/api/payments \ -H "Authorization: Bearer YOUR_API_KEY"Antwoord
Veld Type Beschrijving idstringIdentificatiecode van de betaalmethode. Gebruik deze als paymentId bij het aanmaken van een bestelling. ccTypestringMerk betaalkaart, zoals Visa of Mastercard. lastDigitsstringDe laatste vier cijfers van de betaalkaart. expirationobjectVervaldatum van de kaart, aangegeven als maand en jaar. isDefaultbooleanWaar geldt voor je standaard betaalmethode. Voorbeeldantwoord{ "payments": [ { "id": "7", "ccType": "visa", "lastDigits": "1007", "expiration": { "month": 7, "year": 2028 }, "isDefault": true } ] }Toont een lijst met je geplaatste bestellingen, de meest recente als eerste. Elk bestelnummer komt overeen met het nummer dat POST /api/orders terugstuurt.
GET /api/orderscurl "https://www.stickermule.com/api/orders?limit=10" \ -H "Authorization: Bearer YOUR_API_KEY"Zoekparameters
Parameter Type Standaard Beschrijving limitnumber10Aantal terug te sturen bestellingen, van 1 tot 50. offsetnumber0Aantal bestellingen dat moet worden overgeslagen, voordat de resultaten worden teruggestuurd. Antwoord
Resultaten worden gepagineerd met een limit en offset, en canLoadMore is waar, wanneer er meer bestellingen beschikbaar zijn. Omdat de paginering is gebaseerd op offset, kunnen pagina's verschuiven naarmate nieuwe bestellingen worden geplaatst.
Veld Type Beschrijving numberstringBestelnummer. Dezelfde waarde die wordt teruggestuurd door POST /api/orders. state"complete" | "canceled" | "gift_unclaimed" | "ready_for_production" | "in_production" | "ready_to_proof" | "awaiting_scheduled_date"De status van de bestelling. paymentState"paid" | "credit_owed" | "balance_due" | "failed" | "checkout" | "completed" | "pending" | "processing" | "void" | nullDe betalingsstatus van de bestelling, of null. shipmentState"backorder" | "canceled" | "partial" | "pending" | "ready" | "shipped" | "returned_for_reship" | "reship" | "delivered"De verzendstatus van de bestelling. Standaard ingesteld als in behandeling. placedAtstringWanneer de bestelling wordt geplaatst, als een ISO 8601-tijdstempel. currencystringISO 4217 - valuta waarin de bestelling in rekening is gebracht. itemTotalnumberSubtotaal producten, exclusief verzendkosten, btw en kortingen. totalnumberTotaalbedrag, inclusief verzendkosten en btw, minus kortingen. expectedDeliveryDatestring | nullGeschatte leverdatum als ISO 8601-tijdstempel, of null. deliveredAtstring | nullWanneer de bestelling is geleverd, als ISO 8601-tijdstempel, of null. Voorbeeldantwoord{ "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 }Plaatst een bestelling voor een of meer opgeslagen producten, die naar een opgeslagen adres worden verzonden en via een opgeslagen betaalmethode worden afgerekend.
POST /api/orderscurl -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" }'Body aanvragen
Veld Type Vereist Beschrijving itemsarrayJa Te bestellen producten. Moet minimaal één product bevatten. items[].idstringJa Een product-ID van GET /api/items. items[].quantitynumberJa Te bestellen hoeveelheid van het product. items[].sizeTShirtSize | HoodieSize | nullNee Kledingmaat, vereist bij het bestellen van kleding (t-shirts, heavyweight t-shirts en hoodies). Gebruik de onderstaande waarden die bij het product passen. Laat dit veld leeg voor andere producten. addressIdstringJa Een adres-ID van GET /api/addresses. paymentIdstringJa Een betaalmethode-ID van GET /api/payments. Een bestelling kan maximaal 50 producten bevatten. Elk aantal moet voldoen aan de minimum-, maximum- en incrementwaarden van het product zoals vermeld in de GET /api/items-aanvraag.
Kledingmaten
Welke maten beschikbaar zijn, hangt af van de pasvorm van het product:
- Gewone en oversized t-shirts (TShirtSize):
"sizeYS" | "sizeYM" | "sizeYL" | "sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL" | "size3XL" | "size4XL" | "size5XL" | "size6XL" | "size7XL" - Hoodies (HoodieSize):
"sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL"
Antwoord
Voorbeeldantwoord{ "order": { "number": "R286234605" } }- Gewone en oversized t-shirts (TShirtSize):
Fouten
Fouten geven de bijbehorende HTTP-statuscode weer, samen met een JSON-body die een type en een bericht bevat.
{
"type": "UserInputError",
"message": "items is required and must be a non-empty array"
}| Status | Type | Betekenis |
|---|---|---|
400 | UserInputError | Het verzoek was ongeldig, bijvoorbeeld door een ontbrekend veld of een onbekende ID. |
401 | UnauthorizedError | De autorisatieheader ontbreekt of is onjuist opgemaakt. |
403 | ForbiddenError | De API-sleutel is ongeldig. |
500 | — | Er ging iets mis aan onze kant. Probeer het later opnieuw. |
Hoe het werkt
- Je kunt alleen producten bestellen die je eerder hebt besteld. Producten op maat, verpakkingstape en vinylbelettering zijn niet beschikbaar via de API.
- Lees eerst je producten, adressen en betaalmethoden in, en geef vervolgens hun ID's door aan POST /api/orders.
- GET /api/orders toont een lijst met je geplaatste bestellingen, de meest recente als eerste. Elk bestelnummer komt overeen met het nummer dat POST /api/orders terugstuurt.
- De meeste producten worden opnieuw besteld met hun oorspronkelijke afmetingen (breedte en hoogte in millimeters). Kleding (t-shirts, heavyweight t-shirts en hoodies) heeft in plaats daarvan een kledingmaat: GET /api/items stuurt deze terug onder maat met isSizeRequired waar, en je geeft items[].size door om ze te bestellen. Geldige maten zijn afhankelijk van het product en je kunt de maat wijzigen bij het opnieuw bestellen, bijvoorbeeld een shirt in sizeM opnieuw bestellen als sizeL.
- GET /api/items en GET api/orders worden gepagineerd met limit en offset; de eindpunten voor adressen en betalingen niet.