API Admin › Recursos
Páginas
As páginas institucionais da loja: "Sobre", "Trocas e devoluções", "Entrega", "Política de privacidade". A vitrine mostra cada página publicada em /paginas/<handle> e lista todas no rodapé, na ordem em que foram criadas. São as mesmas páginas do painel (Loja virtual › Páginas).
| Escopo | O que abre |
|---|---|
read_content | ler as páginas |
write_content | criar e mudar as páginas (inclui read_content) |
Excluir uma página fica no painel: pela API, uma página sai da vitrine com published: false. O write_content também muda os textos do catálogo; ver Só os textos.
Criar e mudar uma página ficam no histórico da integração por 180 dias, com o antes e o depois de cada campo: o lojista vê e desfaz no painel, na página da integração, em Mudanças, e um agente, pelo servidor MCP.
O objeto página
{
"id": "8e2b...",
"title": "Trocas e devoluções",
"handle": "trocas-e-devolucoes",
"body": "Você tem **7 dias** depois de receber para trocar.\n\n## Como trocar\n\n- Fale com a loja pelo e-mail.",
"published": true,
"seo": {
"title": "Trocas e devoluções",
"description": "Como trocar ou devolver um produto da loja."
},
"template_suffix": "",
"updated_at": "2026-10-19T12:00:00.000Z"
}title: até 80 caracteres.handle: o endereço na vitrine (/paginas/trocas-e-devolucoes), único na loja, até 60 caracteres, só letras minúsculas, números e hífens.body: o texto, até 20.000 caracteres, no Markdown pequeno da vitrine: negrito (**), itálico (_), links, listas e títulos (##). HTML não é desenhado.published:falseguarda a página fora da vitrine e do rodapé.seo: o título (até 70) e a descrição (até 320) nos buscadores. Em branco, a vitrine usa o título e o começo do texto.template_suffix: o modelo da página no tema (templates/page.<modelo>); vazio, o padrão.
GET /pages
Todas as páginas (no máximo 50), na ordem do rodapé, numa página só, sem o body: { "data": [página...], "next_cursor": null }.
GET /pages/{id}
Uma página, com o body.
POST /pages
Cria a página no fim do rodapé. Responde 201 com ela. Só title é obrigatório; sem handle, o endereço sai do título, com um número no fim se já estiver em uso (sobre, sobre-2).
{
"title": "Trocas e devoluções",
"body": "Você tem **7 dias** depois de receber para trocar.",
"seo": { "description": "Como trocar ou devolver um produto da loja." }
}A página criada pela API nasce fora do ar (published: false), mesmo que o corpo traga published: confira o texto e publique com o PATCH, ou deixe para o lojista publicar no painel. Uma loja tem até 50 páginas (a 51ª dá 400).
PATCH /pages/{id}
Só o que vier muda; seo muda campo a campo. Todos os campos do objeto, menos id e updated_at.
{
"handle": "trocas",
"published": true,
"seo": { "title": "Trocas" }
}Um handle novo leva o endereço antigo ao novo (301), para os buscadores e os links de fora não perderem a página.
Erros
| Situação | Status | code |
|---|---|---|
Campo fora do formato (os campos em fields) | 400 | invalid_request |
| A loja já tem 50 páginas | 400 | invalid_request |
| A página não existe nesta loja | 404 | not_found |
O handle já é de outra página | 409 | duplicate_handle |
A vitrine guarda as páginas em cache por até 60 segundos: a mudança pela API aparece nela em até um minuto.