Ler o catálogo
/v1/instances/{id}/catalogdesde M12token da instância ou adminQuando usar
Uma página de produtos do catálogo do próprio número (sem jid) ou do catálogo público de outra empresa (jid: número com DDI). Preços em price_amount_1000 (milésimos da moeda, a convenção do WhatsApp: R$ 12,50 = 12500), price na unidade e price_text formatado em BRL. catalog_link (https://wa.me/c/<número>) compartilha o catálogo inteiro: envie como texto, com prévia de link. image_path baixa a primeira foto pelo LiteZap. Lido pela proxy da instância, com cache de 5 minutos e limite de 30 leituras novas por minuto por instância. O endpoint público pode omitir produtos ocultos ou em análise. Catálogo vazio: products: []; número sem catálogo: 404 catalog_not_found.
Autenticação
Aceita o token da instância (só a própria instância) ou o token admin. Um token de outra instância recebe 403 forbidden (ou 404 not_found em webhooks de outra instância).
Parâmetros
Caminho
| Nome | Tipo | Descrição |
|---|---|---|
idobrigatório | string | Id da instância (inst_...). |
Query
| Nome | Tipo | Descrição |
|---|---|---|
jid | string | Número ou JID (…@s.whatsapp.net) da empresa; padrão, o próprio número. |
limit | integer | Produtos por página (padrão 30, máximo 50). (padrão 30) |
cursor | string | next_cursor da página anterior (opaco). |
Exemplo
curl -s "$LITEZAP_URL/v1/instances/$ID/catalog" \ -H "Authorization: Bearer $LITEZAP_TOKEN"const res = await fetch("http://localhost:8787/v1/instances/inst_7f3a9c2e5b1d4086/catalog", { headers: { Authorization: `Bearer ${process.env.LITEZAP_TOKEN}` },});console.log(res.status, res.status === 204 ? "" : await res.json());import osimport requests
r = requests.get( "http://localhost:8787/v1/instances/inst_7f3a9c2e5b1d4086/catalog", headers={"Authorization": f"Bearer {os.environ['LITEZAP_TOKEN']}"}, timeout=150,)print(r.status_code, r.json() if r.content else "")package main
import ( "fmt" "io" "net/http" "os")
func main() { req, _ := http.NewRequest("GET", "http://localhost:8787/v1/instances/inst_7f3a9c2e5b1d4086/catalog", nil) req.Header.Set("Authorization", "Bearer "+os.Getenv("LITEZAP_TOKEN")) resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.Status, string(out))}<?phprequire 'vendor/autoload.php'; // composer require guzzlehttp/guzzle
$client = new GuzzleHttp\Client(['base_uri' => 'http://localhost:8787']);$res = $client->request('GET', '/v1/instances/inst_7f3a9c2e5b1d4086/catalog', [ 'headers' => ['Authorization' => 'Bearer ' . getenv('LITEZAP_TOKEN')], 'http_errors' => false,]);echo $res->getStatusCode(), ' ', $res->getBody(), PHP_EOL;Nos exemplos, LITEZAP_URL é a URL base (ex.: http://localhost:8787) e o token vem deLITEZAP_TOKEN (instância) ou LITEZAP_ADMIN_TOKEN.
Resposta
200 Uma página do catálogo.
Campos de Catalog
owner | string | |
catalog_link | string | https://wa.me/c/<número>: envie como texto para compartilhar o catálogo inteiro. |
products | CatalogProduct[] | |
next_cursor | string | |
cached | boolean |
{ "catalog_link": "https://wa.me/c/5511999990000", "products": [ { "id": "8364718273645", "name": "Camiseta", "description": "Algodão", "price": 59.9, "price_amount_1000": 59900, "currency": "BRL", "price_text": "R$ 59,90", "hidden": false, "availability": "in_stock", "review_status": "approved", "image_count": 1, "image_path": "/v1/instances/inst_7f3a9c2e5b1d4086/catalog/products/8364718273645/image?jid=5511999990000" } ], "next_cursor": "", "cached": false}Erros
| Código | HTTP | Retentável | O que fazer |
|---|---|---|---|
validation_failed | 400 | não | Corrija o corpo ou os parâmetros; a message diz o campo. |
unauthorized | 401 | não | Envie Authorization: Bearer <token> válido. |
forbidden | 403 | não | Use o token certo (admin, ou o da própria instância). |
catalog_not_found | 404 | não | |
rate_limited | 429 | sim | Espere e tente de novo com backoff. |
upstream_changed | 502 | não | |
catalog_unavailable | 503 | não |
Todo erro usa o envelope {"error":{"code","message","retryable"}}. Tabela completa em Erros.
Equivalente na Z-API: Listar produtos. Veja Migrar da Z-API.
Outras operações de Catálogo e pedidos: Ler as coleções · Ler um produto · Baixar a foto de um produto · Pedidos recebidos · Detalhes de um pedido

