API Admin › Referência

Propostas

Endereço base: https://api.denaryx.com/admin/2026-10. Exemplos e regras no guia Propostas (modo de aprovação). Os erros seguem o formato comum. A especificação inteira: baixar o OpenAPI.

GET /proposals

As propostas desta integração

Escopo write_products ou write_content

Numa integração em modo proposta (approval_mode "proposal" em GET /token), as escritas de texto (PATCH de produto, foto, coleção, marca e página, e POST /pages) respondem 202 com uma proposta, e nada muda na loja até alguém da equipe aprovar em "Sugestões dos agentes", no painel. Aqui você acompanha: pendente, aprovada (com o change_id da mudança no histórico), recusada (com o motivo, quando o lojista escreveu), em conflito (o valor de base mudou antes da aprovação: o valor de agora vem em conflict) ou expirada (ninguém decidiu em 7 dias). Da mais nova para a mais velha.

Parâmetros

NomeOndeTipoDescrição
limitconsultaintegerQuantos itens por página, de 1 a 100 (50 sem ele).
cursorconsultastringO next_cursor da página anterior, como veio. Os filtros continuam os mesmos.
statusconsultastringSó as que estão nesta situação.Um de: pending, approved, rejected, conflict, expired.
batch_idconsultastring (uuid)Só as da mesma chamada.

Resposta

200 Sucesso. (ProposalList)

Os campos da resposta (28)
CampoTipoDescrição
datalista de Proposal
data[].idstring (uuid)
data[].resource_typestringUm de: product, collection, brand, page, image.
data[].resource_idstring (uuid) ou null
data[].product_idstring (uuid) ou null
data[].labelstring
data[].actionstringUm de: update, create, revert.
data[].fieldslista de objeto
data[].fields[].fieldstring
data[].fields[].beforestring ou integer ou boolean ou null
data[].fields[].afterstring ou integer ou boolean
data[].batch_idstring (uuid) ou null
data[].originstringUm de: mcp, api.
data[].statusstringUm de: pending, approved, rejected, conflict, expired.
data[].created_atstring
data[].expires_atstring
data[].decided_atstring ou null
data[].rejection_reasonstring ou null
data[].conflictobjeto ou null
data[].conflict.codestring
data[].conflict.messagestring
data[].conflict.fieldslista de objeto
data[].conflict.fields[].fieldstring
data[].conflict.fields[].expectedstring ou integer ou boolean ou null
data[].conflict.fields[].currentstring ou integer ou boolean ou null
data[].change_idstring (uuid) ou null
data[].revertsstring (uuid) ou null
next_cursorstring ou null

Erros

  • 400 A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).
  • 401 O token falta, não existe, foi revogado ou venceu (authentication_error).
  • 403 O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).
  • 429 Chamadas demais: espere o Retry-After (rate_limited).
  • 500 Erro do nosso lado (api_error).
  • 503 A API está ocupada com outras chamadas: espere o Retry-After (api_error).

GET /proposals/{id}

Uma proposta

Escopo write_products ou write_content

A proposta desta integração, com os campos (o before é o valor de base, que a aprovação confere), a situação e, decidida, quando e como.

Parâmetros

NomeOndeTipoDescrição
idobrigatóriocaminhostring (uuid)O id da proposta.

Resposta

200 Sucesso. (Proposal)

Os campos da resposta (26)
CampoTipoDescrição
idstring (uuid)
resource_typestringUm de: product, collection, brand, page, image.
resource_idstring (uuid) ou null
product_idstring (uuid) ou null
labelstring
actionstringUm de: update, create, revert.
fieldslista de objeto
fields[].fieldstring
fields[].beforestring ou integer ou boolean ou null
fields[].afterstring ou integer ou boolean
batch_idstring (uuid) ou null
originstringUm de: mcp, api.
statusstringUm de: pending, approved, rejected, conflict, expired.
created_atstring
expires_atstring
decided_atstring ou null
rejection_reasonstring ou null
conflictobjeto ou null
conflict.codestring
conflict.messagestring
conflict.fieldslista de objeto
conflict.fields[].fieldstring
conflict.fields[].expectedstring ou integer ou boolean ou null
conflict.fields[].currentstring ou integer ou boolean ou null
change_idstring (uuid) ou null
revertsstring (uuid) ou null

Erros

  • 401 O token falta, não existe, foi revogado ou venceu (authentication_error).
  • 403 O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).
  • 404 O recurso não existe nesta loja (not_found).
  • 429 Chamadas demais: espere o Retry-After (rate_limited).
  • 500 Erro do nosso lado (api_error).
  • 503 A API está ocupada com outras chamadas: espere o Retry-After (api_error).