Huntly Developer API Reference
Integrate verified real-time fuel prices, GPS coordinates, and brand metadata from 80,000+ stations with sub-20ms edge latency via Vercel Global Edge.
1. Overview & Architecture
The Huntly B2B API provides standardized, real-time access to fuel station telemetry and pump prices across 6 certified European markets (France, Germany, Italy, Spain, Portugal, United Kingdom) and Quebec (Canada). Powered by Vercel Global Edge nodes and an optimized PostGIS spatial database.
2. Authentication (X-Huntly-Key)
All protected API endpoints require an active API key passed in the `X-Huntly-Key` HTTP header. Alternatively, the standard `Authorization: Bearer <API_KEY>` header is supported.
X-Huntly-Key: hnt_sbx_9a8b7c6d5e4f3a2b1c0d
Sandbox keys (`hnt_sbx_...`) include 500 free requests per month without requiring a credit card. Starter and Professional plans offer scalable quotas with automatic monthly billing.
3. Quickstart
Make your first API call in under 60 seconds with your favorite tool or runtime:
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"
Real-time spatial search within a specified radius around GPS coordinates (PostGIS ST_DWithin).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| lat | float | Sì | — | Latitude in decimal degrees (-90.0 to 90.0) |
| lng | float | Sì | — | Longitude in decimal degrees (-180.0 to 180.0) |
| radius_km | float | No | 10 | Search radius in kilometers (min 0.5, max 50) |
| fuel_type | string | No | all | Fuel type filter: `diesel`, `benzina`, `gpl`, `metano`. If omitted, all types are returned. |
| limit | integer | No | 20 | Maximum number of stations returned (min 1, max 100) |
{
"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"
}
}
]
}Filter fuel stations by administrative region (City or 2-letter ISO Country Code).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| country | string | Opzionale* | — | 2-letter ISO country code: `IT`, `FR`, `DE`, `ES`, `PT`, `UK`, `CA`. |
| city | string | Opzionale* | — | City name (e.g. Roma, Madrid, Paris, Berlin, Milano). Case-insensitive search. |
| fuel_type | string | No | all | Fuel type filter: `diesel`, `benzina`, `gpl`, `metano`. If omitted, all types are returned. |
| limit | integer | No | 50 | Numero di risultati (min 1, max 200) |
Public endpoint (no key required) for edge health monitoring and capability discovery.
{
"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 & HTTP Headers
Every HTTP response includes diagnostic headers to track quota usage in real time:
| Header HTTP | Tipo | Descrizione |
|---|---|---|
| X-RateLimit-Limit | integer | Maximum monthly calls allowed by your active subscription plan. |
| X-RateLimit-Remaining | integer | Remaining calls for the current billing cycle. |
| X-RateLimit-Reset | ISO-8601 string | ISO timestamp when the monthly quota will reset. |
| Cache-Control | string | Valori di caching Edge (`s-maxage=600`, `stale-while-revalidate`) per azzerare le latenze tra chiamate identiche. |
8. HTTP Status Codes & Handling
| Code | Meaning | Typical Scenario |
|---|---|---|
| 200 | OK | Request succeeded successfully. |
| 400 | Bad Request | Missing or invalid query parameters (e.g. invalid latitude or radius > 50km). |
| 401 | Unauthorized | Missing, invalid, or revoked API key. |
| 429 | Too Many Requests | Monthly quota exceeded (upgrade plan or contact sales). |
| 500 | Internal Error | Internal server error. Automatically alerted to our engineering team. |
Need technical assistance?
Our engineering team provides dedicated support for enterprise integrations, custom data pipelines, and SLA agreements.
📧 Email infos@gethuntly.eu