Endpoint
POST /api/workspace/{workspaceId}/catalogs/{catalogId}/batch/silver
Parâmetros de path
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
workspaceId | string | Sim | Seu ID de workspace |
catalogId | string | Sim | O catálogo a processar |
Corpo da requisição
{
"productIds": ["prod_abc", "prod_def"],
"scope": "selection"
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productIds | string[] | Não | IDs de produtos a processar. Obrigatório quando scope é "selection" |
scope | string | Sim | "selection" ou "all". Quando "all", productIds é ignorado |
Resposta
{
"results": [
{
"productId": "prod_abc",
"status": "success",
"fieldsNormalized": 4,
"duplicateOf": null,
"urlsValidated": 3
},
{
"productId": "prod_def",
"status": "success",
"fieldsNormalized": 2,
"duplicateOf": "prod_xyz",
"urlsValidated": 1
}
],
"processed": 2,
"duration_ms": 1240
}
Exemplos
curl -X POST "https://app.alana.shopping/api/workspace/ws_123/catalogs/cat_456/batch/silver" \
-H "Authorization: Bearer sk_live_sua_chave_api" \
-H "Content-Type: application/json" \
-d '{
"productIds": ["prod_abc", "prod_def"],
"scope": "selection"
}'
const response = await fetch(
`https://app.alana.shopping/api/workspace/${workspaceId}/catalogs/${catalogId}/batch/silver`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.ALANA_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
productIds: ['prod_abc', 'prod_def'],
scope: 'selection',
}),
}
);
const { results, processed, duration_ms } = await response.json();
console.log(`Processados ${processed} produtos em ${duration_ms}ms`);
import requests, os
response = requests.post(
f"https://app.alana.shopping/api/workspace/{workspace_id}/catalogs/{catalog_id}/batch/silver",
headers={"Authorization": f"Bearer {os.environ['ALANA_API_KEY']}"},
json={"productIds": ["prod_abc", "prod_def"], "scope": "selection"}
)
data = response.json()
print(f"Processados {data['processed']} produtos em {data['duration_ms']}ms")
Respostas de erro
| Status HTTP | Código | Descrição |
|---|---|---|
| 400 | VALIDATION_ERROR | scope ausente ou inválido |
| 403 | INSUFFICIENT_PERMISSIONS | Chave API sem catalogs:write |
| 404 | CATALOG_NOT_FOUND | Catálogo não existe no workspace |
| 409 | JOB_ALREADY_RUNNING | Um job Silver ou Gold já está em andamento |
| 429 | RATE_LIMIT_EXCEEDED | Aguarde o valor do header Retry-After |