मुख्य कंटेंट पर जाएं

Sticker Mule API

Sticker Mule API आपको अपने कोड से ही प्रोडक्ट को दोबारा ऑर्डर करने और अपने सेव किए गए आइटम, पते और पेमेंट के तरीकों को देखने की सुविधा देती है। यह एक छोटी REST API है जो पर्सनल API key से ऑथेंटिकेट होती है।

क्विक स्टार्ट

1. API की key बनाएँ

अपने अकाउंट की सेटिंग्स खोलें और 'स्टोर सेटिंग्स' में जाकर एक API key बनाएँ। इसे तुरंत कॉपी कर लें, क्योंकि यह सिर्फ़ एक बार ही दिखाई देती है।

अकाउंट सेटिंग खोलें

2. API को कॉल करें

अपनी key को बेयरर टोकन के तौर पर भेजें। यह उदाहरण किसी सेव किए गए आइटम के लिए ऑर्डर देता है:

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"
  }'

ऑथेंटिकेशन

हर रिक्वेस्ट में ऑथराइज़ेशन हेडर में बेयरर टोकन के तौर पर आपकी API key शामिल होनी चाहिए।

Authorization: Bearer YOUR_API_KEY
  • API सिर्फ़ पर्सनल अकाउंट्स पर उपलब्ध है, टीम अकाउंट्स पर नहीं।
  • हर अकाउंट की एक key होती है। नई की बनाने पर पुरानी की हट जाती है।
  • इस key को पासवर्ड की तरह समझें। यह ऑर्डर दे सकती है और आपके सेव किए गए डेटा को पढ़ सकती है।

बेस URL

सभी एंडपॉइंट्स इस बेस URL के सापेक्ष हैं।

https://www.stickermule.com/api

अंतिमबिंदुओं

यह उन आइटम को दिखाता है जिन्हें आप दोबारा ऑर्डर कर सकते हैं। ऑर्डर बनाते समय हर आइटम की ID, items[].id के तौर पर मान्य होती है।

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

क्वेरी पैरामीटर

पैरामीटरप्रकारडिफ़ॉल्टविवरण
limitnumber20वापस की जाने वाली आइटम की संख्या, 1 से 50 तक।
offsetnumber0रिज़ल्ट दिखाने से पहले स्किप किए जाने वाले आइटम की संख्या।
currencystringUSDकीमतों के लिए ISO 4217 करेंसी कोड का इस्तेमाल किया जाता है।
localestringenप्रोडक्ट के नामों और कीमतों के लिए इस्तेमाल किया जाने वाला लोकेल।

जवाब

रिज़ल्ट्स को लिमिट और ऑफ़सेट के साथ पेज में बांटा जाता है और जब और आइटम उपलब्ध होते हैं तो canLoadMore ट्रू होता है। क्योंकि पेजिंग ऑफ़सेट-बेस्ड होती है, इसलिए नए ऑर्डर आने पर पेज बदल सकते हैं।

क्षेत्रप्रकारविवरण
idstringआइटम आइडेंटिफ़ायर। ऑर्डर बनाते समय इसे items[].id के तौर पर इस्तेमाल करें।
namestring | nullअगर आपने आइटम को कोई कस्टम नाम दिया है, तो वह।
productIdnumberSticker Mule प्रोडक्ट आइडेंटिफ़ायर।
productNamestring | nullप्रोडक्ट का नाम, या अगर प्रोडक्ट अब उपलब्ध नहीं है तो null.
quantitynumberओरिजिनल ऑर्डर से क्वांटिटी।
sizeRegularItemDimensions | TShirtDimensions | HoodieDimensionsआइटम का साइज़। टी-शर्ट और हेवीवेट टी-शर्ट के लिए, __typename TShirtDimensions और साइज़ वाला एक अपैरल साइज़ ऑब्जेक्ट। हुडीज़ के लिए, __typename HoodieDimensions और साइज़। बाकी सभी प्रोडक्ट के लिए, __typename RegularItemDimensions, चौड़ाई और ऊंचाई के साथ इंच में फ़िज़िकल डाइमेंशन।
isSizeRequiredbooleanयह तब सही होता है जब प्रोडक्ट को दोबारा ऑर्डर करने के लिए कपड़ों के साइज़ की ज़रूरत होती है (जैसे टी-शर्ट, हेवीवेट टी-शर्ट और हुडी)। वरना यह गलत होता है।
buyingOptionsobject | nullरीऑर्डर की अनुमति वाली मात्राएँ: मिनिमम, मैक्सिमम और इंक्रीमेंट अगर प्रोडक्ट उपलब्ध नहीं है, तो यह null होगा।
retailPricenumber | nullकम से कम क्वांटिटी पर प्राइस, या अगर प्राइसिंग अवेलेबल नहीं है तो null.
artworkUrlsstring[]आइटम के लिए मंज़ूर किए गए आर्टवर्क के URL।
दाहरण के तौर पर जवाब
{
  "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
}

यह आपके सेव किए गए शिपिंग पते दिखाता है, जिसमें डिफ़ॉल्ट पता सबसे पहले होता है। ऑर्डर बनाते समय हर ID को addressId के तौर पर इस्तेमाल किया जा सकता है।

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

प्रतिक्रिया

क्षेत्रप्रकारविवरण
idstringएड्रेस आइडेंटिफायर. ऑर्डर बनाते समय इसे addressId के तौर पर इस्तेमाल करें।
namestring | nullप्राप्तकर्ता का पूरा नाम।
firstNamestring | nullप्राप्तकर्ता का पहला नाम।
lastNamestring | nullप्राप्तकर्ता का नाम।
companyNamestring | nullकंपनी का नाम, यदि कोई हो।
addressLine1stringसड़क का पता।
addressLine2string | nullअगर कोई एक्स्ट्रा एड्रेस लाइन हो, तो।
cityNamestringशहर।
stateNamestring | nullराज्य या प्रांत का नाम, यदि कोई हो।
stateAbbreviationstring | nullराज्य या प्रांत का संक्षिप्त नाम, यदि कोई हो।
zipCodestringPIN code।
countryIsostringISO 3166 देश कोड, जैसे USA।
countryNamestringदेश का नाम।
phonestring | nullअगर कोई कॉन्टैक्ट फ़ोन नंबर हो तो ।
isDefaultbooleanआपके डिफ़ॉल्ट शिपिंग पते के लिए सही है।
दाहरण के तौर पर जवाब
{
  "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
    }
  ]
}

यह आपके सेव किए गए पेमेंट के तरीके दिखाता है, जिसमें डिफ़ॉल्ट वाला सबसे पहले होता है। ऑर्डर बनाते समय हर ID को paymentId के तौर पर इस्तेमाल किया जा सकता है।

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

प्रतिक्रिया

क्षेत्रप्रकारविवरण
idstringपेमेंट का तरीका बताने वाला आइडेंटिफ़ायर। ऑर्डर बनाते समय इसे paymentId के तौर पर इस्तेमाल करें।
ccTypestringकार्ड ब्रांड, जैसे कि visa या mastercard।
lastDigitsstringकार्ड के आखिरी चार अंक।
expirationobjectकार्ड की एक्सपायरी तारीख (महीना और साल)।
isDefaultbooleanआपके डिफ़ॉल्ट पेमेंट मेथड के लिए सही है।
दाहरण के तौर पर जवाब
{
  "payments": [
    {
      "id": "7",
      "ccType": "visa",
      "lastDigits": "1007",
      "expiration": { "month": 7, "year": 2028 },
      "isDefault": true
    }
  ]
}

आपके द्वारा दिए गए ऑर्डर की सूची दिखाता है, जिसमें सबसे हालिया ऑर्डर सबसे पहले होता है। हर ऑर्डर का नंबर POST /api/orders से मिलने वाले नंबर से मेल खाता है।

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

क्वेरी पैरामीटर

पैरामीटरप्रकारडिफ़ॉल्टविवरण
limitnumber10वापस किए जाने वाले ऑर्डर की संख्या, 1 से 50 तक।
offsetnumber0रिज़ल्ट आने से पहले स्किप किए जाने वाले ऑर्डर की संख्या।

प्रतिक्रिया

रिज़ल्ट्स को लिमिट और ऑफ़सेट के साथ पेज में बांटा जाता है, और जब और ऑर्डर उपलब्ध होते हैं तो canLoadMore ट्रू होता है। क्योंकि पेजिंग ऑफ़सेट-बेस्ड होती है, इसलिए नए ऑर्डर आने पर पेज बदल सकते हैं।

क्षेत्रप्रकारविवरण
numberstringऑर्डर नंबर। वही वैल्यू जो POST /api/orders से मिलती है।
state"complete" | "canceled" | "gift_unclaimed" | "ready_for_production" | "in_production" | "ready_to_proof" | "awaiting_scheduled_date"ऑर्डर का स्टेटस।
paymentState"paid" | "credit_owed" | "balance_due" | "failed" | "checkout" | "completed" | "pending" | "processing" | "void" | nullऑर्डर का पेमेंट स्टेटस, या नल।
shipmentState"backorder" | "canceled" | "partial" | "pending" | "ready" | "shipped" | "returned_for_reship" | "reship" | "delivered"ऑर्डर की शिपमेंट स्थिति. लंबित करने के लिए डिफ़ॉल्ट।
placedAtstringजब ऑर्डर दिया गया, तो उसे ISO 8601 टाइमस्टैम्प के तौर पर दर्ज किया गया।
currencystringISO 4217 करेंसी जिसमें ऑर्डर का पेमेंट किया गया था।
itemTotalnumberशिपिंग, टैक्स और डिस्काउंट से पहले आइटम का सबटोटल।
totalnumberकुल चार्ज, जिसमें शिपिंग और टैक्स शामिल हैं, डिस्काउंट घटाकर।
expectedDeliveryDatestring | nullISO 8601 टाइमस्टैम्प के तौर पर डिलीवरी की अनुमानित तारीख, या null।
deliveredAtstring | nullजब ऑर्डर डिलीवर किया गया, तो ISO 8601 टाइमस्टैम्प या null के तौर पर।
दाहरण के तौर पर जवाब
{
  "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
}

एक या ज़्यादा सेव किए गए आइटम के लिए ऑर्डर देता है, जिन्हें सेव किए गए पते पर भेजा जाता है और सेव किए गए पेमेंट मेथड से पेमेंट किया जाता है।

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"
  }'

अनुरोध का मुख्य भाग

क्षेत्रप्रकारआवश्यकविवरण
itemsarrayजी हाँऑर्डर करने के लिए आइटम। कम से कम एक आइटम ज़रूर होना चाहिए।
items[].idstringजी हाँGET /api/items से एक आइटम ID।
items[].quantitynumberजी हाँआइटम के लिए ऑर्डर की जाने वाली मात्रा।
items[].sizeTShirtSize | HoodieSize | nullजी नहींपरिधान (टी-शर्ट, हेवीवेट टी-शर्ट और हुडी) का ऑर्डर देते समय परिधान के साइज़ की ज़रूरत होती है। प्रोडक्ट के हिसाब से नीचे दिए गए साइज़ का इस्तेमाल करें। दूसरे प्रोडक्ट के लिए इसे छोड़ दें।
addressIdstringजी हाँGET /api/addresses से एक एड्रेस ID।
paymentIdstringजी हाँGET /api/payments से पेमेंट मेथड ID।

एक ऑर्डर में ज़्यादा से ज़्यादा 50 आइटम हो सकते हैं। हर आइटम की मात्रा, GET /api/items से मिलने वाले प्रोडक्ट के मिनिमम, मैक्सिमम और इंक्रीमेंट के नियमों के अनुसार होनी चाहिए।

परिधान आकार

कौन-से साइज़ मान्य हैं, यह प्रोडक्ट की कट पर निर्भर करता है:

  • टी-शर्ट और हेवीवेट टी-शर्ट (TShirtSize): "sizeYS" | "sizeYM" | "sizeYL" | "sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL" | "size3XL" | "size4XL" | "size5XL" | "size6XL" | "size7XL"
  • हुडीज़ (HoodieSize): "sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL"

प्रतिक्रिया

दाहरण के तौर पर जवाब
{
  "order": { "number": "R286234605" }
}

त्रुटियाँ

एरर के मामले में मैचिंग HTTP स्टेटस और एक JSON बॉडी मिलती है, जिसमें टाइप और मैसेज होता है।

दाहरण के तौर पर जवाब
{
  "type": "UserInputError",
  "message": "items is required and must be a non-empty array"
}
स्टेटसप्रकारमतलब
400UserInputErrorअनुरोध अमान्य था, जैसे कि कोई फ़ील्ड गायब होना या कोई अज्ञात ID होना।
401UnauthorizedErrorऑथराइज़ेशन हेडर गायब है या गलत फ़ॉर्मैट में है।
403ForbiddenErrorAPI की key अमान्य है।
500हमारी तरफ़ से कुछ गड़बड़ हो गई है। बाद में फिर से कोशिश करें।

यह सब कैसे जुड़ता है

  • आप सिर्फ़ वही आइटम ऑर्डर कर सकते हैं जिन्हें आपने पहले ऑर्डर किया है। कस्टम आइटम, पैकेजिंग टेप और विनाइल लेटरिंग API के ज़रिए उपलब्ध नहीं हैं।
  • सबसे पहले अपने आइटम, पते और पेमेंट के तरीके पढ़ें, फिर उनकी ID को POST /api/orders पर भेजें।
  • GET /api/orders आपके द्वारा दिए गए ऑर्डर की लिस्ट दिखाता है, जिसमें सबसे हालिया ऑर्डर सबसे पहले होता है। हर ऑर्डर का नंबर वही होता है जो POST /api/orders से मिलता है।
  • ज़्यादातर प्रोडक्ट्स को उनके ओरिजिनल डाइमेंशन (इंच में चौड़ाई और ऊंचाई) के साथ रीऑर्डर किया जाता है। कपड़े (टी-शर्ट, हेवीवेट टी-शर्ट, और हुडी) में कपड़े का साइज़ होता है: GET /api/items इसे isSizeRequired true के साथ साइज़ के नीचे दिखाता है, और आप उन्हें ऑर्डर करने के लिए items[].size पास करते हैं। सही साइज़ प्रोडक्ट पर निर्भर करते हैं, और रीऑर्डर करते समय आप साइज़ बदल सकते हैं; उदाहरण के लिए, साइज़ M वाली शर्ट को साइज़ L के तौर पर रीऑर्डर करना।
  • GET /api/items और GET /api/orders को लिमिट और ऑफ़सेट के साथ पेजिनेट किया गया है। एड्रेस और पेमेंट के लिए एंडपॉइंट्स में ऐसा नहीं है।