API ближайших заправок Online
Ближайшие автозаправочные станции к точке или городу с актуальными ценами по каждому виду топлива, отсортированные по расстоянию. Покрытие на уровне станций охватывает 39 европейских стран и является ИЗМЕРЯЕМЫМ, а не фиксированным: каждый пустой ответ возвращает актуальный список стран с количеством станций по каждой стране в объекте coverage, ограниченный маркой (grade), которую вы запросили, — ориентируйтесь именно на это значение, а не на список в этом описании — те же данные, что и на топливных страницах nakordoni.eu; для национальных средних в остальных случаях используйте режим country fuel API. Цены возвращаются в собственной валюте каждой станции (PLN для польских станций, EUR — для остальных) — читайте поле currency для конкретной станции, никогда не сравнивайте сами числа. Если ни одна станция не подходит, ответ содержит объект coverage вместо молчаливого пустого списка: station_countries и station_counts, измеренные по актуальному индексу (ограниченные `grade`, если был указан fuel_type), sparse_coverage для стран, где есть 25 или менее станций с ценами, measured_at и fuel_type_note, которая различает две причины пустого ответа — название марки, которое не удалось распознать, и марку, которую мы распознаём, но не оцениваем в данной стране.
GET https://nakordoni.eu/api/v2/data/fuel-stations
— класс квоты: cheap
| Параметр | Описание |
|---|---|
lat | Широта |
lon | Долгота |
city | Название города — альтернатива lat/lon, преобразуется в координаты |
country | Код страны ISO-2, уточняет город |
radius_km | Радиус поиска в км (по умолчанию 25, максимум 25; алиас: radius) |
fuel_type | Необязательный фильтр: diesel | e5 | e10 | superplus | super100 | premdiesel | truckdiesel | hvo | lpg | cng | adblue | e85 | lng (доступность зависит от АЗС/региона; польские АЗС сообщают Pb95 как e5, Pb98 как superplus и ON как diesel). Локальные названия топлива на колонках также принимаются — ON, Olej napędowy, Pb95, Nafta, Dizel, Gázolaj, Motorină, Benzină 95, ДП, А-95, Motorin, Gasóleo, Sans plomb 95, Bleifrei … — они распознаются относительно `country` (или, для продуктов по координатам, страны, в которую попадает точка), потому что одно и то же название не везде означает один и тот же сорт: «95» — это E10 на датской, финской, французской, британской, бельгийской или нидерландской колонке и E5 на польской или немецкой. В ответе возвращаются `fuel_type` (канонический), `fuel_type_requested` (в том виде, как вы его ввели) и `fuel_type_local`. Название, которое мы не смогли сопоставить, никогда не подменяется сортом по умолчанию — ответ возвращается пустым и сообщает об этом. Полная таблица названий по странам: /api/v2/data/fuel-grades. |
limit | Максимум АЗС (по умолчанию 5, максимум 20) |
lang | Язык подписей (по умолчанию en) |
Поля ответа — внутри объекта data в конверте ответа. [] обозначает список, поэтому data.items[].name — это поле name каждого элемента. Поле бывает null, отсутствует или пустой список, если значения у нас нет, — заглушки мы не подставляем.
| Поле | Описание |
|---|---|
data.anchor.lat | The point actually searched (after city geocoding), with lng, ppid and radius_km. |
data.anchor.fuel_type | The canonical grade the list was filtered to; fuel_type_requested is what you sent, fuel_type_local the local pump name and fuel_type_country the country the name was read in. |
data.stations[].name | Station, with brand and address. Each physical station appears ONCE: its grades are nested under prices, not spread over repeated rows. `brand` is the chain when we know it and null when we do not — never a placeholder token, so treat null as "independent or unknown" and fall back to `name`. Address detail varies by national feed: some report a full street address, others only the town. |
data.stations[].station_ref | Stable key for the station (name + position). Key your records on it whenever id is null — id is set only for rows that come from our station directory. |
data.stations[].prices | Object keyed by grade (diesel, e5, e10, lpg …): price, currency and currency_symbol, local_name (the pump name used in that country), label, updated_at, confirmed_at, age_hours and stale. Each station carries its own currency, so never compare the raw numbers. A station with no quote at all carries an empty object here. TWO CLOCKS, and they answer different questions — do not derive one from the other: `updated_at` is when this price last MOVED, so a forecourt that has held the same price for ten days keeps a ten-day-old stamp and that is correct, not stale data; `confirmed_at` is when we last CONFIRMED the quote against its feed, and it is the clock `age_hours` and `stale` are measured on (age_hours = now − confirmed_at). Read `confirmed_at`/`stale` for freshness and `updated_at` for price history. Both are floored to the hour, so `now − confirmed_at` can sit up to an hour above `age_hours`, which is measured before the floor; `confirmed_at` is never earlier than `updated_at`, because a price change is itself a confirmation. |
data.stations[].grades | The grade keys present in prices, alongside freshest_age_hours and a station-level stale flag (true only when NO quote of that station is current). |
data.stations[].distance_km | Distance from the anchor, with lat and lng of the station itself. |
data.count | Stations returned; data.total_found is how many matched inside the radius before limit was applied. |
data.notices | Present whenever we adjusted a parameter you sent: each entry names the param, the requested and the applied value, and the reason. |
data.coverage | Only when nothing matched. grade (the fuel_type your wording resolved to, or null), station_countries and station_counts measured from the live station index and scoped to that grade, sparse_coverage for countries with 25 priced stations or fewer, measured_at, a note explaining all of it, and fuel_type_note when the grade name could not be placed OR when we recognise the grade but price it nowhere in this country. |
curl "https://nakordoni.eu/api/v2/data/fuel-stations?city=Munich&country=DE&radius_km=20&fuel_type=diesel" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Обновлено