AZS Neftmagistral data API: stations, bonuses and pumps
АЗС Нефтьмагистраль (AZS Neftmagistral) is the official driver app of the Нефтьмагистраль filling-station chain, published on Google Play by TD NM, OOO. Motorists across Russia use it to pin nearby АЗС on a map, compare live fuel grades, pay at the pump without leaving the car, start an EV charge, order from the station shop, and collect loyalty bonuses, coupons and pump-staff gifts. Sign-in is a phone number plus an SMS code or Mobile ID. It competes with the branded apps of larger Russian oil companies such as Lukoil, Gazprom Neft and Rosneft, and with multi-brand pay-at-pump wallets, as the first-party app for this chain's own stations.
Each mapped station carries live fuels with a per-grade price, plus latitude, longitude, address, a closed flag and EV connectors. The loyalty wallet reports bonuses, bonusLevel, currentAmount, overdraftLimit and an electro balance for charging. Fuel-spend rows expose litres, amount, gasStationAddress and receiptUrl; a pump session lists columns with a per-grade limit; an in-flight order tracks status, payment, bonusesPayment and paymentUrl; the shop basket totals payment, minPayment and cashback.
Fleet spend tools reconcile litres against station prices, loyalty ops watch bonus tiers and coupon expiredDate, and pump-floor monitors poll the active fueling and charging orders. openData Studio turns that surface into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Register phone session
POST
/v1/azs/auth/phone-sessionopenfinanceOpens a login session for a phone number (SMS) or Mobile ID (hheUri). sessionId is polled by SessionStatus and consumed by ConfirmCode.
Auth: Unauthenticated. Starts the phone / Mobile ID login; the confirm step consumes the SMS or Mobile ID result.
- phone
- campaign
- promocode
- captchaToken
- theme
- mobileId
- sessionId
- authType
- hheUri
POST /v1/azs/auth/phone-session HTTP/1.1 Content-Type: application/json { "phone": "79001234567", "campaign": null, "promocode": null, "captchaToken": "captcha-token-example", "theme": "LIGHT", "mobileId": 0 }{ "sessionId": 1842201, "authType": 1, "hheUri": null }Confirm SMS or Mobile ID code
POST
/v1/azs/auth/sms-confirmopenfinanceConsumes the SMS / Mobile ID code and returns the UserModel envelope (id, preferred fuelTypeId, session token, account status).
Auth: Unauthenticated. Body is ConfirmModel (code, phone, mobileId) from the phone-session step.
- code
- phone
- mobileId
- id
- fuelTypeId
- token
- testStatus
- status
- statusInfo
POST /v1/azs/auth/sms-confirm HTTP/1.1 Content-Type: application/json { "code": "482913", "phone": "79001234567", "mobileId": 0 }{ "id": 551002, "fuelTypeId": 3, "token": "nm-session-token-example", "testStatus": 0, "status": 1, "statusInfo": null }Create auth token
POST
/v1/azs/auth/tokenopenfinanceIssues AuthTokenModel.token (plus any campaign/promocode attached at login) that later IronWater requests send as the session credential.
Auth: Unauthenticated bootstrap after SMS confirm. The returned token is the session credential for later station, order, shop and loyalty calls.
- token
- campaign
- promocode
POST /v1/azs/auth/token HTTP/1.1 Content-Type: application/json {}{ "token": "nm-session-token-example", "campaign": null, "promocode": null }List nearby gas stations
POST
/v1/azs/stations/nearbyopendataReturns the map pin list filtered by location (and optional promo/product/shop filters): station id, coordinates, live fuel prices, EV connectors and opening hours.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- id
- name
- number
- latitude
- longitude
- address
- type
- pinType
- distance
- closed
- yandexId
- favorite
- fuels
- price
- connectors
- workTimes
- presenceInTheRadius
- location
POST /v1/azs/stations/nearby HTTP/1.1 Content-Type: application/json { "promoId": null, "productId": null, "presentId": null, "goodOrderId": null, "serviceId": null, "query": null, "location": [55.7558, 37.6173] }[ { "id": 412, "name": "АЗС Нефтьмагистраль 12", "number": "12", "latitude": 55.7891, "longitude": 37.5402, "address": "Москва, Ленинградское шоссе, 25", "type": 0, "pinType": 1, "distance": 840, "closed": false, "message": "", "yandexId": "ym-gs-412", "favorite": true, "fuels": [ {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true, "price": 62.49} ], "connectors": [], "workTimes": [ {"title": "Круглосуточно", "days": 127, "start": "00:00", "end": "23:59", "date": null} ], "presenceInTheRadius": true } ]Read gas-station details
POST
/v1/azs/stations/cardopendataLoads one station card (GasStationDetails): description, phone, action buttons, photos, plus the inherited map fields and live fuels.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- id
- extendedId
- location
- name
- address
- description
- phone
- fuels
- price
- services
- connectors
- hashedImages
- closed
POST /v1/azs/stations/card HTTP/1.1 Content-Type: application/json { "id": 412, "extendedId": null, "location": [55.7558, 37.6173] }{ "id": 412, "name": "АЗС Нефтьмагистраль 12", "number": "12", "latitude": 55.7891, "longitude": 37.5402, "address": "Москва, Ленинградское шоссе, 25", "closed": false, "description": "Магазин, мойка, зарядка", "phone": "+74951234567", "fuels": [ {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true, "price": 62.49} ], "services": [{"id": 8, "name": "Мойка"}], "connectors": ["CCS2"], "hashedImages": [] }Load pay-at-pump session
POST
/v1/azs/pumps/sessionopenbankingReturns the pump-floor snapshot for a station: columns with per-grade litre limits, live fuels, quick-pay amounts and any spend-cap warning.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- id
- name
- address
- columns
- number
- disabled
- fuelTypes
- limit
- fuels
- price
- offers
- quickValues
- limitSpent
- limitSpentText
POST /v1/azs/pumps/session HTTP/1.1 Content-Type: application/json { "id": 412 }{ "id": 412, "name": "АЗС Нефтьмагистраль 12", "address": "Москва, Ленинградское шоссе, 25", "columns": [ {"id": 1, "number": "3", "disabled": false, "fuelTypes": [{"id": 3, "limit": 80}]} ], "fuels": [ {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true, "price": 62.49} ], "offers": [], "quickValues": [{"value": 1000}, {"value": 2000}, {"value": 3000}], "limitSpent": false, "limitSpentText": null }Read loyalty bonuses
POST
/v1/azs/loyalty/walletopenbankingReads the loyalty wallet shown on the home/profile screens: bonus points, tier, running spend, overdraft, EV electro balance, fortune-wheel credits and gift catalogs.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- bonuses
- bonusLevel
- currentAmount
- overdraftLimit
- overdraftEnabled
- fortuneCount
- fortuneExpiredDate
- electro
- chipPromoId
- levels
- products
- presents
- gurmanika
- fuelingEmployees
POST /v1/azs/loyalty/wallet HTTP/1.1 Content-Type: application/json {}{ "bonuses": 12480, "bonusLevel": 2, "currentAmount": 1860.5, "overdraftLimit": 500, "overdraftEnabled": true, "fortuneCount": 1, "fortuneExpiredDate": 1769904000, "electro": 12.4, "chipPromoId": 0, "levels": [], "products": [], "presents": [], "gurmanika": null, "fuelingEmployees": null }Page fuel and bonus transactions
POST
/v1/azs/loyalty/ledgeropenbankingPages the member ledger (fuel fills and bonus-only rows) with station, litres, amount and a fiscal receipt URL.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- from
- to
- type
- categories
- pageNumber
- pageSize
- onlyBonuses
- id
- gasStation
- gasStationAddress
- date
- category
- text
- title
- amount
- litres
- receiptUrl
- value
POST /v1/azs/loyalty/ledger HTTP/1.1 Content-Type: application/json { "from": 1756684800, "to": 1769904000, "type": null, "categories": [], "pageNumber": 1, "pageSize": 20, "onlyBonuses": false }[ { "id": 908812334, "gasStation": "АЗС Нефтьмагистраль 12", "gasStationAddress": "Москва, Ленинградское шоссе, 25", "date": 1767225600, "type": 1, "category": 2, "text": "АИ-95", "title": "Заправка", "amount": 2499.6, "litres": 40.0, "receiptUrl": "/receipts/908812334", "value": "40.00 л" } ]Read member profile
POST
/v1/azs/members/profileosintReturns the signed-in driver card: phone, name, email confirmation, preferred fuel grade and bonus/promo notification flags.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- phone
- name
- emailConfirmed
- photo
- birthdate
- gender
- fuelType
- promocode
- mailing
- notifyBonuses
- notifyPromo
- status
- mailReceipt
POST /v1/azs/members/profile HTTP/1.1 Content-Type: application/json {}{ "phone": "79001234567", "name": "Иван Петров", "email": "[email protected]", "emailConfirmed": true, "photo": null, "birthdate": 494640000, "gender": 1, "fuelType": {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true}, "promocode": null, "mailing": true, "notifyBonuses": true, "notifyPromo": false, "status": 1, "mailReceipt": true }List payment methods
POST
/v1/azs/payments/methodsopenbankingLists saved cards and other tenders for a payment scope, including acquiring bank, terminal id and masked PAN.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- scope
- acquiringBank
- terminal
- methods
- type
- name
- hintText
- cardId
- cardPan
- cardType
- paymentToken
- addCardButton
POST /v1/azs/payments/methods HTTP/1.1 Content-Type: application/json { "scope": 0 }{ "acquiringBank": 1, "terminal": "nm-term-12", "methods": [ { "type": 1, "name": "Visa ••4242", "hintText": "", "cardId": "card-881", "cardPan": "4242", "cardType": 1, "icon": null, "cardTypeIcon": null, "paymentToken": null } ], "addCardButton": {"visible": true} }Create fueling or charging order
POST
/v1/azs/orders/startopenfinanceStarts a pay-at-pump or EV-charging order (POST flag g=1). Response is the OrderStatusModel used to drive the payment sheet and pump authorization.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- orderTypes
- objectType
- objectId
- boxId
- serviceId
- connectorId
- sumToPay
- liters
- phone
- paymentId
- id
- status
- paymentType
- amount
- current
- payment
- bonusesPayment
- paymentUrl
- fuelPrice
- errorCode
POST /v1/azs/orders/start HTTP/1.1 Content-Type: application/json { "orderTypes": 1, "objectType": 1, "objectId": 412, "boxId": 1, "serviceId": null, "connectorId": null, "sumToPay": 2499.6, "liters": 40.0, "phone": "79001234567", "email": "[email protected]" }{ "paymentId": "pay-7781", "id": 99021, "status": 1, "paymentType": 1, "amount": 2499.6, "current": 0.0, "payment": 2499.6, "bonusesPayment": 0.0, "paymentUrl": "/pay/session/7781", "fuelPrice": 62.49, "message": null, "errorCode": null }Poll order status
POST
/v1/azs/orders/liveopenfinancePolls a live fueling/charging order: litres dispensed (current), money captured (payment), bonus spend and error codes M101/M102/M103.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- id
- paymentId
- status
- paymentType
- amount
- current
- payment
- bonusesPayment
- paymentUrl
- fuelPrice
- message
- errorCode
POST /v1/azs/orders/live HTTP/1.1 Content-Type: application/json { "id": 99021 }{ "paymentId": "pay-7781", "id": 99021, "status": 3, "paymentType": 1, "amount": 2499.6, "current": 18.4, "payment": 1149.8, "bonusesPayment": 0.0, "paymentUrl": null, "fuelPrice": 62.49, "message": null, "errorCode": null }Read active fueling and charging orders
POST
/v1/azs/orders/activeopenfinanceReturns the in-flight pump session and/or EV charging session the home screen banners while a column or connector is busy.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- fueling
- charging
- id
- title
- paymentType
- objectId
- createdDate
- stationName
- connectorType
POST /v1/azs/orders/active HTTP/1.1 Content-Type: application/json {}{ "fueling": { "id": 99021, "title": "Колонка 3 · АИ-95", "paymentType": 1, "objectId": 412 }, "charging": { "id": null, "createdDate": null, "stationName": null, "connectorType": null } }Get station-shop basket
POST
/v1/azs/shop/basketopenfinanceReturns the station-shop basket, optionally with a coupon applied: payable total, min-ticket, cashback and per-line price/discount/bonuses.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- couponId
- payment
- minPayment
- cashback
- items
- goodId
- title
- price
- totalPrice
- discount
- count
- amount
- bonuses
- couponApplyingResult
POST /v1/azs/shop/basket HTTP/1.1 Content-Type: application/json { "couponId": 2201 }{ "payment": 489.0, "minPayment": 100.0, "cashback": 24, "items": [ { "id": 11, "type": 1, "goodId": "g-441", "title": "Кофе 0.3", "price": 189.0, "totalPrice": 189.0, "discount": 0.0, "count": 1.0, "amount": 189.0, "cashback": 9, "bonuses": 0.0 } ], "actions": [], "couponApplyingResult": null }List loyalty coupons
POST
/v1/azs/loyalty/couponsopenfinanceLists coupons for a CouponsFilter.scope (fuel vs shop): copy, face value, expiry and days-before-expiry used by the wallet and basket screens.
Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.
- scope
- id
- scopes
- expiredDate
- text
- shortDescription
- description
- value
- daysBeforeExpiring
- showProgress
POST /v1/azs/loyalty/coupons HTTP/1.1 Content-Type: application/json { "scope": 1 }[ { "id": 2201, "scopes": 1, "expiredDate": 1772496000, "text": "-5 ₽/л АИ-95", "shortDescription": "На заправку", "description": "Скидка 5 ₽ на литр АИ-95", "value": "5", "daysBeforeExpiring": 12, "showProgress": false } ]
Data categories
- fuel stations
- fuel prices
- loyalty bonuses
- transactions
- pay-at-pump orders
- EV charging
- shop baskets
- payment methods
- coupons
- profiles
Where teams use this data
Fleet fuel-spend reconciliation
A fleet back-office matches each driver's litres and amount against the station's live fuels.price and gasStationAddress so expense reports do not rely on paper receipts.
Loyalty bonus and overdraft monitor
A CRM job reads bonuses, bonusLevel, currentAmount and overdraftLimit after fills, and flags wallets whose overdraftEnabled spend is about to hit the cap.
Pump and charging status board
A station-ops screen polls active fueling (title, objectId) and charging (stationName, connectorType) orders plus OrderStatus current/payment so attendants see which column or EV plug is live.
Shop-basket coupon check
A merchandising feed applies couponId to the basket and compares payment, minPayment, cashback and couponApplyingResult before a till promotion goes live.
Frequently asked questions
What does a station record include?
Each map pin carries id, name, number, latitude, longitude, address, live fuels with a per-grade price, EV connectors, workTimes, a closed flag and an optional yandexId. The detail card adds description, phone and hashedImages.
How is the loyalty wallet represented?
The loyalty wallet reports bonuses, bonusLevel, currentAmount, overdraftLimit, overdraftEnabled and an electro balance for charging, plus fortune-wheel credits and gift catalogs. Coupons add id, scopes, value and expiredDate; the ledger pages litres, amount and receiptUrl per fill.
How does pay-at-pump show up in the data?
The pump session returns columns (number, disabled, per-grade limit) and live fuels. POST /v1/azs/orders/start opens a session with objectId, boxId, sumToPay and liters; POST /v1/azs/orders/live polls current litres, payment, bonusesPayment and errorCode; POST /v1/azs/orders/active banners the in-flight fueling or charging order.
How do drivers sign in?
POST /v1/azs/auth/phone-session sends phone (and optional captchaToken / mobileId) and returns sessionId plus an optional Mobile ID hheUri. POST /v1/azs/auth/sms-confirm consumes the SMS or Mobile ID code and returns the UserModel; POST /v1/azs/auth/token issues the session token used on later calls.
Apps similar to АЗС Нефтьмагистраль
- IndianOil ONE — Indian Oil's consumer app for locating petrol pumps, checking live fuel prices and earning XTRAREWARDS on fills — a fuel-retail loyalty wallet in another market.
- ЛУКОЙЛ — Lukoil's official Russian station app for finding АЗС, paying at the pump and collecting the company's loyalty points.
- АЗС Газпромнефть — Gazprom Neft's branded filling-station app with map search, fuel prices, in-app payment and the Нам по пути loyalty programme.
- АЗС Роснефть — Rosneft's official app for its Russian station network: locator, fuel grades and the company's bonus card.
- Яндекс Заправки — Yandex's multi-brand pay-at-pump app that lets drivers start a fill from the car at participating Russian stations.
- Татнефть АЗС — Tatneft's station app for its Tatarstan and regional network, with prices, payment and a branded loyalty card.
Topics
- AZS Neftmagistral API
- Нефтьмагистраль data API
- Russian fuel station prices
- pay at pump bonuses
- EV charging order status
- loyalty coupons litres
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use