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).

EscopoO que abre
read_contentler as páginas
write_contentcriar 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: false guarda 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çãoStatuscode
Campo fora do formato (os campos em fields)400invalid_request
A loja já tem 50 páginas400invalid_request
A página não existe nesta loja404not_found
O handle já é de outra página409duplicate_handle

A vitrine guarda as páginas em cache por até 60 segundos: a mudança pela API aparece nela em até um minuto.