VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Blog

Categorias do blog

Lista, cria, altera e apaga as categorias que agrupam os posts.

Listar categorias do blog

Devolve todas as categorias, sem paginação, ordenadas por sort_order e depois por nome.

GET/api/v1/admin/blog/categoriesAdmin

Lista as categorias do blog

Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.

Exemplo de requisição (Listar categorias)

Resposta (Listar categorias)

200Categorias

Campos da resposta

categoriesarray

Categorias.

iduuid
Identificador da categoria.
namestring
Nome.
slugstring
Trecho da URL.
descriptionstring
Descrição. Ausente quando vazia.
parent_iduuid
Categoria pai. Ausente na raiz.
statusstring
Letra do estado: A ativa, D inativa.
sort_orderinteger
Ordem de exibição, menor primeiro.
created_atstring
Criação, RFC 3339.
updated_atstring
Última alteração, RFC 3339.
totalinteger
Quantidade devolvida.

Erros (Listar categorias)

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"invalid or expired token"}
403O administrador não tem o privilégio exigido.{"error":"insufficient privileges","privilege_required_any":["manage_content","view_content"]}
Campos repetidos

A resposta também traz campos que repetem outros valores (category_id, category, seo_name, timestamp, updated_timestamp).

Criar categoria do blog

Cria uma categoria para agrupar posts. Se o slug já existe, a plataforma acrescenta -2, -3...

POST/api/v1/admin/blog/categoriesAdmin

Cria uma categoria do blog

Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.

Corpo da requisição

namestringobrigatório
Nome.
slugstringobrigatório
Trecho da URL.
descriptionstring
Descrição.
parent_iduuid
Categoria pai, para criar hierarquia.
statusstringpadrão: active
activeinactive
Estado.
sort_orderintegerpadrão: 0
Ordem de exibição.
descriptionsobject
Nome e descrição por idioma, com chave no código do idioma.

Exemplo de requisição (Criar categoria)

Resposta (Criar categoria)

201Categoria criada

Campos da resposta

iduuid
Identificador da categoria.
namestring
Nome.
slugstring
Trecho da URL.
descriptionstring
Descrição. Ausente quando vazia.
parent_iduuid
Categoria pai. Ausente na raiz.
statusstring
Letra do estado: A ativa, D inativa.
sort_orderinteger
Ordem de exibição, menor primeiro.
created_atstring
Criação, RFC 3339.
updated_atstring
Última alteração, RFC 3339.

Erros (Criar categoria)

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"invalid or expired token"}
403O administrador não tem o privilégio exigido.{"error":"insufficient privileges","required":"manage_content"}
400Corpo inválido, ou falta name ou slug.{"error":"name and slug are required"}
500Falha ao gravar (por exemplo parent_id inexistente).{"error":"failed to create blog category","detail":"..."}

Atualizar categoria

Atualiza só os campos enviados. Mudar o status para inactive grava a letra D. Um slug já usado por outra categoria é recusado.

PUT/api/v1/admin/blog/categories/{id}Admin

Altera campos de uma categoria

Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.

Parâmetros de caminho

iduuidobrigatório
Identificador da categoria.

Corpo da requisição

namestring
Nome.
slugstring
Trecho da URL.
descriptionstring
Descrição.
parent_iduuid
Categoria pai.
statusstring
activeinactive
Estado.
sort_orderinteger
Ordem de exibição.

Exemplo de requisição (Atualizar categoria)

Resposta (Atualizar categoria)

200Categoria atualizada

Campos da resposta

iduuid
Identificador da categoria.
namestring
Nome.
slugstring
Trecho da URL.
descriptionstring
Descrição. Ausente quando vazia.
parent_iduuid
Categoria pai. Ausente na raiz.
statusstring
Letra do estado: A ativa, D inativa.
sort_orderinteger
Ordem de exibição, menor primeiro.
created_atstring
Criação, RFC 3339.
updated_atstring
Última alteração, RFC 3339.

Erros (Atualizar categoria)

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"invalid or expired token"}
403O administrador não tem o privilégio exigido.{"error":"insufficient privileges","required":"manage_content"}
500Categoria inexistente, slug repetido, ou id que não é UUID. Todos respondem 500.{"error":"failed to update blog category","detail":"blog category slug \"guia\" already in use"}

Apagar categoria

Remove a categoria de vez. Confira antes quais posts a usam, porque a exclusão é definitiva.

DELETE/api/v1/admin/blog/categories/{id}Admin

Apaga uma categoria do blog

Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.

Parâmetros de caminho

iduuidobrigatório
Identificador da categoria.

Exemplo de requisição (Apagar categoria)

Resposta (Apagar categoria)

200Categoria apagada

Erros (Apagar categoria)

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"invalid or expired token"}
403O administrador não tem o privilégio exigido.{"error":"insufficient privileges","required":"manage_content"}
500A categoria não existe, o id não é UUID, ou o banco recusou a exclusão.{"error":"failed to delete blog category","detail":"blog category not found"}
Exclusão definitiva

Não há lixeira para categorias do blog.

Veja também

  • Traduções da categoria
  • Criar post
Anterior
Traduções do post
Próxima
Traduções da categoria
Nesta página
  • Listar categorias do blog
  • Exemplo de requisição (Listar categorias)
  • Resposta (Listar categorias)
  • Erros (Listar categorias)
  • Criar categoria do blog
  • Exemplo de requisição (Criar categoria)
  • Resposta (Criar categoria)
  • Erros (Criar categoria)
  • Atualizar categoria
  • Exemplo de requisição (Atualizar categoria)
  • Resposta (Atualizar categoria)
  • Erros (Atualizar categoria)
  • Apagar categoria
  • Exemplo de requisição (Apagar categoria)
  • Resposta (Apagar categoria)
  • Erros (Apagar categoria)
  • Veja também
bash
curl "$BASE_URL/api/v1/admin/blog/categories" \
  -H "Authorization: Bearer $TOKEN"
bash
curl -X POST "$BASE_URL/api/v1/admin/blog/categories" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Guia de compras",
  "slug": "guia-de-compras",
  "sort_order": 10
}'
bash
curl -X PUT "$BASE_URL/api/v1/admin/blog/categories/4e733a25-349a-4598-a916-a0984fc4aa76" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "inactive"
}'
bash
curl -X DELETE "$BASE_URL/api/v1/admin/blog/categories/4e733a25-349a-4598-a916-a0984fc4aa76" \
  -H "Authorization: Bearer $TOKEN"
json
{
  "categories": [
    {
      "id": "4e733a25-349a-4598-a916-a0984fc4aa76",
      "name": "Guia de compras",
      "slug": "guia-de-compras",
      "status": "A",
      "sort_order": 10,
      "created_at": "2026-07-31T23:57:31.199499Z",
      "updated_at": "2026-07-31T23:57:31.199499Z",
      "category_id": "4e733a25-349a-4598-a916-a0984fc4aa76",
      "category": "Guia de compras",
      "seo_name": "guia-de-compras",
      "timestamp": 1785542251,
      "updated_timestamp": 1785542251
    }
  ],
  "total": 3
}
json
{
  "id": "4e733a25-349a-4598-a916-a0984fc4aa76",
  "name": "Guia de compras",
  "slug": "guia-de-compras",
  "status": "A",
  "sort_order": 10,
  "created_at": "2026-07-31T23:57:31.199499Z",
  "updated_at": "2026-07-31T23:57:31.199499Z",
  "category_id": "4e733a25-349a-4598-a916-a0984fc4aa76",
  "category": "Guia de compras",
  "seo_name": "guia-de-compras",
  "timestamp": 1785542251,
  "updated_timestamp": 1785542251
}
json
{
  "id": "4e733a25-349a-4598-a916-a0984fc4aa76",
  "name": "Guia de compras",
  "slug": "guia-de-compras",
  "status": "D",
  "sort_order": 10,
  "created_at": "2026-07-31T23:57:31.199499Z",
  "updated_at": "2026-07-31T23:57:31.199499Z",
  "category_id": "4e733a25-349a-4598-a916-a0984fc4aa76",
  "category": "Guia de compras",
  "seo_name": "guia-de-compras",
  "timestamp": 1785542251,
  "updated_timestamp": 1785542251
}
json
{
  "message": "blog category deleted"
}