From tray-api
Manages Tray store product brands (marcas/fabricantes) via API: lists with pagination/filters, retrieves by ID, creates, updates, deletes. Handles name, slug, description, image fields.
npx claudepluginhub tray-tecnologia/tray-api-ai-plugin --plugin tray-apiThis skill uses the workspace's default tool permissions.
> Execute estas verificações antes de gerar qualquer payload ou código:
Monitors deployed URLs for regressions after deploys, merges, or upgrades by checking HTTP status, console errors, network failures, performance (LCP/CLS/INP), content, and API health.
Share bugs, ideas, or general feedback.
Execute estas verificações antes de gerar qualquer payload ou código:
access_token não aparece como literal string no código gerado.when_not_to_use no frontmatter).Documentação oficial: https://developers.tray.com.br/#api-de-marca-do-produto
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /products/brands | Listagem de marcas com paginação e filtros |
| GET | /products/brands/:id | Consultar dados de uma marca por ID |
| POST | /products/brands | Cadastrar nova marca |
| PUT | /products/brands/:id | Atualizar dados da marca |
| DELETE | /products/brands/:id | Excluir marca |
Autenticação: ?access_token={token} em todas as chamadas.
Alias não oficial: a rota
/brands(sem o prefixo/products/) também retorna HTTP 200 nesta API, mas não é documentada oficialmente pela Tray. Use sempre/products/brandspara garantir compatibilidade e aderência à documentação oficial.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | number | — | ID da marca (retornado pela API) |
name | string | Sim | Nome da marca |
slug | string | Não | Slug para URL amigável (gerado automaticamente se não informado) |
description | string | Não | Descrição da marca |
image | string | Não | URL da imagem/logotipo da marca |
| Parâmetro | Descrição |
|---|---|
limit | Itens por página (máximo 50, padrão 30) |
page | Número da página |
Resposta inclui: total, page, offset, limit, maxLimit
| Filtro | Tipo | Descrição |
|---|---|---|
id | number | Filtrar por ID da marca |
name | string | Filtrar por nome da marca |
slug | string | Filtrar por slug |
{
"Brand": {
"name": "Nike",
"slug": "nike",
"description": "Marca esportiva internacional",
"image": "https://exemplo.com/logo-nike.png"
}
}
| Operação | Código | Mensagem |
|---|---|---|
| Criação | 201 | {"message": "Created", "id": 10, "code": 201} |
| Atualização | 200 | {"message": "Saved", "id": 10, "code": 200} |
| Exclusão | 200 | {"message": "Deleted", "id": 10, "code": 200} |
{
"paging": {
"total": 25,
"page": 1,
"offset": 0,
"limit": 30,
"maxLimit": 50
},
"Brands": [
{
"Brand": {
"id": "1",
"name": "Nike",
"slug": "nike",
"description": "Marca esportiva internacional",
"image": "https://exemplo.com/logo-nike.png"
}
}
]
}
{
"Brand": {
"id": "1",
"name": "Nike",
"slug": "nike",
"description": "Marca esportiva internacional",
"image": "https://exemplo.com/logo-nike.png"
}
}
brand_id deve referenciar uma marca existenteBrand e slug automáticoGET /products/brands?name=... antes de criarbrand_id retornado deve ser usado ao cadastrar produtos{"Brand": {...}} corretobrand_id extraído da resposta para uso em produtosaccess_token configurado