VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Conteúdo da vitrine

Páginas

Lista as páginas institucionais ativas da loja e lê uma página pelo slug.

Páginas são o conteúdo livre da loja: "Sobre nós", "Política de troca", "Termos de uso", "Como comprar". O administrador escreve o texto no painel e a vitrine o exibe em um endereço fixo pelo slug. Use a lista para montar menus e rodapés e a leitura por slug para abrir uma página.

Pontos principais
  • Só páginas active da loja entram. Páginas de seller ficam na vitrine dele.
  • O body é HTML escrito no painel. Sanitize antes de injetar na tela.
  • Páginas têm hierarquia: parent_id aponta para a página mãe, útil para blocos do tipo "páginas filhas".
  • Se a loja não publicou uma página de privacidade, a leitura de um slug de privacidade devolve o texto padrão da plataforma, com is_default: true e os dados da loja preenchidos.
  • O idioma vem de ?lang= ou de Accept-Language. Se faltar tradução, a plataforma devolve a página no idioma disponível.
GET/api/v1/storefront/pagesPública

Listar as páginas ativas

Parâmetros de consulta

pageintegerpadrão: 1
Página da listagem, a partir de 1.
per_pageintegerpadrão: 20
Itens por página, de 1 a 100. Fora da faixa, vale 20.
page_typestring
pagebloglink
Filtra pelo tipo da página: page texto comum, blog página de blog, link atalho para outro endereço.
parent_iduuid
Devolve só as filhas diretas desta página.
langstringpadrão: pt-BR
Idioma do texto. Também aceita o cabeçalho Accept-Language.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/pages?per_page=20"

Resposta

200Páginas
json
{
  "pages": [
    {
      "id": "751d5a75-1165-4953-bd6c-09f9517ebc7a",
      "title": "Sobre Nós",
      "slug": "sobre-nos",
      "body": "<p><strong>Quem somos.</strong> Na Loja Exemplo acreditamos que comprar online deve ser simples.</p>",
      "status": "active",
      "page_type": "page",
      "created_at": "2026-09-09T14:44:48Z",
      "updated_at": "2026-09-09T14:44:48Z"
    }
  ],
  "total": 21,
  "page": 1,
  "per_page": 20,
  "total_pages": 2
}

Campos da resposta

pagesarray
Páginas da listagem. Pode vir null quando não há nenhuma; trate null como lista vazia.
pages[].iduuid
Id da página.
pages[].titlestring
Título.
pages[].slugstring
Identificador na URL, por exemplo sobre-nos.
pages[].bodystring
Texto em HTML.
pages[].statusstring
Aqui sempre active.
pages[].page_typestring
pagebloglink
Tipo da página.
pages[].seo_titlestring
Título para buscadores. Ausente quando não há.
pages[].seo_descriptionstring
Descrição para buscadores. Ausente quando não há.
pages[].parent_iduuid
Página mãe. Ausente na página raiz.
pages[].created_atstring
Criação (RFC 3339).
pages[].updated_atstring
Última alteração (RFC 3339).
totalinteger
Total de páginas que combinam com o filtro.
pageinteger
Página devolvida.
per_pageinteger
Itens por página aplicados.
total_pagesinteger
Total de páginas da listagem.

Cada página traz também apelidos dos campos principais: page_id (igual a id), page (igual a slug), page_title (igual a title), description (igual a body), seo_name (igual a slug), timestamp e updated_timestamp (datas em Unix timestamp).

Erros

StatusQuandoCorpo
500Falha ao consultar (por exemplo, parent_id que não é UUID).{"error":"failed to list pages","detail":"..."}
GET/api/v1/storefront/pages/{slug}Pública

Ler uma página pelo slug

Parâmetros de caminho

slugstringobrigatório
slug da página.

Parâmetros de consulta

langstringpadrão: pt-BR
Idioma do texto. Também aceita o cabeçalho Accept-Language.
bash
curl "$BASE_URL/api/v1/storefront/pages/sobre-nos"
200Página encontrada
json
{
  "id": "751d5a75-1165-4953-bd6c-09f9517ebc7a",
  "title": "Sobre Nós",
  "slug": "sobre-nos",
  "body": "<p><strong>Quem somos.</strong> Na Loja Exemplo acreditamos que comprar online deve ser simples.</p>",
  "status": "",
  "page_type": "page",
  "created_at": "2026-09-09T14:44:48Z",
  "updated_at": "2026-09-09T14:44:48Z"
}

Campos da resposta

(campos da página)object
Os mesmos campos de pages[] da listagem, com os mesmos apelidos. Aqui há um campo a mais: is_default (true quando é o texto padrão de privacidade da plataforma).

Erros

StatusQuandoCorpo
404Nenhuma página ativa com esse slug.{"error":"page not found"}
500Falha ao consultar.{"error":"failed to get page","detail":"..."}
No detalhe, status vem vazio

Na leitura por slug o campo status sai como texto vazio (""), enquanto na listagem sai active. Isso é uma diferença conhecida das duas rotas: a página só é devolvida quando está ativa, então não use status para decidir nada nesta rota.

Veja também

  • Banners
  • Posts do blog
  • Paginação
Anterior
Banners
Próxima
Posts do blog
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Erros
  • Veja também