⚡ DOCUMENTAZIONE UFFICIALE API V1

Huntly Developer API Reference

Integra prezzi dei carburanti in tempo reale, coordinate GPS certificate e metadati di oltre 80.000 stazioni con latenze minime via Vercel Global Edge.

1. Panoramica & Architettura

L'API B2B di Huntly fornisce accesso programmato a dati omogeneizzati e verificati su stazioni di rifornimento e prezzi alla pompa in 6 mercati europei (Italia, Francia, Germania, Spagna, Portogallo, Regno Unito) e Quebec (Canada). L'infrastruttura opera su nodi Vercel Global Edge con database geospaziale PostGIS ad alta efficienza.

Base URL Globale:
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. Autenticazione (X-Huntly-Key)

Tutte le richieste agli endpoint dei dati richiedono una chiave API attiva passata tramite l'header HTTP `X-Huntly-Key`. In alternativa, è supportato l'header standard `Authorization: Bearer <API_KEY>`.

Header HTTP obbligatorio:
X-Huntly-Key: hnt_sbx_9a8b7c6d5e4f3a2b1c0d

Le chiavi Sandbox (`hnt_sbx_...`) includono 500 chiamate/mese gratuite senza richiedere carta di credito. I piani Starter e Pro offrono quote scalabili con fatturazione automatica.

3. Primi Passi (Quickstart)

Esegui la tua prima chiamata API in meno di un minuto usando il tuo linguaggio o strumento preferito:

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

Ricerca geospaziale istantanea per raggio attorno a una coordinata GPS (PostGIS ST_DWithin).

ParametroTipoObbligatorioDefaultDescrizione
latfloatSì—Latitudine in gradi decimali (-90.0 a 90.0)
lngfloatSì—Longitudine in gradi decimali (-180.0 a 180.0)
radius_kmfloatNo10Raggio di ricerca in chilometri (min 0.5, max 50)
fuel_typestringNoallFiltro tipo carburante: `diesel`, `benzina`, `gpl`, `metano`. Se vuoto, restituisce tutti i tipi.
limitintegerNo20Numero massimo di stazioni restituite (min 1, max 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

Ricerca stazioni per area geografica (Comune o Codice Paese ISO a 2 lettere).

ParametroTipoObbligatorioDefaultDescrizione
countrystringOpzionale*—Codice paese a 2 lettere: `IT`, `FR`, `DE`, `ES`, `PT`, `UK`, `CA`.
citystringOpzionale*—Nome della città (es. Roma, Madrid, Paris, Berlin, Milano). Ricerca case-insensitive.
fuel_typestringNoallFiltro tipo carburante: `diesel`, `benzina`, `gpl`, `metano`. Se vuoto, restituisce tutti i tipi.
limitintegerNo50Numero di risultati (min 1, max 200)
⚠️ Nota Filtro: È obbligatorio fornire almeno un parametro tra `country` o `city` per evitare scansioni massive dell'intera banca dati.
GET/api/v1/health

Endpoint pubblico (nessuna chiave richiesta) per il monitoraggio della salute del cluster e la scoperta delle feature attive.

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. Rate Limiting & Header HTTP

Ogni risposta HTTP restituisce header diagnostici per monitorare i consumi in tempo reale:

Header HTTPTipoDescrizione
X-RateLimit-LimitintegerLimite mensile massimo previsto dal piano contrattuale attivo.
X-RateLimit-RemainingintegerChiamate rimanenti per il mese solare in corso.
X-RateLimit-ResetISO-8601 stringTimestamp ISO di azzeramento della quota (primo giorno del mese successivo).
Cache-ControlstringValori di caching Edge (`s-maxage=600`, `stale-while-revalidate`) per azzerare le latenze tra chiamate identiche.

8. Codici di Stato HTTP & Errori

CodiceSignificatoScenario d'uso
200OKRichiesta completata con successo.
400Bad RequestParametri mancanti o non validi (es. coordinate fuori scala o raggio > 50km).
401UnauthorizedAPI Key mancante, non valida o revocata.
429Too Many RequestsQuota mensile esaurita (contatta il supporto o aggiorna il piano nella console).
500Internal ErrorErrore interno del server. Notifica automatica inviata al team di ingegneria.

Hai bisogno di supporto tecnico?

Il nostro team di ingegneri risponde per integrazioni enterprise, feed personalizzati o contratti SLA.

📧 Scrivi a infos@gethuntly.eu