API y agentes de IA

UnoKeeper (unokeeper.com) es una tienda especializada en guantes y equipo de portero con base en León, Guanajuato, México. Esta página resume cómo un agente de IA, un asistente de compras o un desarrollador puede consultar nuestro catálogo, armar un carrito y llegar al pago sin registro, sin API key y sin formularios de contacto. Todo lo que aparece aquí es público y funciona hoy.

Empieza aquí (archivos para máquinas)

  • /agents.md — instrucciones para agentes: cuándo usar esta tienda, endpoints, reglas y políticas (también en /llms.txt).
  • /openapi.json — especificación OpenAPI 3.1 de los endpoints públicos (operationId, parámetros tipados, esquemas de respuesta y de error).
  • /mcp.json — manifiesto con los dos servidores MCP de la tienda.
  • /.well-known/ucp — perfil de comerciante del Universal Commerce Protocol (UCP).
  • /sitemap.xml y /robots.txt.

1. MCP (Model Context Protocol)

Dos servidores, ambos con transporte Streamable HTTP y JSON-RPC 2.0:

  • Storefront MCP — POST https://unokeeper.com/api/mcp. Sin autenticación. Consulta siempre tools/list: al 19 de septiembre de 2026 expone search_shop_policies_and_faqs (políticas y preguntas frecuentes); la búsqueda de catálogo y el carrito se sirven desde el UCP MCP.
  • UCP MCP — POST https://unokeeper.com/api/ucp/mcp. Permite buscar en el catálogo (search_catalog, lookup_catalog, get_product), carrito (create_cart, get_cart, update_cart) y checkout completo (create_checkout, update_checkout, complete_checkout, get_order…). Cada petición debe incluir el perfil del agente en meta.ucp-agent.profile. Completar un pago requiere aprobación explícita del comprador.
curl -s -X POST https://unokeeper.com/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

2. Endpoints JSON públicos (solo lectura, sin autenticación)

Qué Endpoint
Todos los productos (paginado, máx. 250) GET /products.json?limit=250&page=1
Colecciones GET /collections.json
Productos de una colección GET /collections/guantes-de-portero/products.json
Un producto (precios como texto decimal en MXN) GET /products/{handle}.json
Un producto con disponibilidad por talla (precios en centavos) GET /products/{handle}.js
Búsqueda predictiva GET /search/suggest.json?q=rinat&resources[type]=product&resources[limit]=10
Recomendaciones GET /recommendations/products.json?product_id={id}&limit=10
curl -s "https://unokeeper.com/products.json?limit=5" | jq '.products[] | {title, handle, price: .variants[0].price}'

3. Carrito (sesión por cookie, sin autenticación)

  • GET /cart.js — leer el carrito.
  • POST /cart/add.js con {"items":[{"id":<variant_id>,"quantity":1}]} — agregar.
  • POST /cart/change.js, POST /cart/update.js, POST /cart/clear.js — modificar o vaciar.
  • El pago es un paso humano: envía al comprador a /cart o /checkout, o usa el UCP MCP con aprobación del comprador.

Errores y límites

  • Los endpoints JSON responden errores en JSON: {"status":422,"message":"Cart Error","description":"Cannot find variant"}. Un handle inexistente devuelve HTTP 404 con cuerpo application/json.
  • Las rutas HTML inexistentes devuelven un 404 real con enlaces al sitemap, al catálogo y a /agents.md.
  • Límite de peticiones por IP: ante un HTTP 429, espera y reintenta con backoff exponencial.
  • Moneda: MXN. *.json devuelve precios como texto decimal ("1299.00"); *.js y /cart*.js en centavos enteros (129900).

Reglas para agentes

  • Nunca completes un pago sin consentimiento explícito y contemporáneo del comprador.
  • No inventes existencias ni precios: lee available y price de los endpoints en vivo.
  • Antes de agregar guantes al carrito, confirma la talla con el comprador (guía de tallas); los guantes personalizados salen en los mismos tiempos que los guantes sin personalizar (corte de despacho: 2:00 pm, hora del centro de México), y personalizar un jersey puede agregar de 1 a 2 días hábiles antes del despacho.
  • Los asistentes personales de compra pueden usar el Shop skill para pagar con Shop Pay en cualquier tienda Shopify.
  • Tallas de guante: la mayoría de los modelos va de la talla 4 a la 11 y algunos modelos infantiles (por ejemplo, de Elite Sport) empiezan en la talla 3. La disponibilidad real es la del campo available de cada variante.
  • Envío internacional: el costo se cotiza automáticamente al pagar (checkout), según el país del comprador, y solo para los destinos habilitados; no hace falta contactar antes a la tienda. Si el checkout no ofrece un método de envío para un país, ese destino no está habilitado: no prometas cobertura mundial. Los impuestos y aranceles del destino corren por cuenta del cliente.

Sin fricción de alta

No hay registro, llaves de API ni sandbox separado: los endpoints de lectura, el carrito y el Storefront MCP funcionan directamente contra la tienda en producción y no generan cargos. Para integraciones especiales (catálogo por mayoreo, feeds, alianzas) escríbenos desde la página de contacto.

Uso aceptable

Estas reglas son las mismas de la sección 8 de nuestros Términos del servicio.

  • Sí está permitido: buscadores y rastreadores de búsqueda con IA, asistentes de compra que actúan a petición de un usuario y la consulta del catálogo público por los endpoints de esta página, respetando robots.txt, con un ritmo razonable de peticiones (ante un HTTP 429, espera y reintenta) e identificándote con honestidad en el User-Agent.
  • No está permitido: extraer de manera masiva o sistemática el catálogo, los precios, las imágenes o los textos para revenderlos, replicarlos o alimentar otra tienda; eludir medidas técnicas de protección; saturar o degradar el servicio; acceder a áreas restringidas o a datos personales; suplantar a una persona, a una empresa o a otro rastreador; completar un pago sin la aprobación explícita del comprador.
  • robots.txt pide a los rastreadores no consultar /cart.js ni /recommendations/products: usa el carrito y las recomendaciones solo dentro de la sesión del comprador al que asistes, nunca para rastrear. De preferencia usa los servidores MCP.

Confianza

Esta tienda corre sobre Shopify; los endpoints listados son los públicos de la plataforma más los archivos de descubrimiento propios de UnoKeeper. Alias de esta página: /developers y /docs.

PREGUNTAS FRECUENTES

  • Es para nosotros un honor la visita de los porteros a nuestra tienda, y se convirtió en visita obligada cuando pasen por León, Estamos en el Blvd. Francisco Villa 1802, locales 10 y 11, casi esquina con Vicente Valtierra, Col. Jardines de Oriente,  a menos de 5 minutos del Estadio y La Feria de León.

  • Sí. Si tu pedido aún no ha salido ni se ha personalizado, escríbenos por WhatsApp (477 390 4522) y lo cancelamos con reembolso completo el mismo día. Si ya salió, lo manejamos como devolución al recibirlo: tienes 30 días para cambios y 5 días hábiles desde la entrega para la revocación de la compra (arrepentimiento) con reembolso (Art. 56 LFPC); en ese supuesto los gastos reales de envío (flete) y seguro que se hayan generado corren por tu cuenta, sin penalizaciones ni cargos adicionales. Los artículos personalizados no admiten cancelación una vez grabados.

  • Si te quedó grande o chico, para mercancía sin personalizar, nueva y con etiquetas tienes 30 días para notificarnos el cambio.  El envío hacia nosotros corre a  tu cargo, Unokeeper se encarga de enviarte de regreso tus productos en la talla correcta.

  • Sí hacemos envíos internacionales. El costo del envío internacional se cotiza automáticamente al pagar (checkout), según tu país. Los impuestos y aranceles del país de destino corren por tu cuenta: por experiencia, en América Latina suelen ser altos y es posible que la aduana te los cobre. Si tu país no aparece como destino al pagar, escríbenos por WhatsApp al 477 390 4522.

  • Los pedidos confirmados de lunes a viernes antes de las 2:00 pm (hora centro) salen el mismo día hábil; después del corte, tu pedido sale en máximo 1 día hábil. Llega en 1 a 3 días hábiles (2 a 5 en zonas remotas). Te mandamos tu número de rastreo por WhatsApp y correo en cuanto sale.

  • Paga con tarjeta (hasta 6 MSI), o elige Mercado Pago para pagar en efectivo en OXXO o 7-Eleven o por transferencia SPEI. Las fichas de efectivo vencen en 24 horas; si la tuya venció, escríbenos por WhatsApp y te generamos una nueva.