From tray-api
Manages product brands (manufacturers) via the Tray API: list, get, create, update, and delete brands with pagination and filters.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tray-api:marcasWhen to use
Use quando o desenvolvedor mencionar: marca, fabricante, brand, GET /brands, POST /brands, PUT /brands, brand_id, filtrar por marca ou cadastrar fabricante.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **OBRIGATÓRIO:** `node skills/tray-dev/scripts/search_docs.mjs "<termo>"` — confirme o comportamento da API antes de gerar código.
node skills/tray-dev/scripts/search_docs.mjs "<termo>" — confirme o comportamento da API antes de gerar código.node skills/marcas/scripts/validate.mjs '<payload_json>' — valide a estrutura do payload de marca antes de retornar código ao usuário.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).node skills/marcas/scripts/validate.mjs '<payload_json>'
para confirmar a estrutura do payload que vai gerar. O validador checa
apenas estrutura (campos obrigatórios, tipos e campos desconhecidos),
nunca valores reais — então monte um payload sintético com placeholders
sempre que os valores vierem de variáveis de ambiente, da entrada do
usuário ou de outras chamadas. Exemplo:
node skills/marcas/scripts/validate.mjs '{"Brand":{"brand":"<nome>"}}'.
Corrija todos os erros antes de retornar o código ao usuário. Até 3
tentativas — se persistir, explique o problema ao usuário.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) |
brand | string | Sim | Nome da marca |
slug | string | Não | Slug para URL amigável (gerado automaticamente se não informado) |
⚠️ O campo do nome da marca é
brand, NÃOname. Enviarnameresulta em"Invalid data provided"(HTTP 400) — a API ignora o campo desconhecido e falha porbrandausente. Os campos aceitos no payload são apenasbrandeslug. Os camposdescriptioneimagenão existem nesta API de marcas.
| 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 |
brand | string | Filtrar por nome da marca |
{
"Brand": {
"brand": "Nike",
"slug": "nike"
}
}
| 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",
"brand": "Nike",
"slug": "nike"
}
}
]
}
{
"Brand": {
"id": "1",
"brand": "Nike",
"slug": "nike"
}
}
brand_id deve referenciar uma marca existentebrand para o nome da marca; name é ignorado e causa erroBrand, usando o campo brand (e slug automático)GET /products/brands?brand=... antes de criarbrand, slug)brand_id retornado deve ser usado ao cadastrar produtos{"Brand": {...}} correto e campo brandbrand_id extraído da resposta para uso em produtosaccess_token configuradonpx claudepluginhub tray-tecnologia/tray-api-ai-plugin --plugin tray-apiProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.