Public JSON API

Read-only, versioned endpoints serving the network's honest aggregates. All responses are JSON, CORS-open for GET requests, and share a single envelope. No authentication and no rate limiting in v1 — be gentle.

Endpoints 4 endpoints · v1
Method Path Description Params
GET /api/v1/stations List charging stations q, city, operator, min_power, available, page, per_page
GET /api/v1/stations/:id Station detail with EVSEs, statuses and tariffs id
GET /api/v1/statistics Network-wide stats, trends and 24h availability history
GET /api/v1/operators Operator comparison (stations, connectors, availability, price)
Response envelope

Every successful response is wrapped in a stable envelope. The meta map always carries generated_at; total and page accompany paginated collections.

{
  "data": [ ... ],
  "meta": {
    "generated_at": ...,
    "total": ...,
    "page": ...
  }
}
Example request

A plain curl against the stations endpoint with a couple of filters:

curl https://soyo.tail6d9700.ts.net/api/v1/stations?city=Helsinki&min_power=150&per_page=20

Try it live

Notes
  • Delisted stations are never served — the API only exposes live data.
  • Pagination clamps defensively: page ≥ 1 and per_page in 1..100. Non-integer values return 422.
  • Rate limiting is intentionally skipped in v1. For production use, front the API with CloudFlare or a plug-based limiter (e.g. Hammer).