bruxel.aiDevelopers

Imágenes

Las fotos de cada producto, con su texto alternativo y las tres medidas.

El scope

Este endpoint pide el scope media:read, aparte de catalog:read. Va separado porque las direcciones que devuelve SON el acceso al archivo: el CDN sirve por ruta no adivinable, así que quien tiene la dirección tiene la imagen. Una llave que solo lee la ficha no la recibe.

Imágenes de un producto

Devuelve las imágenes asignadas, la principal primero y luego por posición. El orden ES el dato: cualquier integración puede tomar la primera como imagen base.

GET /v1/products/{id}/media

{
  "product_id": "…",
  "media": [
    {
      "id": "…",
      "filename": "portada.jpg",
      "mime": "image/jpeg",
      "bytes": 482913,
      "role": "main",
      "alt": { "es": "Frasco blanco de crema, 50 ml", "en": "White 50 ml cream jar" },
      "url":        "https://media.bruxel.ai/orig/…/….jpg",
      "medium_url": "https://media.bruxel.ai/deriv/…/…/medium.webp",
      "thumb_url":  "https://media.bruxel.ai/deriv/…/…/thumb.webp"
    }
  ]
}

url es el ORIGINAL: es lo que se importa a tu tienda, que genera sus propios tamaños. medium_url (1024 px) y thumb_url (320 px) son derivados en WebP para pintar interfaces — no los uses como imagen de producto. Si un derivado aún no existe, cae al original.

Sincronizar el catálogo completo

No uses este endpoint producto por producto. El CSV del catálogo ya trae las columnas de imagen con los nombres que Adobe Commerce espera: una llamada para todo el catálogo, en vez de una por producto.

curl -s "https://bruxel.ai/api/public/v1/export/catalog.csv" \
  -H "Authorization: Bearer bxk_…" -o catalogo.csv

# columnas: base_image, small_image, thumbnail, additional_images
El CSV va con el scope export, no con media:read: es el catálogo completo, la misma clasificación de dato.

Qué aparece y qué no

Solo las imágenes listas y asignadas al producto. Lo que el cliente mandó a la papelera no aparece, aunque siga siendo restaurable durante 30 días; una subida a medias tampoco.

Si el almacenamiento de imágenes no está configurado en la cuenta, la respuesta es una lista vacía con 200 — nunca direcciones que darían 404 en tu catálogo.
Imágenes — Bruxel