bruxel.ai

Exemplos

O fluxo de integração em curl, Python e JavaScript. Substitua bxk_sua_chave pela que você criou no console.

Autenticar e verificar

Cada chamada leva sua API key como token Bearer. Comece confirmando que funciona com GET /v1/me.

import httpx

BASE = "https://bruxel.ai/api/public/v1"
h = {"Authorization": "Bearer bxk_tu_llave"}

r = httpx.get(f"{BASE}/me", headers=h)
r.raise_for_status()
print(r.json())  # { tenant, key: { scopes, ... } }

Enviar seu catálogo

Crie ou atualize produtos por SKU (upsert em massa, até 500 por requisição).

r = httpx.post(f"{BASE}/products", headers=h, json={
    "products": [
        {"sku": "CAMISA-001", "name": "Camisa de lino", "brand": "Acme"},
    ],
})
print(r.json())  # { total, created, updated, skipped }

Gerar uma descrição

Geração síncrona: cobra no sucesso. O Idempotency-Key é recomendado para novas tentativas seguras.

r = httpx.post(
    f"{BASE}/generations",
    headers={**h, "Idempotency-Key": "gen-camisa-001-v1"},
    json={"product_id": "prod_8f2", "languages": ["es", "en"]},
)
data = r.json()  # { results, total_credits_charged, balance }

Gerar em lote

Para volume: reserve créditos com Idempotency-Key obrigatório e faça poll até o lote terminar — o poll cobra os sucessos e reembolsa o resto.

import time

r = httpx.post(
    f"{BASE}/batches",
    headers={**h, "Idempotency-Key": "batch-2026-07-23-a"},
    json={"product_ids": ["prod_8f2", "prod_9a1"]},
)
batch_id = r.json()["id"]

# Poll hasta que termine (el GET ingiere: cobra éxitos, reembolsa el resto)
while True:
    b = httpx.get(f"{BASE}/batches/{batch_id}", headers=h).json()
    if b["status"] == "ended":
        break
    time.sleep(10)

Ler e exportar

Leia a descrição atual de um produto ou exporte todo o catálogo gerado em CSV.

# Descripción actual
desc = httpx.get(f"{BASE}/products/prod_8f2/descriptions", headers=h).json()

# Export a CSV
csv = httpx.get(f"{BASE}/export/catalog.csv", headers=h, params={"language": "es"})
open("catalogo.csv", "wb").write(csv.content)
Exemplos — Bruxel