Páginas
Endereço base: https://api.denaryx.com/admin/2026-10. Exemplos e regras no guia Páginas. Os erros seguem o formato comum. A especificação inteira: baixar o OpenAPI.
GET /pages
As páginas da loja
Escopo read_content
As páginas institucionais ("Sobre", "Trocas e devoluções"), na ordem do rodapé, sem o texto: ele vem em GET /pages/{id}. Todas (no máximo 50) cabem numa página só.
Resposta
200 Sucesso. (PageList)
Os campos da resposta (11)
| Campo | Tipo | Descrição |
|---|---|---|
data | lista de objeto | |
data[].id | string (uuid) | |
data[].title | string | |
data[].handle | string | |
data[].published | boolean | |
data[].seo | objeto | |
data[].seo.title | string | |
data[].seo.description | string | |
data[].template_suffix | string | |
data[].updated_at | string | |
next_cursor | string ou null |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
POST /pages
Cria uma página
Escopo write_content
No fim do rodapé. Sem handle, o endereço sai do título. A página nasce fora do ar (published false): publique com o PATCH, depois de conferir. Uma loja tem até 50 páginas.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Corpo application/json: PageCreate
| Campo | Tipo | Descrição |
|---|---|---|
titleobrigatório | string | Até 80 caracteres. |
handle | string | Até 60 caracteres. |
body | string | Até 20000 caracteres.Sem ele: "". |
seo | objeto | |
seo.title | string | Até 70 caracteres. |
seo.description | string | Até 320 caracteres. |
template_suffix | string | Até 40 caracteres. |
Resposta
201 Sucesso. (Page)
Os campos da resposta (10)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
title | string | |
handle | string | |
body | string | |
published | boolean | |
seo | objeto | |
seo.title | string | |
seo.description | string | |
template_suffix | string | |
updated_at | string |
Erros
400A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).409O estado do recurso não permite a mudança, ou ele mudou desde a leitura (conflict).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
GET /pages/{id}
Uma página
Escopo read_content
Com o texto, no Markdown pequeno da vitrine, e o título e a descrição para os buscadores.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id da página. |
Resposta
200 Sucesso. (Page)
Os campos da resposta (10)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
title | string | |
handle | string | |
body | string | |
published | boolean | |
seo | objeto | |
seo.title | string | |
seo.description | string | |
template_suffix | string | |
updated_at | string |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
PATCH /pages/{id}
Muda campos de uma página
Escopo write_content
Só o que vier muda; seo muda campo a campo. Um handle novo leva o endereço antigo ao novo. published true põe a página na vitrine e no rodapé.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id da página. |
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Corpo application/json: PageUpdate
| Campo | Tipo | Descrição |
|---|---|---|
title | string | Até 80 caracteres. |
handle | string | Até 60 caracteres. |
body | string | Até 20000 caracteres. |
published | boolean | |
seo | objeto | |
seo.title | string | Até 70 caracteres. |
seo.description | string | Até 320 caracteres. |
template_suffix | string | Até 40 caracteres. |
Resposta
200 Sucesso. (Page)
Os campos da resposta (10)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
title | string | |
handle | string | |
body | string | |
published | boolean | |
seo | objeto | |
seo.title | string | |
seo.description | string | |
template_suffix | string | |
updated_at | string |
Erros
400A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).409O estado do recurso não permite a mudança, ou ele mudou desde a leitura (conflict).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).