Partner API

Наличие топлива на АЗС —
в вашем продукте

Водители по всей России отмечают на карте Fbenz, где есть бензин. Подключите эти данные одним GET-запросом — или встройте готовую карту без нашего логотипа.

26 000+АЗС в базе
≤ 5 минутот отметки водителя до API
2 форматаJSON-API или white-label карта

Два способа подключить

Выбор зависит от одного вопроса: есть ли у вас своя карта.

Вариант А — у вас своя карта

Чистое JSON-API

Забирайте координаты АЗС и статусы топлива, рисуйте на своей карте в своём стиле. Подходит банкам с готовым приложением.

  • Секретный ключ fb_live_…, запросы сервер-сервер
  • Снапшот по городу или bbox + дешёвый поллинг изменений
  • ETag / 304 — повторные запросы почти бесплатны
Вариант Б — карты нет

White-label виджет

Готовая карта Fbenz без нашего брендинга: кластеры, фильтры топлива, карточки АЗС. Встраивается одним iframe за вечер.

  • Публикуемый ключ pk_live_…, привязан к вашим доменам
  • Светлая и тёмная тема, старт с нужного города
  • Обновляется сам — ничего поддерживать не нужно

Первый запрос за 10 минут

Всё, что нужно, — API-ключ и curl. Аутентификация уже внутри примера.

1

Получите ключ

Ключ выдаёт команда Fbenz при подключении — напишите вашему менеджеру. Ключ показывается один раз: скопируйте его сразу и храните как пароль.

2

Запросите АЗС города

Подставьте свой ключ в заголовок Authorization.

curl -H "Authorization: Bearer fb_live_ВАШ_КЛЮЧ" \
  "https://kartabenzina.ru/api/v1/partner/stations?city=Москва"
3

Получите станции со статусами

Каждая станция — координаты, бренд и блок fuel с текущим статусом.

{
  "stations": [{
    "id": "n1234567890",
    "lat": 55.7558, "lon": 37.6173,
    "brand": "Лукойл",
    "addr": "Ленинградский пр-т, 63",
    "fuel": {
      "status": "yes",          // yes | queue | no | nodata
      "fuels_now": "92,95,dt",  // что есть
      "fuels_no": "100",        // чего нет
      "confirmations": 3,       // подтверждений от водителей
      "updated": "2026-07-16 09:41:07"
    }
  }],
  "count": 412,
  "as_of": "2026-07-16 09:45:00",
  "stale_after_hours": 24
}
4

Дальше — поллинг изменений

Передавайте as_of из прошлого ответа в /stations/delta?updated_since= раз в 1–5 минут и раз в час обновляйте полный снапшот. Подробности — в разделе «Свежесть и лимиты».

Справочник методов

Все методы — под /api/v1/partner, аутентификация — заголовком Authorization: Bearer <ключ>. Машиночитаемая спецификация — openapi.json.

ЗадачаМетодЧто вернёт
Получить АЗС города или области карты GET/stations?city= или ?bbox= До 4000 станций со статусами. Радиус города — параметром radius_km (до 60).
Следить за изменениями GET/stations/delta?updated_since= Только станции, чей статус менялся с указанного момента. Курсор — поле as_of.
Открыть карточку одной АЗС GET/stations/{id} Станция и её текущий статус.
Список городов для меню GET/cities?q= Города с координатами и зумом, по населению или по поиску.
Посмотреть свой расход GET/usage Запросы за сегодня, лимиты, разбивка по дням и методам.
Запросить другие лимиты POST/limit-requests Заявка уходит команде Fbenz; статус — в кабинете партнёра или GET-ом того же пути.
💡Статусы в API — те же, что видят водители на карте Fbenz, из той же базы и с теми же правилами свежести. Расхождений «сайт показывает одно, API другое» нет по построению.

Свежесть данных и лимиты

Данные краудсорсные: водитель отметил — через несколько минут видно в API. Чтобы не жечь квоту, поллите дельту, а не снапшоты.

Как устроена свежесть

Рекомендуемый цикл интеграции

ЧтоКак частоЗачем
/stations/deltaраз в 1–5 минут Свежие изменения. Курсор — as_of из прошлого ответа.
/stations (полный, с If-None-Match)раз в час Ловит протухания и пересчёты. Без изменений — 304, почти бесплатно.

Лимиты

У каждого партнёра — свой лимит в минуту и суточная квота. Текущее состояние — в заголовках каждого ответа:

X-RateLimit-Limit: 120           // ваш лимит в минуту
X-RateLimit-Remaining: 118       // осталось в этой минуте
X-RateLimit-Reset: 1784192460    // unix-время сброса минуты
X-RateLimit-Daily-Limit: 50000   // суточная квота
X-RateLimit-Daily-Remaining: 49212

При превышении придёт 429 с заголовком Retry-After — подождите указанное число секунд и повторите. Квота сбрасывается в 00:00 UTC.

Нужны лимиты выше — отправьте заявку из кабинета партнёра: укажите новые значения, мы отвечаем в течение рабочего дня, одобренные лимиты применяются автоматически.

White-label виджет

Карта Fbenz без брендинга Fbenz: кластеры, фирменные маркеры брендов АЗС, фильтр топлива, карточки станций. Одна строка HTML.

<iframe
  src="https://kartabenzina.ru/widget/?key=pk_live_ВАШ_КЛЮЧ&city=Москва"
  width="100%" height="480" style="border:0"
  title="Наличие топлива на АЗС"></iframe>
ПараметрЗначенияЧто делает
keypk_live_… Ваш публикуемый ключ. Обязательный.
cityназвание города С какого города открыть карту.
themelight · dark · auto Тема. auto следует за системной.
fuel92, 95, dt Сразу включить фильтр по топливу.
nofilter1 Спрятать панель фильтров.
🔒Публикуемый ключ привязан к вашим доменам: на чужом сайте он не заработает. Секретный ключ fb_live_… во фронтенд не вставляйте никогда — он для запросов с сервера.

Ошибки

Все ошибки — в формате RFC 9457 (application/problem+json): машиночитаемый тип, человекочитаемое объяснение.

{
  "type": "https://fbenz.ru/problems/rate-limit-exceeded",
  "title": "Rate limit exceeded",
  "status": 429,
  "detail": "Minute quota of 120 requests exhausted; retry after 37s.",
  "limit": 120, "window": "60s"
}
КодТипЧто делать
401invalid-key Ключ не подошёл или отозван. Проверьте, что копируете целиком; потеряли — запросите новый.
403domain-not-allowed · ip-not-allowed · secret-key-required Ключ используется не оттуда: виджет-ключ — только с ваших доменов, секретный — только с ваших IP (если включена привязка).
422bad-bbox · bad-timestamp · missing-area Параметры не прочитались — формат указан в detail.
429rate-limit-exceeded · daily-quota-exceeded Упёрлись в лимит. Подождите Retry-After секунд; растёте — запросите новые лимиты в кабинете.
503upstream-unavailable Кратковременный сбой на нашей стороне. Повторите через несколько секунд — данные не потеряются.

Ключи и безопасность

Два вида ключей

  • fb_live_… секретный — все методы API, только сервер-сервер. Храните в секретах, как пароль от базы.
  • pk_live_… публикуемый — только виджет, работает лишь на ваших доменах. Можно спокойно вставлять в HTML.

Ротация без простоя

  • Запросите второй секретный ключ — старый продолжит работать.
  • Переключите интеграцию на новый ключ.
  • Попросите отозвать старый. Отзыв срабатывает в пределах минуты.

Свой расход, лимиты и заявки смотрите в кабинете партнёра — вход по секретному ключу, без регистрации.