Pular para o conteúdo principal

GET /api/products

Retorna a lista paginada de produtos internalizados para o fornecedor autenticado. Apenas produtos pertencentes ao supplier_id do token são retornados — nenhum dado de outros fornecedores é acessível.

Autenticação

Requer header Authorization: Bearer <access_token> emitido pelo endpoint POST /api/external-auth/token.

Request

Headers

HeaderValor
AuthorizationBearer <access_token>

Query Parameters

ParâmetroTipoObrigatórioPadrãoDescrição
statusstringFiltra por status. Valores possíveis: pending, synced, error.
pageint1Número da página (começa em 1).
page_sizeint50Itens por página. Máximo: 200.
# Todos os produtos (página 1, 50 itens)
curl -s "https://<host>/api/products" \
-H "Authorization: Bearer <access_token>"

# Apenas produtos sincronizados — segunda página
curl -s "https://<host>/api/products?status=synced&page=2&page_size=20" \
-H "Authorization: Bearer <access_token>"

Response

200 OK

{
"Total": 0,
"Page": 1,
"PageSize": 50,
"Items": [
{
"Id": 0,
"ExternalId": "<material_id>",
"Name": "<material> - <material_variant>",
"Sku": "<sku>",
"Description": "material_variant_id=<id> | dimensions=<w>x<h>x<d> | weight=<kg>",
"Price": 0.00,
"Stock": 0,
"Category": "<material_variant>",
"Status": "synced",
"ErrorMessage": null,
"SyncedAt": "<iso8601>",
"CreatedAt": "<iso8601>",
"UpdatedAt": "<iso8601>"
}
]
}

Campos do item

CampoTipoDescrição
IdintID interno gerado pelo worker.
ExternalIdstringmaterial_id enviado no payload de sync.
Namestringmaterial + material_variant concatenados.
SkustringSKU do produto.
DescriptionstringDimensões e peso extraídos do payload de sync.
PricedecimalPreço (padrão 0.00).
StockintQuantidade (quantity) do último sync.
Categorystringmaterial_variant do payload.
Statusstringpending, synced ou error.
ErrorMessagestring?Preenchido quando status = error.
SyncedAtdatetime?Data/hora da última sincronização bem-sucedida (UTC).
CreatedAtdatetimeData/hora de criação (UTC).
UpdatedAtdatetimeData/hora da última atualização (UTC).

401 Unauthorized

Token ausente, expirado ou inválido.

{ "message": "Invalid token." }