KernosDevelopers
Sair
Referência Produtos › Listar
Produtos › Listar

Lista o cadastro, com o saldo de cada item

GET/v1/objects/product

Paginado (limit até 200). Filtra por texto, ativo, política, tipo e razão de bloqueio; depot recorta o saldo a um CD.

Ação da chave: product.list

Quem cria a chave escolhe as ações que ela abre; sem esta, a rota recusa com api_key_action_not_granted.

Parâmetros da consulta

active string
block_reason string
depot string

O código do CD que recorta o saldo.

limit integer ou string

De 1 a 200; 50 por padrão.

offset integer ou string
order string

Vazio é o padrão, az.

policy string
q string

Texto na descrição, no SKU ou no EAN.

type string

O código do tipo de item, ou none para os sem tipo.

Devolve

O data do envelope { ok, data, error, error_code, field, trace_id }:

limit integer OBRIGATÓRIO
offset integer OBRIGATÓRIO
products lista de objeto OBRIGATÓRIO
22 campos
active boolean
assignments integer

Em quantas posições o item está.

complete boolean

O cadastro tem o que o galpão precisa para operar o item.

created_at data e hora
description string
ean string, ou nulo
id uuid
qty_available integer

O que pode ser vendido agora.

qty_blocked integer
qty_expired integer

Em lote vencido.

qty_held integer

Reservado por pedido.

qty_on_hand integer

Tudo o que está no galpão.

qty_on_hold integer
qty_stopped integer

Em posição parada.

short_code string, ou nulo
sku string, ou nulo
tracks_lot boolean
traits objeto

Os atributos do item, pelo catálogo da empresa, na unidade base (peso em g, medidas em mm).

type_code string, ou nulo
type_id string, ou nulo
type_name string, ou nulo
uom string

A unidade de medida, pelo código da NF-e (H87 é peça).

total integer OBRIGATÓRIO

Quantos itens o filtro acha, somadas as páginas.

Recusas

HTTP 400 · Pedido mal formado

invalid_active HTTP 400Filtro de situação inválido: use true ou false.
invalid_block_reason HTTP 400Recorte de bloqueio inválido: use any ou uma das razões declaradas no parâmetro.
invalid_limit HTTP 400limit fora da faixa: de 1 a 200.
invalid_offset HTTP 400offset inválido: um inteiro de zero para cima.
invalid_order HTTP 400Ordenação inválida: use um dos valores declarados no parâmetro.
invalid_policy HTTP 400Recorte de política inválido: use um dos valores declarados no parâmetro.
version_unknown HTTP 400A Kernos-Version pedida não existe. Use uma das versões declaradas no cabeçalho, ou não o mande.

HTTP 401 · Sem credencial válida

api_key_expired HTTP 401A chave venceu. Gire a chave no painel e use a nova.
api_key_wrong_environment HTTP 401A chave é do outro ambiente: ksk_test_ vai em https://stag.kernos.com.br, ksk_live_ em https://api.kernos.com.br.
unauthenticated HTTP 401Credencial ausente, inválida ou expirada.

HTTP 403 · Sem permissão

agent_token_out_of_scope HTTP 403O token de agente (kat_) só vale na porta MCP. Para a API, use o token de sessão ou uma chave de integração.
api_key_action_not_granted HTTP 403A chave não tem esta ação. Edite as ações da chave no painel.
api_key_out_of_scope HTTP 403A chave só vale nas rotas do contrato público.
depot_out_of_reach HTTP 403Quem chama não alcança o CD deste objeto. Peça alcance ao CD ou use outra credencial.
forbidden_role HTTP 403O papel de quem chama nesta empresa não permite esta ação.
module_not_subscribed HTTP 403A empresa não assina o módulo desta rota.
tenant_mismatch HTTP 403A credencial não pertence à empresa do endereço chamado.
tenant_unavailable HTTP 403A empresa está indisponível no momento.

HTTP 404 · Não encontrado

depot_not_found HTTP 404Não existe CD com esse depot_code nesta empresa.

HTTP 422 · Não processável

invalid_value HTTP 422O texto traz caractere que não se aceita (nulo, U+0000). Tire-o e mande de novo.

HTTP 429 · Muitos pedidos

rate_limited HTTP 429Muitos pedidos por segundo com esta chave. Espere o Retry-After, em segundos, e tente de novo.
curlNodePythonPHPJavaC#GoRust
Lista o cadastro, com o saldo de cada item
curl -X GET "https://stag.kernos.com.br/v1/objects/product?limit=20" \
  -H "Authorization: Bearer ksk_test_…" \
  -H "Kernos-Version: 2026-10-03"
Resposta · 200 (a forma, sem dado real)
{
  "ok": true,
  "data": {
    "limit": 0,
    "offset": 0,
    "products": [
      {
        "active": true,
        "assignments": 0,
        "complete": true,
        "created_at": "2026-10-03T12:00:00Z",
        "description": "…",
        "ean": "…",
        "id": "3f1e0c8a-5b7d-4c21-9a3e-0b1c2d3e4f50",
        "qty_available": 0,
        "qty_blocked": 0,
        "qty_expired": 0,
        "qty_held": 0,
        "qty_on_hand": 0,
        "qty_on_hold": 0,
        "qty_stopped": 0,
        "short_code": "…",
        "sku": "…",
        "tracks_lot": true,
        "traits": {},
        "type_code": "…",
        "type_id": "…",
        "type_name": "…",
        "uom": "…"
      }
    ],
    "total": 0
  },
  "error": null,
  "error_code": null,
  "field": null,
  "trace_id": null
}
Ambiente

ksk_test_ fala com https://stag.kernos.com.br; ksk_live_, com https://api.kernos.com.br. O prefixo da chave escolhe o endereço.