API de Sticker Mule
La API de Sticker Mule te permite repetir pedidos de productos y consultar tus artículos guardados, direcciones y métodos de pago desde tu propio código. Es una pequeña API REST autenticada con una clave de API personal.
Inicio rápido
1. Generar una clave de API
Abre la configuración de tu cuenta y, en Configuración de tienda, genera una clave API. Cópiala inmediatamente, solo se muestra una vez.
Abrir configuración de cuenta2. Llamar la API
Envía tu clave como un token Bearer. Este ejemplo realiza un pedido de un artículo guardado:
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"
}'Autenticación
Cada solicitud debe incluir tu clave API como token Bearer en el encabezado de autorización.
Authorization: Bearer YOUR_API_KEY- La API está disponible solo en cuentas personales, no en cuentas de equipo.
- Cada cuenta tiene una clave. Al generar una nueva clave, se sustituye la anterior.
- Trata la clave como una contraseña. Puede hacer pedidos y leer tus datos guardados.
URL base
Todos los puntos finales son relativos a esta URL base.
https://www.stickermule.com/apiPuntos finales
Devuelve los artículos que se pueden volver a pedir. El identificador de cada artículo es válido como items[].id al crear un pedido.
GET /api/itemscurl "https://www.stickermule.com/api/items?limit=20" \ -H "Authorization: Bearer YOUR_API_KEY"Parámetros de consulta
Parámetro Tipo Predeterminado Descripción limitnumber20Número de artículos a devolver, de 1 a 50. offsetnumber0Número de artículos a omitir antes de devolver los resultados. currencystringUSDCódigo de moneda ISO 4217 utilizado para los precios. localestringenIdioma utilizado para los nombres y precios de los productos. Respuesta
Los resultados se paginan con un límite y un desplazamiento, y canLoadMore es verdadero cuando hay más artículos disponibles. Dado que la paginación se basa en un desplazamiento, las páginas pueden cambiar a medida que llegan nuevos pedidos.
Campo Tipo Descripción idstringIdentificador del artículo. Úsalo como items[].id al crear un pedido. namestring | nullNombre personalizado que le hayas dado al artículo, si lo hubiera. productIdnumberIdentificador de producto Sticker Mule. productNamestring | nullNombre del producto, o nulo si el producto ya no está disponible. quantitynumberCantidad del pedido original. sizeRegularItemDimensions | TShirtDimensions | HoodieDimensionsTalla del artículo. Para camisetas y camisetas heavyweight, un objeto de talla de prenda con el tipo __typename TShirtDimensions y una talla. Para sudaderas, el tipo __typename HoodieDimensions y una talla. Para cualquier otro producto, las dimensiones físicas en pulgadas con el tipo __typename RegularItemDimensions, además de la anchura y la altura. isSizeRequiredbooleanVerdadero cuando el producto necesita una talla de ropa para repetir pedido (camisetas, camisetas heavyweight y sudaderas). De lo contrario, falso. buyingOptionsobject | nullCantidades de pedidos repetidos permitidas como mínimo, máximo e incremento. Nulo si el producto no está disponible. retailPricenumber | nullPrecio por la cantidad mínima, o nulo si no hay precios disponibles. artworkUrlsstring[]URL de las ilustraciones aprobadas para el artículo. Ejemplo de respuesta{ "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 }Devuelve tus direcciones de envío guardadas, con la predeterminada primero. Cada id es válido como addressId al crear un pedido.
GET /api/addressescurl https://www.stickermule.com/api/addresses \ -H "Authorization: Bearer YOUR_API_KEY"Respuesta
Campo Tipo Descripción idstringIdentificador de la dirección. Úsalo como addressId al crear un pedido. namestring | nullNombre completo del destinatario. firstNamestring | nullNombre del destinatario lastNamestring | nullApellido del destinatario. companyNamestring | nullNombre de la empresa, si la hubiera. addressLine1stringDirección de la calle addressLine2string | nullLínea de dirección adicional, si la hubiera. cityNamestringCiudad. stateNamestring | nullNombre del estado o provincia, si corresponde. stateAbbreviationstring | nullAbreviatura del estado o provincia, si corresponde. zipCodestringCódigo postal. countryIsostringCódigo de país ISO 3166, como por ejemplo EE. UU. (EUA). countryNamestringNombre del país. phonestring | nullNúmero de teléfono de contacto, si lo hubiera. isDefaultbooleanEsto se aplica a tu dirección de envío predeterminada. Ejemplo de respuesta{ "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 } ] }Devuelve tus métodos de pago guardados, con el predeterminado primero. Cada id es válido como paymentId al crear un pedido.
GET /api/paymentscurl https://www.stickermule.com/api/payments \ -H "Authorization: Bearer YOUR_API_KEY"Respuesta
Campo Tipo Descripción idstringIdentificador del método de pago. Úsalo como paymentId al crear un pedido. ccTypestringMarca de la tarjeta, como Visa o Mastercard. lastDigitsstringÚltimos cuatro dígitos de la tarjeta. expirationobjectVencimiento de la tarjeta en mes y año. isDefaultbooleanVerdadero para tu método de pago predeterminado. Ejemplo de respuesta{ "payments": [ { "id": "7", "ccType": "visa", "lastDigits": "1007", "expiration": { "month": 7, "year": 2028 }, "isDefault": true } ] }Muestra tus pedidos realizados, del más reciente al más antiguo. El número de cada pedido coincide con el que devuelve POST /api/orders.
GET /api/orderscurl "https://www.stickermule.com/api/orders?limit=10" \ -H "Authorization: Bearer YOUR_API_KEY"Parámetros de consulta
Parámetro Tipo Predeterminado Descripción limitnumber10Número de pedidos a devolver, de 1 a 50. offsetnumber0Número de pedidos que se deben omitir antes de devolver los resultados. Respuesta
Los resultados están paginados con límite y desplazamiento, y canLoadMore es verdadero cuando hay más pedidos disponibles. Dado que la paginación está basada en desplazamiento, las páginas pueden cambiar a medida que se realizan nuevos pedidos.
Campo Tipo Descripción numberstringNúmero de pedido. El mismo valor devuelto por POST /api/orders. state"complete" | "canceled" | "gift_unclaimed" | "ready_for_production" | "in_production" | "ready_to_proof" | "awaiting_scheduled_date"El estado del pedido. paymentState"paid" | "credit_owed" | "balance_due" | "failed" | "checkout" | "completed" | "pending" | "processing" | "void" | nullEl estado de pago del pedido, o nulo. shipmentState"backorder" | "canceled" | "partial" | "pending" | "ready" | "shipped" | "returned_for_reship" | "reship" | "delivered"El estado de envío del pedido. El valor predeterminado es pendiente. placedAtstringCuando se realizó el pedido, como marca de tiempo ISO 8601. currencystringMoneda ISO 4217 en la que se realizó el cobro del pedido. itemTotalnumberSubtotal de los artículos, antes de envío, impuestos y descuentos. totalnumberTotal general cobrado, incluyendo envío e impuestos, menos descuentos. expectedDeliveryDatestring | nullFecha de entrega estimada como marca de tiempo ISO 8601, o nulo. deliveredAtstring | nullCuándo se entregó el pedido, como marca de tiempo ISO 8601, o nulo. Ejemplo de respuesta{ "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 }Realiza un pedido de uno o más artículos guardados, enviados a una dirección guardada y cargados a un método de pago guardado.
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" }'Cuerpo de la solicitud
Campo Tipo Requerido Descripción itemsarraySí Artículos a pedir. Debe contener al menos un artículo. items[].idstringSí Un ID de elemento de GET /api/items. items[].quantitynumberSí Cantidad a pedir para el artículo. items[].sizeTShirtSize | HoodieSize | nullNo Talla de prenda, requerida al pedir prendas (camisetas, camisetas heavyweight y sudaderas). Utiliza los valores que se indican a continuación y que coincidan con el producto. Omítela para otros productos. addressIdstringSí Un ID de dirección obtenido de GET /api/addresses. paymentIdstringSí Un ID de método de pago obtenido de GET /api/payments. Un pedido puede contener hasta 50 artículos. Cada cantidad debe respetar el mínimo, el máximo y el incremento del producto obtenidos en GET /api/items.
Tallas de ropa
Las tallas válidas dependen del corte del producto:
- Camisetas y camisetas heavyweight (TShirtSize):
"sizeYS" | "sizeYM" | "sizeYL" | "sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL" | "size3XL" | "size4XL" | "size5XL" | "size6XL" | "size7XL" - Sudaderas (HoodieSize):
"sizeS" | "sizeM" | "sizeL" | "sizeXL" | "size2XL"
Respuesta
Ejemplo de respuesta{ "order": { "number": "R286234605" } }- Camisetas y camisetas heavyweight (TShirtSize):
Errores
Los errores devuelven el estado HTTP correspondiente y un cuerpo JSON con un tipo y un mensaje.
{
"type": "UserInputError",
"message": "items is required and must be a non-empty array"
}| Estado | Tipo | Significado |
|---|---|---|
400 | UserInputError | La solicitud no era válida, por ejemplo, faltaba un campo o el id era desconocido. |
401 | UnauthorizedError | El encabezado de autorización falta o tiene un formato incorrecto. |
403 | ForbiddenError | La clave de API no es válida. |
500 | — | Algo salió mal de nuestro lado. Inténtalo de nuevo más tarde. |
Cómo encaja todo
- Solo puedes pedir artículos que hayas pedido anteriormente. Los artículos personalizados, la cinta de embalaje y los textos en vinilo no están disponibles a través de la API.
- Primero lee tus artículos, direcciones y métodos de pago, luego pasa sus IDs a POST /api/orders.
- GET /api/orders enumera los pedidos realizados, empezando por el más reciente. El número de cada pedido coincide con el que devuelve POST /api/orders.
- La mayoría de los productos se repiten con sus dimensiones originales (ancho y alto en pulgadas). La ropa (camisetas, camisetas heavyweight y sudaderas) tiene en su lugar una talla de prenda: GET /api/items la devuelve en size con isSizeRequired en true, y tú envías items[].size para hacer el pedido. Las tallas válidas dependen del producto y puedes cambiar la talla al repetir pedido, por ejemplo, repetir pedido de una camiseta talla M como talla L.
- GET /api/items y GET /api/orders están paginados con límite y desplazamiento; los puntos finales de direcciones y pagos no lo están.