Posts do blog
Lista as categorias do blog, os posts publicados com filtros e lê um post pelo slug.
O blog da loja publica artigos (guias de compra, novidades, receitas) que atraem busca orgânica e ajudam a vender. Estas rotas servem a vitrine: as categorias para o filtro, a lista de posts para a página inicial do blog e o post completo para a leitura.
/api/v1/storefront/blog/categoriesPúblicaListar as categorias do blog
Parâmetros de consulta
langstringpadrão: pt-BRAccept-Language.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/blog/categories"Resposta
{
"categories": [
{
"id": "4e733a25-349a-4598-a916-a0984fc4aa76",
"name": "Novidades",
"slug": "novidades",
"status": "A",
"sort_order": 0,
"created_at": "2026-07-31T23:57:31Z",
"updated_at": "2026-07-31T23:57:31Z"
}
],
"total": 1
}Campos da resposta
categoriesarray[] quando não há nenhuma.categories[].iduuidcategory_id no filtro de posts.categories[].namestringcategories[].slugstringcategories[].descriptionstringcategories[].parent_iduuidcategories[].statusstringA (ativa).categories[].sort_orderintegercategories[].created_atstringcategories[].updated_atstringtotalintegerCada categoria traz também apelidos dos campos principais (category_id, category, seo_name, timestamp, updated_timestamp).
Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | Módulo blog desligado. | {"error":"module_disabled","module":"blog"} |
| 500 | Falha ao consultar. | {"error":"failed to list blog categories","detail":"..."} |
/api/v1/storefront/blog/postsPúblicaListar os posts publicados
Parâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 20category_iduuid500.searchstringexcerpt), sem diferenciar maiúsculas de minúsculas.langstringpadrão: pt-BRExemplo de requisição
curl "$BASE_URL/api/v1/storefront/blog/posts?per_page=10&search=mouse&lang=pt-BR"Resposta
{
"posts": [
{
"id": "91af684b-cf41-4243-a37d-a133a39d6ed3",
"title": "Como escolher o mouse perfeito para o seu dia a dia",
"slug": "como-escolher-o-mouse-perfeito-para-o-seu-dia-a-dia",
"excerpt": "Guia prático com 5 passos para escolher o mouse ideal.",
"body": "## Por que o mouse importa mais do que parece\n\nPassamos horas com a mão sobre o mouse todos os dias...",
"author_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"tags": [],
"published_at": "2026-09-09T14:52:00Z",
"view_count": 12,
"created_at": "2026-09-09T14:52:13Z",
"updated_at": "2026-09-09T14:56:05Z",
"status": "A"
}
],
"total": 9,
"page": 1,
"per_page": 10,
"total_pages": 1
}Campos da resposta
postsarraypublished_at). [] quando não há nenhum.posts[].iduuidpostId das rotas de comentários.posts[].titlestringposts[].slugstringposts[].excerptstringposts[].bodystringposts[].featured_imagestringposts[].author_iduuidposts[].category_iduuidposts[].category_namestringposts[].tagsarrayposts[].meta_titlestringposts[].meta_descriptionstringposts[].published_atstringposts[].view_countintegerposts[].statusstringA (publicado).posts[].created_atstringposts[].updated_atstringtotalintegerpageintegerper_pageintegertotal_pagesintegerCada post traz também apelidos dos campos principais: post_id, page_id, page_title, seo_name, description (igual a body), short_description (igual a excerpt), timestamp, updated_timestamp, published_timestamp e company_id (igual a author_id).
Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | Módulo blog desligado. | {"error":"module_disabled","module":"blog"} |
| 500 | category_id que não é UUID, ou falha ao consultar. | {"error":"failed to list blog posts","detail":"..."} |
/api/v1/storefront/blog/posts/{slug}PúblicaLer um post pelo slug
Parâmetros de caminho
slugstringobrigatórioslug do post.Parâmetros de consulta
langstringpadrão: pt-BRcurl "$BASE_URL/api/v1/storefront/blog/posts/como-escolher-o-mouse-perfeito-para-o-seu-dia-a-dia"{
"id": "91af684b-cf41-4243-a37d-a133a39d6ed3",
"title": "Como escolher o mouse perfeito para o seu dia a dia",
"slug": "como-escolher-o-mouse-perfeito-para-o-seu-dia-a-dia",
"excerpt": "Guia prático com 5 passos para escolher o mouse ideal.",
"body": "## Por que o mouse importa mais do que parece\n\nPassamos horas com a mão sobre o mouse todos os dias...",
"author_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"tags": [],
"published_at": "2026-09-09T14:52:00Z",
"view_count": 13,
"created_at": "2026-09-09T14:52:13Z",
"updated_at": "2026-09-09T14:56:05Z",
"status": "A"
}Campos da resposta
(campos do post)objectposts[] da lista, com os mesmos apelidos.Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | Módulo blog desligado. | {"error":"module_disabled","module":"blog"} |
| 404 | Não há post publicado da loja com esse slug. | {"error":"blog post not found"} |
| 500 | Falha ao consultar. | {"error":"failed to get blog post","detail":"..."} |