{
  "info": {
    "_postman_id": "21a91778-dfe9-4920-b2a0-3a41093fe4b6",
    "name": "API Pedágios · calcularpedagio.com.br",
    "description": "Cálculo de pedágios, rotas, frete ANTT e busca de endereços no Brasil.\n\nComo usar: crie a variável de ambiente `apiKey` com a chave obtida em https://calcularpedagio.com.br/key (ou edite a variável `apiKey` desta coleção). Todas as requisições enviam `Authorization: Bearer {{apiKey}}`.\n\nFormato dos pontos: `Cidade/UF` (município do IBGE) ou `Rótulo@lat,lng` (endereço resolvido pela busca de endereços). Os dois podem ser misturados. Coordenadas puras vão nos endpoints /coordenadas.\n\nDocumentação completa: https://calcularpedagio.com.br/documentacao",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://calcularpedagio.com.br/api"
    },
    {
      "key": "apiKey",
      "value": "SUA_API_KEY"
    }
  ],
  "event": [
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [
          "pm.test('Resposta em JSON ou SVG', () => pm.expect(pm.response.headers.get('Content-Type')).to.match(/json|svg/));",
          "if (pm.response.headers.get('X-RateLimit-Remaining')) console.log('Usos restantes:', pm.response.headers.get('X-RateLimit-Remaining'));",
          "if (pm.response.code >= 400) { try { console.log('Erro:', pm.response.json().error); } catch (e) {} }"
        ]
      }
    }
  ],
  "item": [
    {
      "name": "1. Busca de endereços (não consome usos)",
      "description": "",
      "item": [
        {
          "name": "Buscar rua com viés de posição",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/geocode/v1?q=avenida 7 de setembro leme&lat=-22.18&lng=-47.30&zoom=10",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "geocode",
                "v1"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "avenida 7 de setembro leme"
                },
                {
                  "key": "lat",
                  "value": "-22.18"
                },
                {
                  "key": "lng",
                  "value": "-47.30"
                },
                {
                  "key": "zoom",
                  "value": "10"
                }
              ]
            },
            "description": "Converte texto digitado em pontos prontos para a rota. `lat`/`lng` = centro do mapa ou GPS do usuário, para desempatar ruas homônimas. `zoom` 3 a 16 (5 = país, 12 = cidade). Use o campo `ponto` de cada resultado em `pontos`.\n\nLimite: 120 buscas por minuto por chave. Não consome usos."
          }
        },
        {
          "name": "Buscar por CEP",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/geocode/v1?q=01310-100",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "geocode",
                "v1"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "01310-100"
                }
              ]
            },
            "description": "CEP com ou sem hífen. A resposta traz rua, bairro e cidade já resolvidos."
          }
        },
        {
          "name": "Buscar cidade (autocompletar)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/geocode/v1?q=gram&limite=5",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "geocode",
                "v1"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "gram"
                },
                {
                  "key": "limite",
                  "value": "5"
                }
              ]
            },
            "description": "Prefixo de município: devolve `tipo: city` com `ponto` no formato Cidade/UF."
          }
        }
      ]
    },
    {
      "name": "2. Rotas e pedágios (v3)",
      "description": "",
      "item": [
        {
          "name": "Por cidades (Cidade/UF)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "v3"
              ]
            },
            "description": "2 a 100 pontos na ordem do trajeto. Cada chamada de cálculo consome 1 uso. Acima de 15 pedágios ou 1.000 km: 5 usos; acima de 20 pedágios ou 1.500 km: 10 usos; acima de 40 pedágios ou 2.000 km: 50 usos. Vale somente a maior faixa atingida. Máximo de 50 pedágios e 3.000 km por chamada; acima disso, a chamada é recusada sem consumo. Ida e volta somam distância e passagens por pedágios; nas alternativas, valem os maiores valores entre as rotas.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Jundiaí/SP\",\n    \"Campinas/SP\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Por endereço (Rótulo@lat,lng)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "v3"
              ]
            },
            "description": "Ponto de endereço no formato devolvido por /geocode/v1 (`ponto`). Cidades e endereços podem ser misturados. `links.calculadora` reproduz a consulta na calculadora do site.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"Leme/SP\",\n    \"Avenida Paulista, Bela Vista, São Paulo/SP@-23.557201,-46.661039\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Por coordenadas [lat, lng]",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coordenadas/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coordenadas",
                "v3"
              ]
            },
            "description": "Pares [latitude, longitude] em graus decimais, dentro do Brasil.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    [\n      -29.5008,\n      -51.9484\n    ],\n    [\n      -29.2562,\n      -51.5341\n    ]\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Caminhão 5 eixos, ida e volta, ordem otimizada",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "v3"
              ]
            },
            "description": "`veiculo`: carro, moto, onibus, caminhao (eixos obrigatório), motorhome; ou forma curta \"caminhao-5\". `retorno: true` calcula a volta (faixa única pela soma de distância e pedágios da ida e volta). `otimizar` reordena as paradas.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Ribeirão Preto/SP\",\n    \"Campinas/SP\",\n    \"Curitiba/PR\"\n  ],\n  \"veiculo\": {\n    \"tipo\": \"caminhao\",\n    \"eixos\": 5\n  },\n  \"retorno\": true,\n  \"otimizar\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Data da viagem, combustível, balanças e postos",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "v3"
              ]
            },
            "description": "`data` aplica tarifa de fim de semana/feriado onde existe (Rio-Santos, Via Lagos...). `combustivel` devolve litros e custo. `mostrar` lista balanças (400 m) e postos (300 m) ao longo da rota.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"Rio de Janeiro/RJ\",\n    \"Paraty/RJ\"\n  ],\n  \"veiculo\": \"carro\",\n  \"data\": \"2026-09-19\",\n  \"combustivel\": {\n    \"precoLitro\": 6.19,\n    \"kmPorLitro\": 10\n  },\n  \"mostrar\": {\n    \"balancas\": true,\n    \"postos\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Frete ANTT junto com a rota",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "v3"
              ]
            },
            "description": "Piso mínimo de frete calculado sobre a distância da rota. Não consome usos adicionais.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Curitiba/PR\"\n  ],\n  \"frete\": {\n    \"eixos\": 5,\n    \"tipoCarga\": \"carga_geral\",\n    \"tabela\": \"A\",\n    \"retornoVazio\": false\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "3. Múltiplos trajetos",
      "description": "",
      "item": [
        {
          "name": "Alternativas por cidades",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/multiplosTrajetos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "multiplosTrajetos",
                "v3"
              ]
            },
            "description": "Devolve rotaMaisRapida, rotaMaisBarata e rotaAlternativa. `retorno` não está disponível aqui.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Rio de Janeiro/RJ\"\n  ],\n  \"veiculo\": {\n    \"tipo\": \"caminhao\",\n    \"eixos\": 3\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Alternativas por coordenadas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coordenadas/multiplosTrajetos/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coordenadas",
                "multiplosTrajetos",
                "v3"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    [\n      -23.5505,\n      -46.6333\n    ],\n    [\n      -22.9068,\n      -43.1729\n    ]\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "4. Rota calculada fora e imagem",
      "description": "",
      "item": [
        {
          "name": "Pedágios sobre polyline externa",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/polyline/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "polyline",
                "v3"
              ]
            },
            "description": "Envie a geometria do Google Maps, HERE, Mapbox ou do seu roteador (polyline codificada, GeoJSON LineString ou lista [[lat,lng],...]; `ordem: \"lnglat\"` se necessário). 1 uso por chamada. Substitua a polyline de exemplo por uma real.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"polyline\": \"hkzlCr}h{GfDzB~F`D...\",\n  \"veiculo\": {\n    \"tipo\": \"caminhao\",\n    \"eixos\": 5\n  },\n  \"data\": \"2026-09-19\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Imagem SVG da rota",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/imagem/v3",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "imagem",
                "v3"
              ]
            },
            "description": "Responde image/svg+xml com mapa esquemático, praças e totais. Consome usos como uma consulta de rota.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Curitiba/PR\"\n  ],\n  \"veiculo\": \"caminhao-5\",\n  \"largura\": 900,\n  \"altura\": 600,\n  \"titulo\": \"Cotação 1234\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "5. Tabela de frete (piso mínimo ANTT)",
      "description": "",
      "item": [
        {
          "name": "Catálogo de tipos de carga e tabelas",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/frete/catalogo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "frete",
                "catalogo"
              ]
            },
            "description": "Tipos de carga, tabelas A a D e vigências. Não consome usos."
          }
        },
        {
          "name": "Frete por distância (não consome usos)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/frete/v1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "frete",
                "v1"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"distanciaKm\": 410,\n  \"eixos\": 5,\n  \"tipoCarga\": \"carga_geral\",\n  \"tabela\": \"A\",\n  \"retornoVazio\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Frete pela rota (consome usos)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/frete/v1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "frete",
                "v1"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Curitiba/PR\"\n  ],\n  \"eixos\": 5,\n  \"tipoCarga\": \"carga_geral\",\n  \"tabela\": \"A\",\n  \"retornoVazio\": true,\n  \"data\": \"2026-09-19\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "6. Compatibilidade v1",
      "description": "",
      "item": [
        {
          "name": "Por cidades (v1)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pontos/v1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pontos",
                "v1"
              ]
            },
            "description": "Mesmo corpo da v3; resposta no formato antigo (dados.totalPedagiosRota, distanciaMetros). Para novas integrações use a v3.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    \"São Paulo/SP\",\n    \"Campinas/SP\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Por coordenadas (v1)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coordenadas/v1",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coordenadas",
                "v1"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"pontos\": [\n    [\n      -23.5505,\n      -46.6333\n    ],\n    [\n      -22.9056,\n      -47.0608\n    ]\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    }
  ]
}