BLYNEAPI
← Volver
Referencia API v1.0

Documentación
de la API BLYNE

Integra el ID Corporal Universal de BLYNE en tu tienda o plataforma. Recomendaciones de talla con 92% de precisión en menos de 200ms.

REST API
TLS 1.3
<200ms P99
99.99% uptime

Inicio rápido

Obtén tu primera recomendación de talla en menos de 5 minutos. Solo necesitas tu API key y el ID del producto.

1. Obtén tu API key

Accede al Portal de Marcas → pestaña API y genera tu API key. La clave solo se muestra una vez tras la generación — guárdala en un lugar seguro.

2. Primera llamada

curl -X POST https://blynesize.com/v1/recommend \
  -H "Authorization: Bearer blyne_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "measurements": {
      "heightCm": 170,
      "weightKg": 65,
      "gender": "female"
    },
    "product": {
      "name": "Camiseta básica",
      "category": "tshirt",
      "sizeChart": {
        "S": { "chest": 88 },
        "M": { "chest": 92 },
        "L": { "chest": 96 }
      }
    },
    "fitPreference": "regular"
  }'
Respuesta en <200ms. La API BLYNE está optimizada para ser llamada en tiempo real durante el proceso de compra, sin afectar la experiencia del usuario.

Autenticación

BLYNE usa API keys tipo Bearer para autenticar todas las peticiones. Las keys se generan y revocan desde el Portal de Marcas → pestaña API.

blyne_live_Producción

Todas las API keys de BLYNE tienen el prefijo blyne_live_. Las peticiones con un formato diferente serán rechazadas con INVALID_API_KEY_FORMAT.

# Incluye la API key en el header Authorization de cada petición
curl https://blynesize.com/v1/brands/me \
  -H "Authorization: Bearer blyne_live_xxxxxxxxxxxx"
Nunca expongas tu API key en el frontend. Usa siempre variables de entorno del servidor. Las keys se almacenan como hash SHA-256 y no pueden recuperarse una vez cerrado el diálogo de generación.

Errores

BLYNE usa códigos HTTP estándar. Los errores devuelven un objeto JSON con error.code y error.message.

CódigoErrorDescripción
401MISSING_API_KEYNo se proporcionó el header Authorization con Bearer token.
401INVALID_API_KEY_FORMATLa API key no tiene el prefijo blyne_live_.
401INVALID_API_KEYAPI key no encontrada o revocada.
403BRAND_SUSPENDEDLa cuenta de marca está suspendida. Contacta con soporte.
400MISSING_MEASUREMENTSEl cuerpo de la petición debe incluir el objeto measurements.
400INVALID_HEIGHTheightCm debe ser un número entre 100 y 250.
400INVALID_WEIGHTweightKg debe ser un número entre 30 y 300.
400INVALID_GENDERgender debe ser male, female o neutral.
400MISSING_PRODUCTEl cuerpo debe incluir el objeto product con name, category y sizeChart.
400INVALID_PRODUCTproduct debe incluir name, category y sizeChart.
400INVALID_FIT_PREFERENCEfitPreference debe ser: very_tight, tight, regular, relaxed u oversized.
422FIT_ENGINE_ERRORNo se pudo calcular la recomendación. Verifica que sizeChart tenga medidas válidas.
429QUOTA_EXCEEDEDSe alcanzó la cuota mensual de recomendaciones. Actualiza tu plan para continuar.
400MISSING_FIELDSCampos obligatorios faltantes en la petición (name y category para productos).
404PRODUCT_NOT_FOUNDEl producto no existe o no pertenece a esta marca.
500INTERNAL_ERRORError interno del servidor. Reinéntalo con backoff exponencial.

Límites de tasa

Starter

10 req/s

500 req/min

Growth

100 req/s

5.000 req/min

Enterprise

Sin límite

Personalizado

Perfiles de usuario — Próximamente

La API de perfiles de usuario permitirá a las marcas crear y gestionar perfiles corporales de sus clientes de forma persistente, de modo que no sea necesario enviar las medidas en cada llamada a /v1/recommend.

Endpoint en desarrollo. Actualmente, las medidas se envían directamente en cada llamada a POST /v1/recommend. La API de perfiles estará disponible en una próxima versión.

Recomendaciones

POST /v1/recommend

POSThttps://blynesize.com/v1/recommend

El endpoint principal de BLYNE. Recibe las medidas del usuario y la ficha del producto con su tabla de tallas, y devuelve la talla recomendada con Fit Score, alternativas y un insight textual.

Objeto measurements

ParámetroTipoReq.Descripción
measurements.heightCmnumberAltura en centímetros. Rango: 100–250.
measurements.weightKgnumberPeso en kilogramos. Rango: 30–300.
measurements.genderstringGénero para el modelo de tallas. Valores: male, female, neutral.
measurements.chestCmnumberNoPerímetro de pecho en cm. Mejora la precisión si se proporciona.
measurements.waistCmnumberNoPerímetro de cintura en cm.
measurements.hipsCmnumberNoPerímetro de caderas en cm.
measurements.shouldersCmnumberNoAncho de hombros en cm.
measurements.inseamCmnumberNoEntrepierna en cm. Relevante para pantalones.

Objeto product

ParámetroTipoReq.Descripción
product.namestringNombre del producto.
product.categorystringCategoría de la prenda. Ver valores válidos abajo.
product.sizeChartobjectTabla de tallas con medidas reales en cm por talla. Ej: { "M": { "chest": 96, "waist": 80 } }.
product.fabricstringNoTipo de tejido. Mejora el cálculo de holgura.
product.brandInsightstringNoNota de la marca sobre cómo talla este producto.
product.designEasenumberNoHolgura de diseño en cm. Default: 4.
ParámetroTipoReq.Descripción
fitPreferencestringNoPreferencia de ajuste. Valores: very_tight, tight, regular, relaxed, oversized. Default: regular.
curl -X POST https://blynesize.com/v1/recommend \
  -H "Authorization: Bearer blyne_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "measurements": {
      "heightCm": 170,
      "weightKg": 65,
      "gender": "female",
      "chestCm": 90,
      "waistCm": 72,
      "hipsCm": 96
    },
    "product": {
      "name": "Jean Slim Fit",
      "category": "bottoms",
      "sizeChart": {
        "XS": { "waist": 68, "hips": 88 },
        "S":  { "waist": 72, "hips": 92 },
        "M":  { "waist": 76, "hips": 96 },
        "L":  { "waist": 82, "hips": 102 }
      }
    },
    "fitPreference": "regular"
  }'

# Response 200:
# {
#   "recommendedSize": "M",
#   "alternativeSize": "L",
#   "fitScore": 91,
#   "fitPreference": "regular",
#   "insight": "Ajuste perfecto para tu silueta",
#   "fabricNote": "Tejido estándar, sin ajuste por elasticidad",
#   "washNote": null,
#   "confidenceLevel": "high",
#   "confidenceNote": "Medidas completas proporcionadas",
#   "zones": [
#     { "zone": "waist", "label": "Cintura", "fitScore": 94, "status": "perfect", "note": "Ajuste ideal" },
#     { "zone": "hips", "label": "Caderas", "fitScore": 89, "status": "good", "note": "Buen ajuste" }
#   ],
#   "meta": { "brandId": 1, "brandSlug": "mi-marca", "quotaUsed": 42, "quotaLimit": 1000 }
# }

Fit Score

El Fit Score es un porcentaje de 0–100 que indica qué tan bien encaja una talla con el cuerpo y preferencias del usuario. La respuesta incluye también un desglose por zonas corporales (zones) con su estado individual.

90–100

Perfecto

75–89

Muy bien

60–74

Aceptable

0–59

No recomendado

GET /v1/brands/me

GEThttps://blynesize.com/v1/brands/me

Devuelve el perfil de la marca autenticada, incluyendo el plan, estado y consumo de cuota mensual.

curl https://blynesize.com/v1/brands/me \
  -H "Authorization: Bearer blyne_live_xxxxxxxxxxxx"

# Response:
# {
#   "id": 1,
#   "name": "Mi Marca",
#   "slug": "mi-marca",
#   "plan": "growth",
#   "status": "active",
#   "quota": { "used": 42, "limit": 1000, "remaining": 958 },
#   "hasApiKey": true
# }
Usa este endpoint para monitorizar el consumo de cuota antes de realizar llamadas en lote. Si quota.remaining es 0, las siguientes llamadas a /v1/recommend devolverán QUOTA_EXCEEDED.

POST /v1/recommend/batch — Próximamente

POSThttps://blynesize.com/v1/recommend/batch

Endpoint en desarrollo. Permitirá obtener recomendaciones para múltiples usuarios o productos en una sola llamada. Disponible en el plan Growth y Enterprise.

# Próximamente disponible
Al usar llamadas paralelas, ten en cuenta los límites de cuota mensual. Cada llamada a /v1/recommend consume 1 unidad de cuota independientemente de si es paralela o secuencial.

GET /v1/products

GEThttps://blynesize.com/v1/products

Lista todos los productos del catálogo de la marca autenticada.

curl https://blynesize.com/v1/products \
  -H "Authorization: Bearer blyne_live_xxxxxxxxxxxx"

POST /v1/products

POSThttps://blynesize.com/v1/products

Crea o actualiza un producto en el catálogo. Si se incluye id en el cuerpo, actualiza el producto existente (debe pertenecer a la marca autenticada).

ParámetroTipoReq.Descripción
namestringNombre del producto.
categorystringCategoría de la prenda.
skustringNoSKU del producto en tu sistema.
genderstringNoGénero objetivo. Valores: female, male, unisex. Default: unisex.
fabricCompositionstringNoComposición del tejido. Ej: '95% algodón, 5% elástico'.
sizeChartobjectNoTabla de tallas con medidas reales en cm. Ej: { "M": { "chest": 96 } }.
availableSizesarrayNoLista de tallas disponibles. Ej: ['XS', 'S', 'M', 'L', 'XL'].
idnumberNoID del producto a actualizar. Si se omite, se crea un nuevo producto.
# Crear producto
curl -X POST https://blynesize.com/v1/products \
  -H "Authorization: Bearer blyne_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jean Slim Fit Azul",
    "category": "bottoms",
    "sku": "JSF-001",
    "gender": "female",
    "fabricComposition": "98% algodón, 2% elástico",
    "sizeChart": {
      "XS": { "waist": 68, "hips": 88, "inseam": 76 },
      "S":  { "waist": 72, "hips": 92, "inseam": 77 },
      "M":  { "waist": 76, "hips": 96, "inseam": 78 },
      "L":  { "waist": 82, "hips": 102, "inseam": 79 }
    },
    "availableSizes": ["XS", "S", "M", "L"]
  }'

# Response 201:
# { "success": true, "action": "created", "productId": 42 }
Al actualizar un producto, el campo analysisStatus se resetea a pending para que el motor de IA re-analice la prenda con los nuevos datos.

GET /v1/products — Próximamente

DELETEhttps://blynesize.com/v1/products/:id

Endpoint de eliminación en desarrollo. Por ahora, gestiona los productos desde el Portal de Marcas → pestaña Catálogo.

Catálogo de prendas

Sube y gestiona los productos de tu catálogo vía API. Cada producto puede incluir su tabla de tallas con medidas reales, que el motor de IA analizará para mejorar las recomendaciones.

¿Qué datos necesita BLYNE? Para cada prenda, proporciona las medidas reales en centímetros por talla (pecho, cintura, caderas, etc.). No las etiquetas del fabricante — las medidas físicas de la prenda.
Los endpoints de catálogo están documentados en la sección Recomendaciones de esta página: GET /v1/products y POST /v1/products. También puedes gestionar tu catálogo visualmente desde el Portal de Marcas → pestaña Catálogo.

Webhooks — Próximamente

Los webhooks permitirán recibir notificaciones en tiempo real sobre eventos como recomendaciones generadas, feedback de usuarios, y cambios en el catálogo.

Funcionalidad en desarrollo. Los webhooks estarán disponibles en una próxima versión de la API. Por ahora, puedes consultar el estado de cuota y productos mediante polling a GET /v1/brands/me y GET /v1/products.

SDKs oficiales

JavaScript / Node.js

npm install @blyne/sdk
# o
yarn add @blyne/sdk

Python

pip install blyne-sdk

Shopify (1 clic)

Instala el widget BLYNE en tu tienda Shopify con una sola línea de código en tu tema Liquid.

{%- comment -%} Añade esto en tu theme.liquid antes de </body> {%- endcomment -%}
<script
  src="https://cdn.blyne.app/widget/v1.js"
  data-api-key="{{ shop.metafields.blyne.publishable_key }}"
  data-locale="{{ request.locale.iso_code }}"
  async
></script>