Pular para o conteúdo
API e webhooksv1
openapi.yaml
Menu da APICatálogo · Listar produtos com preço por canal

Listar produtos com preço por canal

GET https://api.precificador3d.com.br/v1/produtos

Escopo: produtos:ler. Com produtos:custos (e custos.ver de quem criou a chave), os produtos trazem custo, preço sugerido, margem e lucro por hora.

Custo: 1 unidade por requisição com limite até 25; acima disso, operação cara (1 + 1 a cada 25 produtos).

cURL

curl "https://api.precificador3d.com.br/v1/produtos?limite=25" \
  -H "Authorization: Bearer $PC3D_CHAVE"

JavaScript

const resposta = await fetch('https://api.precificador3d.com.br/v1/produtos?limite=25', {
  headers: {
    Authorization: `Bearer ${process.env.PC3D_CHAVE}`,
  },
});
if (!resposta.ok) {
  const erro = await resposta.json(); // application/problem+json
  throw new Error(`${erro.codigo}: ${erro.detail} (${erro.requisicao_id})`);
}
const dados = await resposta.json();

Python

import os

import requests

resposta = requests.get(
    "https://api.precificador3d.com.br/v1/produtos",
    params={
        "limite": 25,
    },
    headers={
        "Authorization": f"Bearer {os.environ['PC3D_CHAVE']}",
    },
    timeout=10,
)
resposta.raise_for_status()
dados = resposta.json()

Parâmetros de consulta

limiteinteger
Itens por página, de 1 a 100. Acima de 25 conta como operação cara. (de 1 a 100; padrão 25)
cursorstring
Valor de proximo_cursor da página anterior. Opaco. (até 200 caracteres)
ordemstring
Ordenação. - na frente = decrescente. (padrão "-atualizado_em") Valores: atualizado_em, -atualizado_em, criado_em, -criado_em.
atualizado_desdestring (date-time)
Só o que mudou a partir deste instante. Use com ordem=atualizado_em para reconciliar depois de webhooks.
statusstring
Valores: avaliacao, catalogo, pausado.
categoria_idstring (uuid)
skustring
Igualdade exata. (até 40 caracteres)

Cabeçalhos

If-None-Matchstring
ETag recebida antes. Se nada mudou, a resposta é 304 e não gasta a cota mensal. (até 100 caracteres)

Resposta 200

Página de produtos.

Campos da resposta (47)
dadosarray de Produto
(0 a 100 itens)
dados[].idstring (uuid)
dados[].nomestring
(até 120 caracteres)
dados[].skustring | null
(até 40 caracteres)
dados[].statusstring
Valores: avaliacao, catalogo, pausado.
dados[].categoriaobject | null
dados[].categoria.idstring (uuid)
dados[].categoria.nomestring
dados[].titulostring | null
dados[].descricaostring | null
dados[].eanstring | null
dados[].medidasobject
dados[].medidas.largura_cmnumber | null
dados[].medidas.altura_cmnumber | null
dados[].medidas.profundidade_cmnumber | null
dados[].medidas.peso_gnumber | null
dados[].medidas.peso_embalado_gnumber | null
dados[].quantidade_minimainteger | null
dados[].multiplo_deinteger | null
dados[].preco_venda_centavosinteger | null
Preço da loja própria definido pela conta, ou null. (de 0 a 100000000000)
dados[].precosarray de object
Preço em cada canal ativo, calculado no servidor.
dados[].precos[].canal_idstring (uuid)
dados[].precos[].canal_nomestring
dados[].precos[].preco_centavosinteger
(de 0 a 100000000000)
dados[].faixasarray de object
Preço por unidade conforme a quantidade (vazio quando o produto não tem faixas).
dados[].faixas[].quantidade_a_partir_deinteger
dados[].faixas[].preco_unitario_centavosinteger
(de 0 a 100000000000)
dados[].variacoesarray de Variacao
dados[].variacoes[].idstring (uuid)
dados[].variacoes[].nomestring
dados[].variacoes[].skustring | null
dados[].variacoes[].ativaboolean
dados[].variacoes[].valoresarray de object
dados[].variacoes[].valores[].tipostring
dados[].variacoes[].valores[].valorstring
dados[].variacoes[].corCorCliente | null
dados[].variacoes[].cor.idstring (uuid)
dados[].variacoes[].cor.codigostring
dados[].variacoes[].cor.nome_clientestring
dados[].variacoes[].cor.acabamentostring
Valores: nenhum, brilhante, fosco.
dados[].criado_emstring (date-time)
dados[].atualizado_emstring (date-time)
dados[].custo_centavosinteger
[custos] Custo completo por unidade. (de 0 a 100000000000)
dados[].preco_sugerido_centavosinteger
[custos] Preço sugerido pelo método de preço da conta. (de 0 a 100000000000)
dados[].margem_bpinteger
[custos] Margem em pontos-base (2500 = 25%).
dados[].lucro_hora_centavosinteger
[custos] Lucro por hora de máquina.
proximo_cursorstring | null
Cursor da próxima página, ou null no fim.
200 Resposta
{
  "dados": [
    {
      "id": "5a6b7c8d-9e0f-4a1b-2c3d-4e5f6a7b8c9d",
      "nome": "Chaveiro Dragão",
      "sku": "CHAV-DRG",
      "status": "catalogo",
      "categoria": {
        "id": "b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e",
        "nome": "Chaveiros"
      },
      "titulo": "Chaveiro Dragão articulado impresso em 3D",
      "descricao": "Dragão articulado de 12 cm, com argola.",
      "ean": null,
      "medidas": {
        "largura_cm": 12,
        "altura_cm": 3,
        "profundidade_cm": 2,
        "peso_g": 14,
        "peso_embalado_g": 22
      },
      "quantidade_minima": 1,
      "multiplo_de": null,
      "preco_venda_centavos": 1990,
      "precos": [
        {
          "canal_id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
          "canal_nome": "Loja própria",
          "preco_centavos": 1990
        },
        {
          "canal_id": "2d3e4f5a-6b7c-4d8e-9f0a-1b2c3d4e5f6a",
          "canal_nome": "Marketplace Exemplo",
          "preco_centavos": 2490
        }
      ],
      "faixas": [
        {
          "quantidade_a_partir_de": 1,
          "preco_unitario_centavos": 1990
        },
        {
          "quantidade_a_partir_de": 35,
          "preco_unitario_centavos": 1290
        }
      ],
      "variacoes": [
        {
          "id": "6b7c8d9e-0f1a-4b2c-3d4e-5f6a7b8c9d0e",
          "nome": "Azul",
          "sku": "CHAV-DRG-AZ",
          "ativa": true,
          "valores": [
            {
              "tipo": "Cor",
              "valor": "Azul"
            }
          ],
          "cor": {
            "id": "c2d3e4f5-a6b7-4c8d-9e0f-1a2b3c4d5e6f",
            "codigo": "#007",
            "nome_cliente": "Azul",
            "acabamento": "fosco"
          }
        }
      ],
      "criado_em": "2026-08-12T10:00:00-03:00",
      "atualizado_em": "2026-10-02T10:00:00-03:00"
    }
  ]
}

Outras respostas

  • 304 Nada mudou desde a ETag informada.
  • 400 dados_invalidos: Dados, filtro, cursor ou cabeçalho inválido.
  • 401 nao_autenticado: Chave ausente, malformada, desconhecida, revogada ou expirada (a resposta é a mesma para todos os casos).
  • 403 escopo_insuficiente: Escopo insuficiente, conta bloqueada, módulo desligado ou chave suspensa.
  • 429 limite_excedido: Limite de uso excedido (rajada, minuto, mês ou requisições simultâneas).
  • 500 erro_interno: Erro interno. O detalhe fica no log, ligado ao requisicao_id.
  • 503 indisponivel: API desligada, sob pressão (disjuntor aberto) ou no limite global da plataforma.

Esta página em Markdown · llms.txt