Skip to main content

📌 Endpoint

PUT /pages/:domain Cria ou atualiza a página da loja (upsert).

🔐 Autenticação

  • Rota privada.
  • Requer header Authorization com sua API key e plano ativo.
{
	"Authorization": "SUA_API_KEY_AQUI"
}

🧾 Parâmetros de rota

ParâmetroTipoObrigatórioDescrição
domainstringSimDomínio da loja

🧍 Body (JSON)

CampoTipoObrigatórioRegras
htmlstringSim60 até 1.000.000 caracteres
templatestringNãoaté 50 (padrão: DEFAULT)

✅ Exemplo de requisição

curl -X PUT "https://api.cabrapi.com.br/pages/minhaloja.com.br" \
	-H "Authorization: SUA_API_KEY_AQUI" \
	-H "Content-Type: application/json" \
	-d '{
		"html": "<html><body><h1>Minha loja</h1></body></html>",
		"template": "DEFAULT"
	}'

🧩 Snippet (JavaScript - fetch, só trocar Authorization)

const API_BASE = "https://api.cabrapi.com.br";
const AUTHORIZATION = "SUA_API_KEY_AQUI";

const authHeaders = {
	Authorization: AUTHORIZATION,
	"Content-Type": "application/json"
};

const storesResponse = await fetch(`${API_BASE}/stores`, {
	headers: { Authorization: AUTHORIZATION }
});
const storesData = await storesResponse.json();

if (!storesResponse.ok || !storesData?.stores?.length) {
	throw new Error("Nenhuma loja encontrada para essa API key.");
}

const domain = storesData.stores[0].domain;

const response = await fetch(`${API_BASE}/pages/${domain}`, {
	method: "PUT",
	headers: authHeaders,
	body: JSON.stringify({
		html: "<html><body><h1>Minha loja</h1><p>Página criada via script.</p></body></html>",
		template: "DEFAULT"
	})
});

const data = await response.json();
console.log({ status: response.status, data });

📦 Resposta de sucesso (200)

{
	"status": true,
	"code": "PAGE_UPSERTED"
}

⚠️ Possíveis erros

  • 400 INVALID_DATA → body/parâmetro inválido
  • 404 STORE_NOT_FOUND → loja não encontrada ou não pertence ao usuário
  • 500 INTERNAL_SERVER_ERROR → erro interno