OCPI open data

Our charging locations and tariffs are published over OCPI 2.2.1 and are open to everyone. No token, no registration, no agreement needed.

What is open

Two modules are public and read-only: Locations and Tariffs.

GET https://my.voltspot.net/ocpi/cpo/2.2.1/versions
GET https://my.voltspot.net/ocpi/cpo/2.2.1
GET https://my.voltspot.net/ocpi/cpo/2.2.1/locations
GET https://my.voltspot.net/ocpi/cpo/2.2.1/tariffs
{
  "data": [ ... ],
  "status_code": 1000,
  "status_message": "Success",
  "timestamp": "2026-09-20T11:37:21.167090Z"
}

What is not

Sessions, CDRs and Credentials answer 401. Those belong to roaming partners with a signed agreement; write to us if you need them.

Prices and VAT

This is the question we are asked most often. The price in a tariff component is the amount WITHOUT VAT, and the vat field is the percentage to add. Multiply to get the price a driver pays.

"price_components": [
  { "type": "ENERGY", "price": 0.2917, "vat": 20.0, "step_size": 1 }
]

0.2917 x (1 + 20/100) = 0.35 EUR/kWh

Example: EURO1 publishes price 0.2917 with vat 20 — the driver pays 0.35 EUR/kWh. Kazakh tariffs carry vat 16, not 20.

Identifiers

Our party is BG / SPT. One EVSE is one connector, and uid equals evse_id, so the same string identifies it everywhere. A connector points at its tariff through tariff_ids.

"uid":      "BG*SPT*E98*1"
"evse_id":  "BG*SPT*E98*1"
"connectors": [ { "id": "1", "tariff_ids": ["EURO1"] } ]

Terms of use

Use the data in any application, free or paid, including subscription products. We ask no fee and require no permission.

We do ask — but do not require — that you name the source: charging station data by Voltspot, my.voltspot.net.

Polling

There is no rate limit today. Locations change rarely and tariffs even more rarely, so once every few minutes is plenty. If polling ever starts to hurt the service we will introduce limits and say so on this page first.

Contact

Questions, errors in the data, or a request for the closed modules: bg@voltspot.net