⚡ REFERÊNCIA OFICIAL DA API V1 PARA PROGRAMADORES

Referência da API Huntly para Programadores

Integre preços de combustíveis em tempo real, coordenadas GPS certificadas e metadados de mais de 80.000 postos com latência mínima via Vercel Global Edge.

1. Visão Geral e Arquitetura

A API B2B da Huntly fornece acesso estruturado e contínuo a dados de postos de combustível em 6 mercados certificados da UE (Portugal, Espanha, França, Alemanha, Itália, Reino Unido) e Quebec (Canadá).

URL Base Global:
https://www.gethuntly.eu/api/v1
✨ Copertura Ufficiale: Italia, Francia, Germania, Spagna, Portogallo, Regno Unito e Quebec (Canada) con granularità per singola stazione e coordinate GPS geoverificate. I dati di Svizzera e Belgio sono forniti come medie nazionali collaborative.

2. Autenticação (X-Huntly-Key)

Todos os pedidos protegidos exigem uma chave API ativa no cabeçalho `X-Huntly-Key` ou `Authorization: Bearer <API_KEY>`.

Cabeçalho HTTP Obrigatório:
X-Huntly-Key: hnt_sbx_9a8b7c6d5e4f3a2b1c0d

As chaves Sandbox (`hnt_sbx_...`) incluem 500 pedidos gratuitos por mês sem necessidade de cartão de crédito.

3. Início Rápido (Quickstart)

Faça o seu primeiro pedido à API em menos de 60 segundos:

curl -X GET "https://www.gethuntly.eu/api/v1/fuel/nearby?lat=41.9028&lng=12.4964&radius_km=5&fuel_type=diesel" \
  -H "X-Huntly-Key: YOUR_API_KEY"
GET/api/v1/fuel/nearby

Pesquisa geoespacial instantânea por raio em torno de coordenadas GPS (PostGIS ST_DWithin).

ParâmetroTipoObrigatórioPredefiniçãoDescrição
latfloatSì—Latitude em graus decimais (-90.0 a 90.0)
lngfloatSì—Longitude em graus decimais (-180.0 a 180.0)
radius_kmfloatNo10Raio de pesquisa em quilómetros (mín 0.5, máx 50)
fuel_typestringNoallFiltro de combustível: `diesel`, `benzina`, `gpl`, `metano`.
limitintegerNo20Número máximo de postos retornados (mín 1, máx 100)
Esempio Risposta JSON (200 OK):
200 OK — application/json
{
  "status": "success",
  "meta": {
    "query": {
      "latitude": 41.9028,
      "longitude": 12.4964,
      "radius_km": 5,
      "fuel_type": "diesel",
      "limit": 20
    },
    "results_count": 1,
    "tier": "sandbox",
    "quota_remaining": 492,
    "timestamp": "2026-10-10T12:00:00.000Z"
  },
  "data": [
    {
      "id": "shop_01j7h8k...",
      "name": "Eni Station Roma Termini",
      "brand": "Eni",
      "address": "Via Giovanni Giolitti 40",
      "city": "Roma",
      "country": "IT",
      "coordinates": {
        "latitude": 41.8982,
        "longitude": 12.5034
      },
      "distance_km": 0.78,
      "fuel": {
        "type": "diesel",
        "price": 1.639,
        "service_type": "self",
        "last_updated": "2026-10-10T06:15:00.000Z"
      }
    }
  ]
}
GET/api/v1/fuel/stations

Filtragem por área administrativa (Cidade ou Código de País ISO-2).

ParâmetroTipoObrigatórioPredefiniçãoDescrição
countrystringOpzionale*—Código ISO de 2 letras: `IT`, `FR`, `DE`, `ES`, `PT`, `UK`, `CA`.
citystringOpzionale*—Nome da cidade (ex. Lisboa, Porto, Madrid, Paris).
fuel_typestringNoallFiltro de combustível: `diesel`, `benzina`, `gpl`, `metano`.
limitintegerNo50Numero di risultati (min 1, max 200)
⚠️ Nota Filtro: É obrigatório fornecer pelo menos `country` ou `city`.
GET/api/v1/health

Endpoint público para verificar o estado operacional do cluster Edge.

200 OK — Pubblico (Nessuna chiave richiesta)
{
  "status": "ok",
  "service": "Huntly European Fuel & Retail B2B API",
  "version": "v1.0.0",
  "timestamp": "2026-10-10T12:00:00.000Z",
  "coverage": {
    "countries": ["IT", "FR", "ES", "DE", "PT", "NL", "BE", "CA-QC"],
    "stations_monitored": "80,000+"
  }
}

7. Limites de Pedidos & Cabeçalhos HTTP

Cada resposta HTTP devolve cabeçalhos de diagnóstico para monitorização:

Header HTTPTipoDescrizione
X-RateLimit-LimitintegerLimite mensal permitido pelo plano subscrito.
X-RateLimit-RemainingintegerChamadas restantes para o ciclo mensal atual.
X-RateLimit-ResetISO-8601 stringCarimbo de data/hora ISO de reinício da quota mensal.
Cache-ControlstringValori di caching Edge (`s-maxage=600`, `stale-while-revalidate`) per azzerare le latenze tra chiamate identiche.

8. Códigos de Erro HTTP

CódigoSignificadoCenário Típico
200OKPedido concluído com sucesso.
400Bad RequestParâmetros em falta ou inválidos (ex. raio > 50km).
401UnauthorizedChave API inválida ou revogada.
429Too Many RequestsQuota mensal excedida.
500Internal ErrorErro interno do servidor.

Necessita de apoio técnico?

A nossa equipa de engenharia presta apoio para integrações empresariais e contratos de nível de serviço (SLA).

📧 Contactar infos@gethuntly.eu