
API Reference
Megapead — Documentação da API
Referência interativa para localizar produtos, consultar preços e validar os fluxos principais da API sem perder a busca de catálogo durante a navegação.

MegaPEAD API
Documentação e navegação por endpoints
/api/healthVerifica se a API está online e autentica com o header x-api-key. Retorna status, nome do serviço e versão.
Parâmetros da Requisição
Headers
x-api-key | string | required | Chave de autenticação da API |
Sem parâmetros de path ou query.
Modelo de Resposta
200 OK{
"ok": true,
"data": {
"status": "ok",
"service": "megapead-api",
"version": "1.0.0"
}
}Testar Agora
cURL
curl -X GET "/api/health" \ -H "x-api-key: SUA_API_KEY"
Postman
{
"method": "GET",
"header": [
{
"key": "x-api-key",
"value": "SUA_API_KEY",
"type": "text"
}
],
"url": {
"raw": "/api/health",
"host": [
"/api/health"
]
}
}/api/buscarLocaliza produtos por descricao, codigo ou texto livre com multiplos itens. No modo multiplo, cada item do texto retorna suas melhores opcoes de codigo.
Parâmetros da Requisição
Headers
x-api-key | string | required | Chave de autenticação da API |
Query
q | string | required | Termo livre ou lista de itens— e.g. 13 valvula 20mm, 2 flange 25mm |
limit | integer | optional | Máximo de itens retornados (1–100)— e.g. 20 |
item_limit | integer | optional | Limite de opções por item no modo multiplo (1–20)— e.g. 6 |
Modelo de Resposta
200 OK{
"ok": true,
"data": {
"modo": "multiplo",
"total_itens_input": 3,
"total_codigos_extraidos": 5,
"codigos_extraidos": [
"COT100026II",
"FLA200001AA"
],
"itens": [
{
"entrada_original": "13 Valvula de Retencao 20mm",
"qtd": 13,
"consulta": "Valvula de Retencao 20mm",
"diametros_mm": [
"20"
],
"total_opcoes": 2,
"opcoes": [
{
"codigo": "COT100026II",
"descricao": "VALVULA DE RETENCAO 20MM",
"origem": "nacional",
"aliases_pesquisa": [
"valvula",
"retencao",
"20mm"
]
}
]
}
],
"nao_encontrados": []
},
"meta": {
"q": "13 Valvula de Retencao 20mm, 2 Flange 25mm",
"limit": 20,
"item_limit": 6,
"estrategia": "itemizacao+fuzzy-fonetico",
"modo": "multiplo"
}
}Testar Agora
URL gerada
/api/buscar?q=cap&limit=20&item_limit=6cURL
curl -X GET "/api/buscar?q=cap&limit=20&item_limit=6" \ -H "x-api-key: SUA_API_KEY"
Postman
{
"method": "GET",
"header": [
{
"key": "x-api-key",
"value": "SUA_API_KEY",
"type": "text"
}
],
"url": {
"raw": "/api/buscar?q=cap&limit=20&item_limit=6",
"host": [
"/api/buscar?q=cap&limit=20&item_limit=6"
]
}
}/api/produto/{codigo}Retorna descrição, origem, preço base e distribuição de preços por todos os estados para um produto específico.
Parâmetros da Requisição
Headers
x-api-key | string | required | Chave de autenticação da API |
Path
codigo | string | required | Código único do produto— e.g. CAEF020111D |
Modelo de Resposta
200 OK{
"ok": true,
"data": {
"codigo": "CAEF020111D",
"descricao": "CAP EF PVC 20MM 20X1/2 C/ BUCHA LATAO",
"origem": "nacional",
"preco_base": 4.5,
"precos_estado": {
"PE": 4.75,
"SP": 4.9,
"RJ": 4.85
}
}
}Testar Agora
URL gerada
/api/produto/{codigo}cURL
curl -X GET "/api/produto/{codigo}" \
-H "x-api-key: SUA_API_KEY"Postman
{
"method": "GET",
"header": [
{
"key": "x-api-key",
"value": "SUA_API_KEY",
"type": "text"
}
],
"url": {
"raw": "/api/produto/{codigo}",
"host": [
"/api/produto/{codigo}"
]
}
}/api/produto/{codigo}/precoRetorna o preço final calculado para um ou mais produtos. O campo codigo tolera entradas com número da linha, descrição, hífen, sinal de + e outros ruídos. O campo estado aceita UF ou texto livre contendo o estado; se não vier, a API devolve o preço base do sistema.
Parâmetros da Requisição
Headers
x-api-key | string | required | Chave de autenticação da API |
Path
codigo | string | required | Aceita o código puro ou texto misto contendo o código do produto— e.g. 4 COT100026II COLARINHO CURTO TF PEAD DN1000 SDR26 PN6,5 II |
Query
estado | string livre | optional | Aceita UF ou texto solto contendo o estado. Se não vier, usa o preço base do sistema— e.g. todos PE |
Modelo de Resposta
200 OK{
"ok": true,
"data": {
"estado": "PE",
"total_produtos": 2,
"codigos_extraidos": [
"COT100026II",
"COT120021II"
],
"itens": [
{
"codigo": "COT100026II",
"descricao": "COLARINHO CURTO TF PEAD DN1000 SDR26 PN6,5 II",
"estado": "PE",
"preco": 4.75,
"fonte_preco": "UF"
}
]
}
}Testar Agora
URL gerada
/api/produto/{codigo}/preco?estado=PEcURL
curl -X GET "/api/produto/{codigo}/preco?estado=PE" \
-H "x-api-key: SUA_API_KEY"Postman
{
"method": "GET",
"header": [
{
"key": "x-api-key",
"value": "SUA_API_KEY",
"type": "text"
}
],
"url": {
"raw": "/api/produto/{codigo}/preco?estado=PE",
"host": [
"/api/produto/{codigo}/preco?estado=PE"
]
}
}/api/precos/consultarConsulta valores de múltiplos itens depois que o agente já definiu os produtos, quantidades e a UF do cliente. Aceita estado padrão e estados por item. Retorna subtotal por linha, total geral, linhas inválidas e itens não encontrados.
Parâmetros da Requisição
Headers
x-api-key | string | required | Chave de autenticação da API |
Sem parâmetros de path ou query.
Request Body (application/json)
{
"estado": "PE",
"itens": [
{
"codigo": "CAEF020111D",
"qtd": 2
},
{
"codigo": "CATF025111D",
"qtd": 5,
"estado": "SP"
}
]
}Modelo de Resposta
200 OK{
"ok": true,
"data": {
"estado": "PE",
"total": 33.25,
"itens": [
{
"codigo": "CAEF020111D",
"descricao": "CAP EF PVC",
"qtd": 2,
"estado": "PE",
"preco_unitario": 4.75,
"subtotal": 9.5,
"fonte_preco": "tabela_estadual"
}
],
"nao_encontrados": []
}
}Testar Agora
cURL
curl -X POST "/api/precos/consultar" \
-H "x-api-key: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"estado": "PE",
"itens": [
{
"codigo": "CAEF020111D",
"qtd": 2
},
{
"codigo": "CATF025111D",
"qtd": 5,
"estado": "SP"
}
]
}'Postman
{
"method": "POST",
"header": [
{
"key": "x-api-key",
"value": "SUA_API_KEY",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "/api/precos/consultar",
"host": [
"/api/precos/consultar"
]
},
"body": {
"mode": "raw",
"raw": "{\n \"estado\": \"PE\",\n \"itens\": [\n {\n \"codigo\": \"CAEF020111D\",\n \"qtd\": 2\n },\n {\n \"codigo\": \"CATF025111D\",\n \"qtd\": 5,\n \"estado\": \"SP\"\n }\n ]\n}",
"options": {
"raw": {
"language": "json"
}
}
}
}estado preenchido, ele substitui o padrão.