GuidesAPI reference
Introduction
  • Overview
Orientation
  • What a CSMS does
  • OCPP in ten minutes
  • The vocabulary
  • Lifecycle of a charging session
  • Which OCPP version am I dealing with?
  • How Flowion maps onto OCPP
Getting started
  • Quickstart
  • Core concepts
  • Set up your workspace
  • Connect a simulated charger
  • Connect a real charger
  • Environments
API guide
  • Authentication
  • Your first API call
  • Interactive API reference
  • Roles and permissions
  • Errors, pagination and versioning
  • Live updates
  • Sending commands to a charger
  • Rate limits
How-to guides
  • Register and provision a charger
  • Read and change charger settings
  • Authorize drivers with RFID cards
  • Start and stop sessions remotely
  • Track sessions and energy
  • Take a charger in and out of service
  • Unlock a stuck connector
  • Reset a charger
  • Send vendor-specific data
  • Keep a site within its electrical limits
  • Use day-ahead electricity prices
  • Receive events with webhooks
  • OCPP feature coverage
Troubleshooting
  • 8 more coming soon
    • My charger will not connectSoon
    • It connects, then dropsSoon
    • A command timed out or returned 409Soon
    • A card is not being authorizedSoon
    • My transaction looks wrongSoon
    • Meter values are missing or sparseSoon
    • Reading the OCPP message logSoon
    • Known limitationsSoon
Reference
  • 5 more coming soon
    • GlossarySoon
    • Endpoint indexSoon
    • OCPP message supportSoon
    • Status and error codesSoon
    • ChangelogSoon
Flowion Docsflowion.io
PreviousYour first API callNextRoles and permissions
Was this page helpful?
Edit this page

Interactive API reference

Everything in the API reference tab is generated, not written. It is rendered straight from api-gateway's own OpenAPI document — one page per tag, every request and response schema, every status code the handler actually declares — so it can never say something the service does not do.

No Swagger UI, and that is deliberate

api-gateway itself serves the raw document at GET /v1/api-docs/openapi.json and nothing else — there is no bundled Swagger UI or try-it console living on the API. The browsable reference you are reading now is the interactive layer: apps/web builds it from that same JSON at build time, so the reference and the running API can never drift out of sync with each other.

Using the reference#

The Overview page lists every tag — Organizations, Environments, Charging stations, Commands, and so on — matching the resource groupings the rest of these guides use. Each tag's page lists its operations with the full request and response schema, every documented status code, and which ones require which role.

Two things worth knowing before you rely on it:

  • Every schema is the real one. #[utoipa::path] annotations sit next to the Rust handlers they document, and a test in api-gateway's own suite guards the committed openapi.json against the code that generates it — the document cannot ship stale.
  • A $ref names a request or response shape once. The same ErrorBody schema — { error, message } — is reused across every 4xx/5xx a handler declares, rather than redefined per endpoint. If you are generating a client from this document, that shared schema is worth generating once too.

Pulling the raw document yourself#

If you want to generate your own client rather than read the rendered reference:

Shell
curl -s https://api.flowion.io/v1/api-docs/openapi.json -o openapi.json

It is a standard OpenAPI 3 document — anything that consumes one (openapi-typescript, openapi-generator, and similar) can point at that URL directly.

Next: Roles and permissions.