Technical Resources

API Documentation

Comprehensive reference for the Pipelet platform components, including the OCPP Config Server, Broker, REST API, and Diagnostic Server.

API Overview

This document lists the HTTP endpoints exposed by the Python entrypoints in this repository. The host names and ports in the examples are placeholders and should be adapted to your environment.

Pipelet OCPP Server (aiohttp, default port 9751)

Method Path Description Example Example response
GET /robots.txt Disables web crawling. curl http://HOST:9751/robots.txt User-agent: *\nDisallow: /\n
GET /api/db_pool_status Reports the configured MySQL pool status. curl http://HOST:9751/api/db_pool_status {"pool_type":"aiomysql","mysql_pool_size":10,...}
GET /api/ocpp_log_queue_metrics Metrics for the async OCPP log queue (optional window_minutes). curl http://HOST:9751/api/ocpp_log_queue_metrics {"size":0,"maxsize":5000,...}
GET /api/websocketCounts WebSocket connection and file descriptor metrics. curl http://HOST:9751/api/websocketCounts {"connections":{"active":2,...}}
GET /api/ocpp_action_metrics Aggregated latency/error metrics per OCPP action. curl http://HOST:9751/api/ocpp_action_metrics {"BootNotification":{"success":12,...}}
GET /api/station_liveness Liveness snapshot for connected stations (optional threshold, sort). curl http://HOST:9751/api/station_liveness {"generated_at":"...", "stations": [...]}
GET /api/connected_stations Compact list of connected charge points with timestamps. curl http://HOST:9751/api/connected_stations {"stations":[{"station_id":"STATION",...}]}
GET /api/getConfiguration Returns the current OCPP configuration for a station (station_id query param required). curl "http://HOST:9751/api/getConfiguration?station_id=STATION" {"status":"Accepted","configurationKey":[...]}
POST /api/setConfiguration Changes a configuration key on a station. Body JSON: station_id, key, value. curl -X POST -d '{"station_id":"STATION",...}' http://HOST:9751/api/setConfiguration {"status":"Accepted"}
POST /api/changeConfiguration/custom Sends a custom ChangeConfiguration payload. curl -X POST -d '{"station_id":"STATION",...}' ... {"status":"Accepted"}
GET /api/localAuth/configuration Returns Local Auth List–related configuration keys. curl "http://HOST:9751/api/localAuth/configuration?station_id=STATION" {"LocalAuthListEnabled":"true",...}
POST /api/localAuth/configuration Sets Local Auth List–related configuration keys. curl -X POST ... {"status":"Accepted"}
GET /api/localAuth/listVersion Fetches the current Local Auth list version. curl "http://HOST:9751/api/localAuth/listVersion?station_id=STATION" {"listVersion":2}
POST /api/localAuth/sendLocalList Sends a Local Authorization List update. curl -X POST ... {"status":"Accepted"}
POST /api/changeAvailability Switches a connector to Operative/Inoperative. curl -X POST ... {"status":"Accepted"}
GET /api/connectedStations Detailed connected-station view including availability, connector status, etc. curl http://HOST:9751/api/connectedStations {"stations":[{"station_id":"STATION",...}]}
POST /api/triggerBootNotification Sends an OCPP TriggerMessage BootNotification. curl -X POST ... {"status":"Accepted"}
POST /api/triggerMeterValues Sends TriggerMessage MeterValues. curl -X POST ... {"status":"Accepted"}
POST /api/triggerStatusNotification Sends TriggerMessage StatusNotification. curl -X POST ... {"status":"Accepted"}
POST /api/statusRoundCall Triggers StatusNotification for all connected stations. curl -X POST http://HOST:9751/api/statusRoundCall {"triggered":["STATION"]}
POST /api/oicp/sync Pushes an OICP status update for a station. curl -X POST ... {"result":"ok"}
POST /hubject/evse-data Forwards EVSE data to Hubject. curl -X POST ... {"hubject_response":{"Result":"OK"}}
POST /hubject/remote-start Remote start transaction triggered by Hubject. curl -X POST ... {"status":"Accepted",...}
POST /hubject/reserve-now Reserve a connector via Hubject payload. curl -X POST ... {"status":"Accepted",...}
POST /api/pnc/ocpp-command Generic Plug&Charge command endpoint. curl -X POST ... {"status":"Accepted",...}
POST /api/pnc/ocpp-certificates OCPP certificate management (install/get/delete/check). curl -X POST ... {"status":"Accepted",...}
POST /hubject/remote-stop Remote stop transaction triggered by Hubject. curl -X POST ... {"status":"Accepted",...}
POST /api/reset Sends OCPP Reset (Hard/Soft). curl -X POST ... {"status":"Accepted"}
POST /api/disconnect Drops the websocket connection for a station. curl -X POST ... {"status":"disconnected",...}
POST /api/startTransaction Remote start via classic OCPP call. curl -X POST ... {"status":"Accepted","transaction_id":1}
POST /api/stopTransaction Remote stop transaction. curl -X POST ... {"status":"Accepted"}
POST /api/unlockConnector Tries to unlock a connector. curl -X POST ... {"status":"Unlocked"}
POST /api/triggerMessage Sends a generic TriggerMessage. curl -X POST ... {"status":"Accepted"}
POST /api/datatransfer Sends an OCPP DataTransfer to a station. curl -X POST ... {"status":"Accepted",...}
POST /api/getDiagnostics Requests diagnostics upload. curl -X POST ... {"status":"queued",...}
GET /updateFirmware/{station_id} Starts a firmware update via query params. curl ... UpdateFirmware gesendet...
POST /api/updateFirmware Firmware update via JSON body. curl -X POST ... {"status":"Accepted",...}
GET /api/getAllCurrentTransactions Lists transaction IDs currently open on the server. curl ... {"transactions":[...]}

Pipelet OCPP Broker (websockets, default port 7020)

API endpoints are served on API-enabled listeners.

Method Path Description Example Example response
GET /robots.txt Disables web crawling. curl http://HOST:7020/robots.txt User-agent: *...
GET / Root path (basic health response). curl http://HOST:7020/ .
GET /healthCheck-01 Health probe used by load balancers. curl http://HOST:7020/healthCheck-01 alive.
GET /refreshStationList Reloads the station list from the database. curl http://HOST:7020/refreshStationList done.
GET /brokerStatus Returns broker status plus MySQL check timestamps. curl http://HOST:7020/brokerStatus {"status":"online",...}
GET /api/db_pool_metrics Metrics for the broker's MySQL pool. curl http://HOST:7020/api/db_pool_metrics {"initialized":true,...}
GET /api/op_redirects Lists redirect entries from op_redirects. curl http://HOST:7020/api/op_redirects {"op_redirects":[...]}
GET /connectionStats Ping/connection statistics. curl http://HOST:7020/connectionStats {"stations":{...}}
GET /api/reconnectStats Recent reconnect and handshake metrics. curl http://HOST:7020/api/reconnectStats {"window_seconds":3600,...}
GET /connectedWallboxes Summary of known wallboxes and connection state. curl http://HOST:7020/connectedWallboxes {"entries":2,...}
GET /websocketCounts Counts active WebSocket connections. curl http://HOST:7020/websocketCounts {"wallbox_to_broker":2,...}
GET /mysqlPoolStatus MySQL pool status snapshot. curl http://HOST:7020/mysqlPoolStatus {"initialized":true,...}
GET /firmware/<filename> Serves firmware binaries. curl -O http://HOST:7020/firmware/fw.bin (binary data)
GET /setRedirect Updates redirect settings via query params. curl ... {"result":"ok"}
GET /getConnecteEVSE Connected/disconnected EVSE list with connection quality. curl http://HOST:7020/getConnecteEVSE {"connected":[...]}
GET /system/limits File descriptor limits and estimated usage. curl http://HOST:7020/system/limits {"ulimit_no_file_soft":1024,...}
GET /rebootChargePoint/<station_id> Triggers a Reset (reboot) call. curl ... Reset-Aufruf gestartet
GET /updateFirmware/<station_id> Triggers firmware update. curl ... UpdateFirmware-Aufruf gestartet
GET /getDiagnostics/<station_id> Triggers OCPP GetDiagnostics. curl ... GetDiagnostics-Aufruf gestartet
GET /disconnectChargePoint/<station_id> Disconnects the station websocket. curl ... Chargepoint getrennt
GET /getDiagnosticsHTTP/<station_id> Triggers GetDiagnostics via HTTP. curl ... GetDiagnostics-Aufruf gestartet
GET /getConnectedDevices Lists connected devices and connector snapshots. curl ... {"connected":[...]}
GET /activeSessions Active charging session snapshot. curl ... {"sessions":[...]}

Example Plug&Charge OCPP command payloads:

See full Examples below.

Pipelet REST API (Flask, default port 9750)

Method Path Description Example
GET /robots.txt Disables web crawling. curl http://HOST:9750/robots.txt
GET /api/connected Devices that sent messages within the last hour. curl "http://HOST:9750/api/connected?owner=ocpp16"
GET /api/disconnected Placeholder, not implemented. curl http://HOST:9750/api/disconnected
GET /api/meter/<device> Placeholder for meter values. curl http://HOST:9750/api/meter/DEVICE
GET /tokens Lists EMSP tokens with pagination. curl "http://HOST:9750/tokens?limit=50"
PUT /tokens Creates/updates EMSP tokens. curl -X PUT ...
GET /sessions Lists broker sessions with pagination. curl "http://HOST:9750/sessions?stationId=STATION"
POST/PUT /sessions Upserts session state entries. curl -X POST ...
GET /api/getsession Returns OCPP session details. curl "http://HOST:9750/api/getsession..."
GET /Charge/GetChargeRecordsByRfId Charging session history filtered by rfId. curl "http://HOST:9750/Charge/GetChargeRecordsByRfId..."
POST /WallboxManagement/createRedirect Creates a redirect entry if missing. curl -X POST ...
GET /WallboxManagement/getChargePointConfiguration Returns stored configuration for a charge point. curl ...
POST /WallboxManagement/setConfiguration Sends a configuration change via OCPP server. curl -X POST ...
POST /api/datatransfer Issues an OCPP DataTransfer via the broker. curl -X POST ...
POST /WallboxManagement/AddWallbox Placeholder, not implemented. curl -X POST ...
GET /WallboxManagement/GetAllWallboxes Placeholder, not implemented. curl ...
PATCH /WallboxManagement/UpdateWallbox Placeholder, not implemented. curl -X PATCH ...

Pipelet OCPP Diagnostic Server (Flask, default port 9090)

Method Path Description Example
GET /robots.txt Disables web crawling. curl http://HOST:9090/robots.txt
PUT /upload_diagnostics/<filename> Uploads raw diagnostic data. curl -T file.bin ...
GET/POST /upload_diagnostics Multipart upload of diagnostic files. curl -F "diag=@file.bin" ...
GET /diagnostics Lists stored diagnostic file names. curl http://HOST:9090/diagnostics

FTP Service: The diagnostic server also starts an FTP service to receive diagnostic uploads.

Pipelet Dashboard (Flask, default port 5000)

Authentication is required for most pages.

Authentication & basic navigation

Method Path Description
GET /robots.txt Disables web crawling.
GET/POST /set_language Sets the UI language cookie.
GET /check Health check endpoint.
GET/POST / Login page.
GET /op_directlogin Token-based login.
GET /logout Logs out.
GET/POST /op_change_password Changes admin password.
GET /op_api_docs Swagger/Redoc viewer.

Dashboards, redirects, and monitoring

Method Path Description
GET /op_dashboard Main redirect/connection dashboard.
GET /op_redirects Lists redirect entries.
GET /op_marked_wallboxes/<id>/history History of mark/unmark actions.
GET /op_active_sessions Active OCPP sessions.
GET /op_connection_info OCPP/MQTT connection settings.
GET/POST /op_performance WebSocket performance statistics.
GET /op_ping_monitor Ping monitor view.
GET /op_details Recent OCPP messages for a station.
GET /op_mqtt_status MQTT status overview.
GET /op_energymqtt Energy MQTT topics.
GET/POST /op_energymqtt_ignore Manage ignored MQTT topics.
GET /op_energymqtt_disconnected Devices with no MQTT traffic.
GET/POST /op_ai_diagnostics AI-based diagnostic reports.

Rules & Config

(See full list in API Overview file)