Bruxel Public API · v1
Integra Bruxel en tu sistema
Una API REST para generar descripciones de producto optimizadas para SEO y GEO directamente desde tu backend, PIM o e-commerce. Empuja tu catálogo, timbra descripciones y exporta — sin tocar la interfaz.
Primeros pasos
Crea una API key, conoce la base URL y haz tu primera llamada autenticada.
Ir al Quickstart →SeguridadAutenticación
Llaves bxk_ por organización, permisos por scope y entrega de un solo uso.
Ver la autenticación →OpenAPIReferencia de la API
Explora los endpoints con sus esquemas, parámetros y respuestas de ejemplo.
Ver la referencia →CódigoEjemplos
Flujos completos en curl, Python y JavaScript listos para copiar.
Ver ejemplos →Quickstart
Del cero a una descripción generada. Reemplaza bxk_tu_llave por la que creaste en la consola.
# 1) Verifica que tu llave funciona
curl -s https://bruxel.ai/api/public/v1/me \
-H "Authorization: Bearer bxk_tu_llave"
# 2) Empuja productos a tu catálogo (upsert por SKU)
curl -s -X POST https://bruxel.ai/api/public/v1/products \
-H "Authorization: Bearer bxk_tu_llave" \
-H "Content-Type: application/json" \
-d '{"products":[{"sku":"MRN-CREW-01","name":"Suéter de lana merino"}]}'
# 3) Genera la descripción (síncrono — cobra créditos)
curl -s -X POST https://bruxel.ai/api/public/v1/generations \
-H "Authorization: Bearer bxk_tu_llave" \
-H "Content-Type: application/json" \
-d '{"product_id":"prod_8f2","languages":["es"]}'
# 4) Exporta tu catálogo timbrado a CSV
curl -s "https://bruxel.ai/api/public/v1/export/catalog.csv?language=es" \
-H "Authorization: Bearer bxk_tu_llave"import httpx
BASE = "https://bruxel.ai/api/public/v1"
headers = {"Authorization": "Bearer bxk_tu_llave"}
# Genera una descripción y léela
r = httpx.post(
f"{BASE}/generations",
headers=headers,
json={"product_id": "prod_8f2", "languages": ["es"]},
)
r.raise_for_status()
print(r.json()["description"])const BASE = "https://bruxel.ai/api/public/v1";
const headers = {
Authorization: "Bearer bxk_tu_llave",
"Content-Type": "application/json",
};
// Genera una descripción y léela
const res = await fetch(`${BASE}/generations`, {
method: "POST",
headers,
body: JSON.stringify({ product_id: "prod_8f2", languages: ["es"] }),
});
const data = await res.json();
console.log(data.description);Últimos cambios
Novedades de la API pública.
Video por API: clips de hasta 30 segundos, con guion
POST /v1/products/{id}/ai-video arranca un clip a partir de una imagen ya guardada del producto: cinco segundos con tarifa plana, o hasta 30 con audio cobrados por segundo × calidad. Con ai_model_id la misma modelo sale en todos los cortes. POST /v1/products/{id}/ai-video/script escribe el guion por tomas con IA (3 créditos, al éxito).
El look de cada foto: peinado, maquillaje y vestuario
POST /v1/products/{id}/ai-media acepta hairstyle, makeup y outfit para dirigir cómo se ve la modelo en ESA foto, sin tocar su identidad. Los tres abren en as_model y con ese valor nada cambia respecto a lo de antes; el job los devuelve en look.
Ropa y expresión en la generación de imágenes
POST /v1/products/{id}/ai-media acepta subject (product | garment) para que la modelo se ponga la prenda en vez de sostenerla, y expression (natural, smile, laugh, neutral, serious, playful) para elegir su cara. Los dos son opcionales y su default reproduce el comportamiento anterior; el job los devuelve en subject y expression.
Imágenes: feed de cambios, webhook y generación por API
GET /v1/media/deltas dice qué productos movieron su galería (incluidos los borrados); el evento media.updated avisa en tiempo real; GET /v1/products/{id}/media trae el rol real (aparece swatch), la posición y la procedencia (origin, synthetic_performer); y con el scope nuevo media:generate se abren sesiones de fotos con IA desde tu sistema (POST /v1/products/{id}/ai-media, GET /v1/ai-media/jobs/{id}, GET /v1/ai-models).
API keys por organización
Nuevas llaves bxk_ con permisos por scope (catalog:read, generate, export…), entrega de un solo uso y revocación inmediata desde la consola.
Lotes asíncronos con idempotencia
Endpoint POST /v1/batches para timbrar en volumen: reserva de créditos, Idempotency-Key obligatoria y cobro por resultado al leer.
Export de catálogo por idioma
GET /v1/export/catalog.csv?language=es devuelve tu catálogo timbrado en el idioma solicitado, compatible con Adobe Commerce y Shopify.