openapi: 3.0.3
info:
title: 'EV Charging Point Management System API Documentation'
description: 'API documentation for OCPP Charging Point Management System'
version: 1.0.0
servers:
-
url: 'http://127.0.0.1:8000'
tags:
-
name: Endpoints
description: ''
paths:
/api/health:
get:
summary: ''
operationId: getApiHealth
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
status: healthy
timestamp: '2026-05-27T07:22:36+00:00'
version: 1.0.0
properties:
success:
type: boolean
example: true
status:
type: string
example: healthy
timestamp:
type: string
example: '2026-05-27T07:22:36+00:00'
version:
type: string
example: 1.0.0
tags:
- Endpoints
security: []
/api/ocpp/remote-start:
post:
summary: "POST /api/ocpp/remote-start - Send RemoteStartTransaction to connected charger\nUses new ConnectionRegistry for ReactPHP WebSocket connections"
operationId: pOSTapiocppremoteStartSendRemoteStartTransactionToConnectedChargerUsesNewConnectionRegistryForReactPHPWebSocketConnections
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/ocpp/remote-stop:
post:
summary: "POST /api/ocpp/remote-stop - Send RemoteStopTransaction to connected charger\nUses new ConnectionRegistry for ReactPHP WebSocket connections"
operationId: pOSTapiocppremoteStopSendRemoteStopTransactionToConnectedChargerUsesNewConnectionRegistryForReactPHPWebSocketConnections
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/mobile/register:
post:
summary: ''
operationId: postApiMobileRegister
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
email:
type: string
description: 'Must be a valid email address.'
example: kunde.eloisa@example.com
phone:
type: string
description: 'Must not be greater than 20 characters.'
example: hfqcoynlazghdtqtq
required:
- name
- email
- phone
security: []
/api/mobile/send-otp:
post:
summary: ''
operationId: postApiMobileSendOtp
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: string
description: ''
example: consequatur
required:
- phone
security: []
/api/mobile/verify-otp:
post:
summary: ''
operationId: postApiMobileVerifyOtp
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: string
description: ''
example: consequatur
otp:
type: string
description: ''
example: consequatur
required:
- phone
- otp
security: []
/api/mobile/resend-otp:
post:
summary: ''
operationId: postApiMobileResendOtp
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: string
description: ''
example: consequatur
required:
- phone
security: []
/api/mobile/account-linking/initiate:
post:
summary: "Step 1: Initiate account linking process\nGenerates a temporary linking session for unverified account recovery"
operationId: step1InitiateAccountLinkingProcessGeneratesATemporaryLinkingSessionForUnverifiedAccountRecovery
description: "POST /api/mobile/account-linking/initiate\nBody: { \"phone\": \"9840753503\" }\nResponse: linking_session_id for use in verification"
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: string
description: 'Must not be greater than 20 characters.'
example: vmqeopfuudtdsufvy
required:
- phone
security: []
/api/mobile/account-linking/verify-otp:
post:
summary: "Step 2: Verify OTP for account linking\nValidates the OTP sent to the registered phone number"
operationId: step2VerifyOTPForAccountLinkingValidatesTheOTPSentToTheRegisteredPhoneNumber
description: "POST /api/mobile/account-linking/verify-otp\nBody: {\n \"linking_session_id\": \"link_xxx\",\n \"phone\": \"9840753503\",\n \"otp\": \"1234\"\n}"
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linking_session_id:
type: string
description: ''
example: consequatur
phone:
type: string
description: 'Must not be greater than 20 characters.'
example: mqeopfuudtdsufvyv
otp:
type: string
description: 'Must be 4 digits.'
example: '8107'
required:
- linking_session_id
- phone
- otp
security: []
/api/mobile/account-linking/link:
post:
summary: "Step 3: Link/Update account with new information\nMerges the new registration data with existing account"
operationId: step3LinkUpdateAccountWithNewInformationMergesTheNewRegistrationDataWithExistingAccount
description: "POST /api/mobile/account-linking/link\nBody: {\n \"linking_session_id\": \"link_xxx\",\n \"name\": \"Wahid A\",\n \"email\": \"newemail@example.com\", // optional - can add alternate email\n \"action\": \"update\" | \"login_only\"\n}\n\nActions:\n- \"update\": Update account with new details\n- \"login_only\": Just verify account ownership, don't update details"
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linking_session_id:
type: string
description: ''
example: consequatur
name:
type: string
description: 'Must not be greater than 255 characters.'
example: mqeopfuudtdsufvyvddqa
nullable: true
email:
type: string
description: 'Must be a valid email address.'
example: eloisa.harber@example.com
nullable: true
action:
type: string
description: ''
example: update
enum:
- update
- login_only
required:
- linking_session_id
- action
security: []
/api/mobile/account-linking/cancel:
post:
summary: 'Cancel account linking session'
operationId: cancelAccountLinkingSession
description: "POST /api/mobile/account-linking/cancel\nBody: { \"linking_session_id\": \"link_xxx\" }"
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linking_session_id:
type: string
description: ''
example: consequatur
required:
- linking_session_id
security: []
/api/mobile/profile:
get:
summary: ''
operationId: getApiMobileProfile
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/update-profile:
post:
summary: ''
operationId: postApiMobileUpdateProfile
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: true
email:
type: string
description: ''
example: null
phone:
type: string
description: ''
example: null
security: []
/api/mobile/add-vehicle:
post:
summary: ''
operationId: postApiMobileAddVehicle
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
manufacturer:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
model:
type: string
description: 'Must not be greater than 255 characters.'
example: amniihfqcoynlazghdtqt
registration_number:
type: string
description: ''
example: consequatur
required:
- manufacturer
- model
- registration_number
security: []
/api/mobile/vehicles:
get:
summary: ''
operationId: getApiMobileVehicles
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/mobile/update-vehicle/{id}':
post:
summary: ''
operationId: postApiMobileUpdateVehicleId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
manufacturer:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
model:
type: string
description: 'Must not be greater than 255 characters.'
example: amniihfqcoynlazghdtqt
registration_number:
type: string
description: ''
example: null
required:
- manufacturer
- model
security: []
parameters:
-
in: path
name: id
description: 'The ID of the update vehicle.'
example: consequatur
required: true
schema:
type: string
'/api/mobile/delete-vehicle/{id}':
post:
summary: ''
operationId: postApiMobileDeleteVehicleId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the delete vehicle.'
example: consequatur
required: true
schema:
type: string
/api/mobile/nearby-stations:
get:
summary: ''
operationId: getApiMobileNearbyStations
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/mobile/station-chargers/{id}':
get:
summary: "GET /api/chargers/station/{stationId}\nGet chargers by station ID"
operationId: gETapichargersstationstationIdGetChargersByStationID
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the station charger.'
example: consequatur
required: true
schema:
type: string
/api/mobile/stations:
get:
summary: 'GET /api/mobile/stations - Get all stations for EVtron mobile app'
operationId: gETapimobilestationsGetAllStationsForEVtronMobileApp
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/mobile/stations/{id}':
get:
summary: 'GET /api/mobile/stations/:id - Get detailed station information for EVtron mobile app'
operationId: gETapimobilestationsidGetDetailedStationInformationForEVtronMobileApp
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the station.'
example: consequatur
required: true
schema:
type: string
/api/mobile/scan/manufacturers:
get:
summary: 'Get manufacturers list'
operationId: getManufacturersList
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/scan/models:
get:
summary: 'Get models list based on manufacturer'
operationId: getModelsListBasedOnManufacturer
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/scan/connector-types:
get:
summary: 'Get connector types list'
operationId: getConnectorTypesList
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/scan/current-types:
get:
summary: 'Get current types list (AC/DC)'
operationId: getCurrentTypesListACDC
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/scan/save:
post:
summary: 'Save scan data'
operationId: saveScanData
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/mobile/scan/process:
post:
summary: 'Process scanner data (QR scan or manual ID entry)'
operationId: processScannerDataQRScanOrManualIDEntry
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/mobile/scan/validate-next:
post:
summary: "Validate charger before starting charging session\nPerforms 10 critical validation checks"
operationId: validateChargerBeforeStartingChargingSessionPerforms10CriticalValidationChecks
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/mobile/scan/saved:
get:
summary: 'Get saved charger details for the authenticated user'
operationId: getSavedChargerDetailsForTheAuthenticatedUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/scan/test:
get:
summary: ''
operationId: getApiMobileScanTest
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/wishlist:
get:
summary: "GET /api/mobile/wishlist - Get user's wishlist with station details"
operationId: gETapimobilewishlistGetUsersWishlistWithStationDetails
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: 'POST /api/mobile/wishlist - Add station to wishlist'
operationId: pOSTapimobilewishlistAddStationToWishlist
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/mobile/wishlist/{id}':
put:
summary: 'PUT /api/mobile/wishlist/{id} - Update wishlist item'
operationId: pUTapimobilewishlistidUpdateWishlistItem
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: 'DELETE /api/mobile/wishlist/{id} - Remove station from wishlist'
operationId: dELETEapimobilewishlistidRemoveStationFromWishlist
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the wishlist.'
example: consequatur
required: true
schema:
type: string
'/api/mobile/wishlist/check/{stationId}':
get:
summary: "GET /api/mobile/wishlist/check/{stationId} - Check if station is in user's wishlist"
operationId: gETapimobilewishlistcheckstationIdCheckIfStationIsInUsersWishlist
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: stationId
description: ''
example: consequatur
required: true
schema:
type: string
/api/mobile/wishlist/favorites:
get:
summary: 'GET /api/mobile/wishlist/favorites - Get favorite stations only'
operationId: gETapimobilewishlistfavoritesGetFavoriteStationsOnly
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/charging-history:
get:
summary: 'Get charging history for the last 10 days'
operationId: getChargingHistoryForTheLast10Days
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/charging-history/summary:
get:
summary: 'Get charging history summary statistics'
operationId: getChargingHistorySummaryStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/mobile/charging-history/charger/{chargerId}':
get:
summary: 'Get charging history for a specific charger'
operationId: getChargingHistoryForASpecificCharger
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
/api/mobile/charging-history/weekly-percentage:
get:
summary: 'Get weekly charging percentage data (Monday to Sunday)'
operationId: getWeeklyChargingPercentageDataMondayToSunday
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/complaints:
post:
summary: ''
operationId: postApiMobileComplaints
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subject:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
description:
type: string
description: 'Must not be greater than 2000 characters.'
example: 'Dolores molestias ipsam sit.'
required:
- subject
- description
security: []
get:
summary: ''
operationId: getApiMobileComplaints
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/mobile/complaints/{id}':
get:
summary: ''
operationId: getApiMobileComplaintsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the complaint.'
example: consequatur
required: true
schema:
type: string
/api/mobile/charging/start:
post:
summary: "Start a charging session\nPOST /api/mobile/charging/start"
operationId: startAChargingSessionPOSTapimobilechargingstart
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/mobile/charging/stop/{sessionId}':
post:
summary: "Stop an active charging session\nPOST /api/mobile/charging/stop/{session_id}"
operationId: stopAnActiveChargingSessionPOSTapimobilechargingstopsessionId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: sessionId
description: ''
example: consequatur
required: true
schema:
type: string
/api/mobile/charging/current:
get:
summary: "Get active charging session details\nGET /api/mobile/charging/current"
operationId: getActiveChargingSessionDetailsGETapimobilechargingcurrent
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/charging/history:
get:
summary: "Get charging session history\nGET /api/mobile/charging/history"
operationId: getChargingSessionHistoryGETapimobilecharginghistory
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/mobile/charging/live:
get:
summary: "Get live charging session data (real-time polling)\nGET /api/mobile/charging/live"
operationId: getLiveChargingSessionDatarealTimePollingGETapimobilecharginglive
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/public/mobile/stations:
get:
summary: 'GET /api/mobile/stations - Get all stations for EVtron mobile app'
operationId: gETapimobilestationsGetAllStationsForEVtronMobileApp
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
count: 3
pagination:
page: 1
limit: 20
total: 3
totalPages: 1
data:
-
id: 1
station_name: 'Downtown Charging Hub'
full_address: '123 Main Street, New York, NY 10001'
latitude: '40.7128'
longitude: '-74.006'
distance_from_user: null
status: active
station_type: public
is_24_7: true
estimated_charging_price: '5.00'
total_chargers: 2
available_chargers: 1
connector_ports:
-
type: CCS
status: Available
max_power: 150
-
type: CHAdeMO
status: Available
max_power: 100
-
type: null
status: Charging
max_power: null
-
type: Type_2
status: Available
max_power: 7
amenities:
- WiFi
- Cafe
- Parking
real_time_availability: true
wishlist_status: null
created_at: '2026-05-14T10:03:55.000000Z'
-
id: 2
station_name: 'Mall Charging Station'
full_address: '456 Oak Avenue, Los Angeles, CA 90001'
latitude: '34.0522'
longitude: '-118.2437'
distance_from_user: null
status: active
station_type: public
is_24_7: false
estimated_charging_price: '4.50'
total_chargers: 1
available_chargers: 0
connector_ports:
-
type: CCS
status: Available
max_power: 120
-
type: Type_2
status: Available
max_power: 11
amenities:
- WiFi
- Shopping
- Restaurants
real_time_availability: false
wishlist_status: null
created_at: '2026-05-14T10:03:55.000000Z'
-
id: 3
station_name: 'Airport Charging Depot'
full_address: '789 Aviation Boulevard, Chicago, IL 60601'
latitude: '41.8781'
longitude: '-87.6298'
distance_from_user: null
status: active
station_type: public
is_24_7: true
estimated_charging_price: '6.00'
total_chargers: 1
available_chargers: 0
connector_ports:
-
type: CCS
status: Available
max_power: 350
amenities:
- Lounge
- WiFi
- 'Charging Pods'
real_time_availability: false
wishlist_status: null
created_at: '2026-05-14T10:03:55.000000Z'
properties:
success:
type: boolean
example: true
count:
type: integer
example: 3
pagination:
type: object
properties:
page:
type: integer
example: 1
limit:
type: integer
example: 20
total:
type: integer
example: 3
totalPages:
type: integer
example: 1
data:
type: array
example:
-
id: 1
station_name: 'Downtown Charging Hub'
full_address: '123 Main Street, New York, NY 10001'
latitude: '40.7128'
longitude: '-74.006'
distance_from_user: null
status: active
station_type: public
is_24_7: true
estimated_charging_price: '5.00'
total_chargers: 2
available_chargers: 1
connector_ports:
-
type: CCS
status: Available
max_power: 150
-
type: CHAdeMO
status: Available
max_power: 100
-
type: null
status: Charging
max_power: null
-
type: Type_2
status: Available
max_power: 7
amenities:
- WiFi
- Cafe
- Parking
real_time_availability: true
wishlist_status: null
created_at: '2026-05-14T10:03:55.000000Z'
-
id: 2
station_name: 'Mall Charging Station'
full_address: '456 Oak Avenue, Los Angeles, CA 90001'
latitude: '34.0522'
longitude: '-118.2437'
distance_from_user: null
status: active
station_type: public
is_24_7: false
estimated_charging_price: '4.50'
total_chargers: 1
available_chargers: 0
connector_ports:
-
type: CCS
status: Available
max_power: 120
-
type: Type_2
status: Available
max_power: 11
amenities:
- WiFi
- Shopping
- Restaurants
real_time_availability: false
wishlist_status: null
created_at: '2026-05-14T10:03:55.000000Z'
-
id: 3
station_name: 'Airport Charging Depot'
full_address: '789 Aviation Boulevard, Chicago, IL 60601'
latitude: '41.8781'
longitude: '-87.6298'
distance_from_user: null
status: active
station_type: public
is_24_7: true
estimated_charging_price: '6.00'
total_chargers: 1
available_chargers: 0
connector_ports:
-
type: CCS
status: Available
max_power: 350
amenities:
- Lounge
- WiFi
- 'Charging Pods'
real_time_availability: false
wishlist_status: null
created_at: '2026-05-14T10:03:55.000000Z'
items:
type: object
properties:
id:
type: integer
example: 1
station_name:
type: string
example: 'Downtown Charging Hub'
full_address:
type: string
example: '123 Main Street, New York, NY 10001'
latitude:
type: string
example: '40.7128'
longitude:
type: string
example: '-74.006'
distance_from_user:
type: string
example: null
nullable: true
status:
type: string
example: active
station_type:
type: string
example: public
is_24_7:
type: boolean
example: true
estimated_charging_price:
type: string
example: '5.00'
total_chargers:
type: integer
example: 2
available_chargers:
type: integer
example: 1
connector_ports:
type: array
example:
-
type: CCS
status: Available
max_power: 150
-
type: CHAdeMO
status: Available
max_power: 100
-
type: null
status: Charging
max_power: null
-
type: Type_2
status: Available
max_power: 7
items:
type: object
properties:
type:
type: string
example: CCS
status:
type: string
example: Available
max_power:
type: integer
example: 150
amenities:
type: array
example:
- WiFi
- Cafe
- Parking
items:
type: string
real_time_availability:
type: boolean
example: true
wishlist_status:
type: string
example: null
nullable: true
created_at:
type: string
example: '2026-05-14T10:03:55.000000Z'
tags:
- Endpoints
security: []
'/api/public/mobile/stations/{id}':
get:
summary: 'GET /api/mobile/stations/:id - Get detailed station information for EVtron mobile app'
operationId: gETapimobilestationsidGetDetailedStationInformationForEVtronMobileApp
description: ''
parameters: []
responses:
500:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Failed to get station details'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Failed to get station details'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the station.'
example: consequatur
required: true
schema:
type: string
/api/public/mobile/scan/manufacturers:
get:
summary: 'Get manufacturers list'
operationId: getManufacturersList
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
id: 1
name: Tesla
-
id: 2
name: ABB
-
id: 3
name: Siemens
-
id: 4
name: 'Schneider Electric'
-
id: 5
name: ChargePoint
-
id: 6
name: EVBox
-
id: 7
name: 'Blink Charging'
-
id: 8
name: Webasto
-
id: 9
name: 'Delta Electronics'
-
id: 10
name: Eaton
message: 'Manufacturers retrieved successfully'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
id: 1
name: Tesla
-
id: 2
name: ABB
-
id: 3
name: Siemens
-
id: 4
name: 'Schneider Electric'
-
id: 5
name: ChargePoint
-
id: 6
name: EVBox
-
id: 7
name: 'Blink Charging'
-
id: 8
name: Webasto
-
id: 9
name: 'Delta Electronics'
-
id: 10
name: Eaton
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Tesla
message:
type: string
example: 'Manufacturers retrieved successfully'
tags:
- Endpoints
security: []
/api/public/mobile/scan/models:
get:
summary: 'Get models list based on manufacturer'
operationId: getModelsListBasedOnManufacturer
description: ''
parameters: []
responses:
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Validation failed'
message:
manufacturer_id:
- 'The manufacturer id field is required.'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Validation failed'
message:
type: object
properties:
manufacturer_id:
type: array
example:
- 'The manufacturer id field is required.'
items:
type: string
tags:
- Endpoints
security: []
/api/public/mobile/scan/connector-types:
get:
summary: 'Get connector types list'
operationId: getConnectorTypesList
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
id: 1
name: 'Type 1 (J1772)'
description: 'North America standard'
-
id: 2
name: 'Type 2 (Mennekes)'
description: 'European standard'
-
id: 3
name: CHAdeMO
description: 'Japanese DC fast charging'
-
id: 4
name: 'CCS (Combined Charging System)'
description: 'AC/DC combo'
-
id: 5
name: CCS2
description: 'European CCS standard'
-
id: 6
name: 'Tesla Supercharger'
description: 'Tesla proprietary'
-
id: 7
name: 'NACS (North American Charging Standard)'
description: 'Tesla standard for others'
-
id: 8
name: GB/T
description: 'Chinese standard'
message: 'Connector types retrieved successfully'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
id: 1
name: 'Type 1 (J1772)'
description: 'North America standard'
-
id: 2
name: 'Type 2 (Mennekes)'
description: 'European standard'
-
id: 3
name: CHAdeMO
description: 'Japanese DC fast charging'
-
id: 4
name: 'CCS (Combined Charging System)'
description: 'AC/DC combo'
-
id: 5
name: CCS2
description: 'European CCS standard'
-
id: 6
name: 'Tesla Supercharger'
description: 'Tesla proprietary'
-
id: 7
name: 'NACS (North American Charging Standard)'
description: 'Tesla standard for others'
-
id: 8
name: GB/T
description: 'Chinese standard'
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Type 1 (J1772)'
description:
type: string
example: 'North America standard'
message:
type: string
example: 'Connector types retrieved successfully'
tags:
- Endpoints
security: []
/api/public/mobile/scan/current-types:
get:
summary: 'Get current types list (AC/DC)'
operationId: getCurrentTypesListACDC
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
id: 1
name: AC
description: 'Alternating Current'
-
id: 2
name: DC
description: 'Direct Current'
message: 'Current types retrieved successfully'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
id: 1
name: AC
description: 'Alternating Current'
-
id: 2
name: DC
description: 'Direct Current'
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: AC
description:
type: string
example: 'Alternating Current'
message:
type: string
example: 'Current types retrieved successfully'
tags:
- Endpoints
security: []
/api/public/mobile/scan/saved:
get:
summary: 'Get saved charger details for the authenticated user'
operationId: getSavedChargerDetailsForTheAuthenticatedUser
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data: []
message: 'No saved charger details (user not authenticated)'
properties:
success:
type: boolean
example: true
data:
type: array
example: []
message:
type: string
example: 'No saved charger details (user not authenticated)'
tags:
- Endpoints
security: []
/api/public/mobile/scan/save:
post:
summary: 'Save scan data'
operationId: saveScanData
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/public/mobile/scan/process:
post:
summary: 'Process scanner data (QR scan or manual ID entry)'
operationId: processScannerDataQRScanOrManualIDEntry
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/public/mobile/charging-history:
get:
summary: 'Get charging history for the last 10 days'
operationId: getChargingHistoryForTheLast10Days
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: ongoing
start_time: '2026-05-22T10:24:33.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-22T10:22:04.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: completed
start_time: '2026-05-22T09:35:58.000000Z'
end_time: '2026-05-22T09:49:01.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 1.7
amount: 8.5
status: completed
start_time: '2026-05-22T09:34:21.000000Z'
end_time: '2026-05-22T10:21:56.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0.9
amount: 4.5
status: completed
start_time: '2026-05-22T07:54:10.000000Z'
end_time: '2026-05-22T07:54:39.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: completed
start_time: '2026-05-22T07:33:09.000000Z'
end_time: '2026-05-22T07:33:31.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-22T06:24:27.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 3.1
amount: 15.5
status: completed
start_time: '2026-05-22T05:27:22.000000Z'
end_time: '2026-05-22T05:35:01.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 3
amount: 15
status: completed
start_time: '2026-05-21T13:27:55.000000Z'
end_time: '2026-05-22T07:52:14.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-21T10:19:26.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 40
amount: 200
status: completed
start_time: '2026-05-21T10:14:30.000000Z'
end_time: '2026-05-21T10:15:37.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 2000
amount: 10000
status: charging
start_time: '2026-05-21T10:10:06.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 4
amount: 20
status: completed
start_time: '2026-05-21T10:07:56.000000Z'
end_time: '2026-05-21T10:08:50.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 110
amount: 550
status: completed
start_time: '2026-05-21T10:03:25.000000Z'
end_time: '2026-05-21T10:07:00.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-21T09:56:40.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 5
amount: 25
status: completed
start_time: '2026-05-21T08:12:36.000000Z'
end_time: '2026-05-21T08:34:33.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: ongoing
start_time: '2026-05-21T05:46:51.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: ongoing
start_time: '2026-05-20T11:41:37.000000Z'
end_time: null
message: 'Charging history retrieved successfully'
total_records: 18
date_range:
from: '2026-05-17T00:00:00.000000Z'
to: '2026-05-27T07:22:38.448852Z'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: ongoing
start_time: '2026-05-22T10:24:33.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-22T10:22:04.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: completed
start_time: '2026-05-22T09:35:58.000000Z'
end_time: '2026-05-22T09:49:01.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 1.7
amount: 8.5
status: completed
start_time: '2026-05-22T09:34:21.000000Z'
end_time: '2026-05-22T10:21:56.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0.9
amount: 4.5
status: completed
start_time: '2026-05-22T07:54:10.000000Z'
end_time: '2026-05-22T07:54:39.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: completed
start_time: '2026-05-22T07:33:09.000000Z'
end_time: '2026-05-22T07:33:31.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-22T06:24:27.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 3.1
amount: 15.5
status: completed
start_time: '2026-05-22T05:27:22.000000Z'
end_time: '2026-05-22T05:35:01.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 3
amount: 15
status: completed
start_time: '2026-05-21T13:27:55.000000Z'
end_time: '2026-05-22T07:52:14.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-21T10:19:26.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 40
amount: 200
status: completed
start_time: '2026-05-21T10:14:30.000000Z'
end_time: '2026-05-21T10:15:37.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 2000
amount: 10000
status: charging
start_time: '2026-05-21T10:10:06.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 4
amount: 20
status: completed
start_time: '2026-05-21T10:07:56.000000Z'
end_time: '2026-05-21T10:08:50.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 110
amount: 550
status: completed
start_time: '2026-05-21T10:03:25.000000Z'
end_time: '2026-05-21T10:07:00.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 0
amount: 0
status: active
start_time: '2026-05-21T09:56:40.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Wahid A'
units: 5
amount: 25
status: completed
start_time: '2026-05-21T08:12:36.000000Z'
end_time: '2026-05-21T08:34:33.000000Z'
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-CP001
model_name: 'Wallbox Pulsar Plus'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: ongoing
start_time: '2026-05-21T05:46:51.000000Z'
end_time: null
-
station_name: 'Downtown Charging Hub'
charger_id: CHR-1
model_name: 'Tesla Supercharger V3'
vehicle_name: 'Not Assigned'
units: 0
amount: 0
status: ongoing
start_time: '2026-05-20T11:41:37.000000Z'
end_time: null
items:
type: object
properties:
station_name:
type: string
example: 'Downtown Charging Hub'
charger_id:
type: string
example: CHR-CP001
model_name:
type: string
example: 'Wallbox Pulsar Plus'
vehicle_name:
type: string
example: 'Not Assigned'
units:
type: integer
example: 0
amount:
type: integer
example: 0
status:
type: string
example: ongoing
start_time:
type: string
example: '2026-05-22T10:24:33.000000Z'
end_time:
type: string
example: null
nullable: true
message:
type: string
example: 'Charging history retrieved successfully'
total_records:
type: integer
example: 18
date_range:
type: object
properties:
from:
type: string
example: '2026-05-17T00:00:00.000000Z'
to:
type: string
example: '2026-05-27T07:22:38.448852Z'
tags:
- Endpoints
security: []
/api/auth/register:
post:
summary: 'POST /api/auth/register - Register new user'
operationId: pOSTapiauthregisterRegisterNewUser
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/auth/login:
post:
summary: 'POST /api/auth/login - Login user'
operationId: pOSTapiauthloginLoginUser
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/auth/logout:
post:
summary: 'POST /api/auth/logout - Logout user'
operationId: pOSTapiauthlogoutLogoutUser
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/auth/refresh:
post:
summary: 'POST /api/auth/refresh - Get user info from token'
operationId: pOSTapiauthrefreshGetUserInfoFromToken
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/clients/list:
get:
summary: 'GET /api/clients/list - Get all clients (public endpoint for dropdown)'
operationId: gETapiclientslistGetAllClientspublicEndpointForDropdown
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
id: 3
name: 'AutoCharge Systems'
-
id: 5
name: 'EV Mobility Services'
-
id: 2
name: 'Green Energy Pvt Ltd'
-
id: 4
name: 'Smart Grid Networks'
-
id: 6
name: 'Stacey Dunn'
-
id: 1
name: 'TechCorp Solutions'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
id: 3
name: 'AutoCharge Systems'
-
id: 5
name: 'EV Mobility Services'
-
id: 2
name: 'Green Energy Pvt Ltd'
-
id: 4
name: 'Smart Grid Networks'
-
id: 6
name: 'Stacey Dunn'
-
id: 1
name: 'TechCorp Solutions'
items:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: 'AutoCharge Systems'
tags:
- Endpoints
security: []
/api/ocpp-charger/boot-notification:
post:
summary: 'Handle OCPP Boot Notification'
operationId: handleOCPPBootNotification
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
firmware_version:
type: string
description: ''
example: consequatur
serial_number:
type: string
description: ''
example: consequatur
model:
type: string
description: ''
example: consequatur
required:
- charger_id
- firmware_version
- serial_number
- model
security: []
/api/ocpp-charger/heartbeat:
post:
summary: 'Handle OCPP Heartbeat'
operationId: handleOCPPHeartbeat
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
required:
- charger_id
security: []
/api/ocpp-charger/status-notification:
post:
summary: 'Handle OCPP Status Notification'
operationId: handleOCPPStatusNotification
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
connector_id:
type: integer
description: ''
example: 17
status:
type: string
description: ''
example: Available
enum:
- Available
- Preparing
- Charging
- Finishing
- Faulted
- Unavailable
error_code:
type: string
description: ''
example: consequatur
nullable: true
timestamp:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:38'
nullable: true
required:
- charger_id
- connector_id
- status
security: []
/api/ocpp-charger/start-transaction:
post:
summary: 'Handle OCPP Start Transaction'
operationId: handleOCPPStartTransaction
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
connector_id:
type: integer
description: ''
example: 17
id_tag:
type: string
description: ''
example: consequatur
meter_start:
type: integer
description: ''
example: 17
timestamp:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:38'
required:
- charger_id
- connector_id
- id_tag
- meter_start
- timestamp
security: []
/api/ocpp-charger/stop-transaction:
post:
summary: 'Handle OCPP Stop Transaction'
operationId: handleOCPPStopTransaction
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
transaction_id:
type: string
description: 'The id of an existing record in the transactions table.'
example: consequatur
meter_stop:
type: integer
description: ''
example: 17
timestamp:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:38'
reason:
type: string
description: ''
example: consequatur
nullable: true
required:
- transaction_id
- meter_stop
- timestamp
security: []
/api/ocpp-charger/meter-values:
post:
summary: 'Handle OCPP Meter Values'
operationId: handleOCPPMeterValues
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
connector_id:
type: integer
description: ''
example: 17
transaction_id:
type: string
description: 'The id of an existing record in the transactions table.'
example: null
nullable: true
meter_value:
type: object
description: ''
example: []
properties: { }
required:
- charger_id
- connector_id
- meter_value
security: []
/api/chargers:
get:
summary: ''
operationId: getApiChargers
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: ''
operationId: postApiChargers
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/chargers/{id}':
get:
summary: ''
operationId: getApiChargersId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: ''
operationId: putApiChargersId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: ''
operationId: deleteApiChargersId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the charger.'
example: CHR-3
required: true
schema:
type: string
'/api/chargers/{id}/status':
get:
summary: ''
operationId: getApiChargersIdStatus
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the charger.'
example: CHR-3
required: true
schema:
type: string
'/api/chargers/hub/{hubId}':
get:
summary: ''
operationId: getApiChargersHubHubId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: hubId
description: ''
example: consequatur
required: true
schema:
type: string
/api/chargers/mapping:
get:
summary: ''
operationId: getApiChargersMapping
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/stations/mobile:
get:
summary: 'GET /api/stations/mobile - Get full station list for mobile app'
operationId: gETapistationsmobileGetFullStationListForMobileApp
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/stations/count:
get:
summary: 'GET /api/stations/count - Get total stations count'
operationId: gETapistationscountGetTotalStationsCount
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/stations:
get:
summary: 'GET /api/stations - Get all stations'
operationId: gETapistationsGetAllStations
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: 'POST /api/stations - Create new station'
operationId: pOSTapistationsCreateNewStation
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/stations/{id}':
get:
summary: 'GET /api/stations/:id - Get specific station'
operationId: gETapistationsidGetSpecificStation
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: 'PUT /api/stations/:id - Update station'
operationId: pUTapistationsidUpdateStation
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: 'DELETE /api/stations/:id - Delete station'
operationId: dELETEapistationsidDeleteStation
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the station.'
example: consequatur
required: true
schema:
type: string
'/api/stations/{id}/details':
get:
summary: 'GET /api/stations/:id/details - Get all details for a station'
operationId: gETapistationsiddetailsGetAllDetailsForAStation
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the station.'
example: consequatur
required: true
schema:
type: string
'/api/stations/{id}/chargers':
get:
summary: 'GET /api/stations/:id/chargers - Get all chargers for a station'
operationId: gETapistationsidchargersGetAllChargersForAStation
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the station.'
example: consequatur
required: true
schema:
type: string
/api/connectors:
get:
summary: ''
operationId: getApiConnectors
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: ''
operationId: postApiConnectors
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/connectors/{id}':
get:
summary: ''
operationId: getApiConnectorsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: ''
operationId: putApiConnectorsId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: ''
operationId: deleteApiConnectorsId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the connector.'
example: 1
required: true
schema:
type: integer
'/api/connectors/charger/{chargerId}':
get:
summary: ''
operationId: getApiConnectorsChargerChargerId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: CHR-3
required: true
schema:
type: string
/api/connectors/mapping:
get:
summary: ''
operationId: getApiConnectorsMapping
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/rfid:
get:
summary: 'GET /api/rfid - Get all RFID users'
operationId: gETapirfidGetAllRFIDUsers
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: 'POST /api/rfid - Create new RFID user'
operationId: pOSTapirfidCreateNewRFIDUser
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/rfid/{id}':
get:
summary: 'GET /api/rfid/:id - Get specific RFID user'
operationId: gETapirfididGetSpecificRFIDUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: 'PUT /api/rfid/:id - Update RFID user'
operationId: pUTapirfididUpdateRFIDUser
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: 'DELETE /api/rfid/:id - Delete RFID user'
operationId: dELETEapirfididDeleteRFIDUser
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the rfid.'
example: consequatur
required: true
schema:
type: string
/api/users:
get:
summary: ''
operationId: getApiUsers
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/clients:
get:
summary: 'GET /api/clients - Get all clients'
operationId: gETapiclientsGetAllClients
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: 'POST /api/clients - Create new client'
operationId: pOSTapiclientsCreateNewClient
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/clients/{id}':
get:
summary: 'GET /api/clients/:id - Get specific client'
operationId: gETapiclientsidGetSpecificClient
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: 'PUT /api/clients/:id - Update client'
operationId: pUTapiclientsidUpdateClient
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: 'DELETE /api/clients/:id - Delete client'
operationId: dELETEapiclientsidDeleteClient
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the client.'
example: 1
required: true
schema:
type: integer
/api/tariffs:
get:
summary: 'GET /api/tariffs - Get all tariffs'
operationId: gETapitariffsGetAllTariffs
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: 'POST /api/tariffs - Create new tariff'
operationId: pOSTapitariffsCreateNewTariff
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
'/api/tariffs/{id}':
get:
summary: 'GET /api/tariffs/:id - Get specific tariff'
operationId: gETapitariffsidGetSpecificTariff
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: 'PUT /api/tariffs/:id - Update tariff'
operationId: pUTapitariffsidUpdateTariff
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: 'DELETE /api/tariffs/:id - Delete tariff'
operationId: dELETEapitariffsidDeleteTariff
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the tariff.'
example: consequatur
required: true
schema:
type: string
/api/transactions:
get:
summary: 'GET /api/transactions - Get all transactions (basic and RFID sessions)'
operationId: gETapitransactionsGetAllTransactionsbasicAndRFIDSessions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/transactions/active:
get:
summary: 'GET /api/transactions/active - Get all active charging sessions'
operationId: gETapitransactionsactiveGetAllActiveChargingSessions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/transactions/stats:
get:
summary: 'GET /api/transactions/stats - Get transaction statistics'
operationId: gETapitransactionsstatsGetTransactionStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/transactions/charger/{chargerId}':
get:
summary: 'GET /api/transactions/charger/:chargerId - Get transactions for a specific charger'
operationId: gETapitransactionschargerchargerIdGetTransactionsForASpecificCharger
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: CHR-3
required: true
schema:
type: string
'/api/transactions/{id}':
get:
summary: 'GET /api/transactions/:id - Get specific transaction'
operationId: gETapitransactionsidGetSpecificTransaction
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the transaction.'
example: 23
required: true
schema:
type: integer
'/api/transactions/rfid/{id}':
get:
summary: 'GET /api/transactions/rfid/:id - Get specific RFID session'
operationId: gETapitransactionsrfididGetSpecificRFIDSession
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the rfid.'
example: consequatur
required: true
schema:
type: string
/api/payments:
get:
summary: 'GET /api/payments - Get all payments with required details'
operationId: gETapipaymentsGetAllPaymentsWithRequiredDetails
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/payments/{id}':
get:
summary: 'GET /api/payments/{id} - Get specific payment details'
operationId: gETapipaymentsidGetSpecificPaymentDetails
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: 'PUT /api/payments/{id} - Update payment information'
operationId: pUTapipaymentsidUpdatePaymentInformation
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the payment.'
example: consequatur
required: true
schema:
type: string
/api/dashboard:
get:
summary: 'GET /api/dashboard - Get dashboard statistics'
operationId: gETapidashboardGetDashboardStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/dashboard/summary:
get:
summary: 'GET /api/dashboard/summary - Enhanced dashboard summary'
operationId: gETapidashboardsummaryEnhancedDashboardSummary
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/dashboard/revenue-trend:
get:
summary: 'GET /api/dashboard/revenue-trend - Revenue trend data for charts'
operationId: gETapidashboardrevenueTrendRevenueTrendDataForCharts
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/dashboard/energy-by-station:
get:
summary: 'GET /api/dashboard/energy-by-station - Energy consumption by station'
operationId: gETapidashboardenergyByStationEnergyConsumptionByStation
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/dashboard/recent-sessions:
get:
summary: 'GET /api/dashboard/recent-sessions - Recent charging sessions'
operationId: gETapidashboardrecentSessionsRecentChargingSessions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/dashboard/stats:
get:
summary: 'GET /api/dashboard/stats - Comprehensive dashboard statistics'
operationId: gETapidashboardstatsComprehensiveDashboardStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/wallet:
get:
summary: ''
operationId: getApiWallet
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/wallet/recharge:
post:
summary: ''
operationId: postApiWalletRecharge
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
amount:
type: number
description: 'Must be at least 0.01. Must not be greater than 100000.'
example: 21
description:
type: string
description: 'Must not be greater than 255 characters.'
example: 'Dolorum amet iste laborum eius est dolor.'
nullable: true
required:
- amount
security: []
/api/wallet/transactions:
get:
summary: ''
operationId: getApiWalletTransactions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 21
nullable: true
type:
type: string
description: ''
example: debit
enum:
- credit
- debit
- refund
- penalty
nullable: true
security: []
/api/wallet/status:
put:
summary: ''
operationId: putApiWalletStatus
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: ''
example: suspended
enum:
- active
- suspended
- blocked
credit_limit:
type: number
description: 'Must be at least 0. Must not be greater than 100000.'
example: 21
nullable: true
required:
- status
security: []
/api/sessions:
get:
summary: ''
operationId: getApiSessions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: ''
example: interrupted
enum:
- active
- completed
- interrupted
- failed
nullable: true
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 21
nullable: true
security: []
post:
summary: ''
operationId: postApiSessions
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The id of an existing record in the chargers table.'
example: consequatur
connector_id:
type: string
description: 'The id of an existing record in the connectors table.'
example: consequatur
rfid_user_id:
type: string
description: 'The id of an existing record in the rfid_users table.'
example: null
nullable: true
required:
- charger_id
- connector_id
security: []
/api/sessions/active:
get:
summary: ''
operationId: getApiSessionsActive
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/sessions/statistics:
get:
summary: ''
operationId: getApiSessionsStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/sessions/history:
get:
summary: ''
operationId: getApiSessionsHistory
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:39'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 13
nullable: true
security: []
'/api/sessions/{id}':
get:
summary: ''
operationId: getApiSessionsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the session.'
example: consequatur
required: true
schema:
type: string
'/api/sessions/{id}/end':
post:
summary: ''
operationId: postApiSessionsIdEnd
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
energy_consumed:
type: number
description: 'Must be at least 0.'
example: 73
cost:
type: number
description: 'Must be at least 0.'
example: 45
stop_reason:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: true
transaction_id:
type: string
description: 'The id of an existing record in the transactions table.'
example: null
nullable: true
required:
- energy_consumed
- cost
security: []
parameters:
-
in: path
name: id
description: 'The ID of the session.'
example: consequatur
required: true
schema:
type: string
/api/hubs:
get:
summary: ''
operationId: getApiHubs
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: ''
operationId: postApiHubs
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/hubs/mapping:
get:
summary: ''
operationId: getApiHubsMapping
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/hubs/client/{clientId}':
get:
summary: ''
operationId: getApiHubsClientClientId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: clientId
description: ''
example: 1
required: true
schema:
type: integer
'/api/hubs/{id}':
get:
summary: ''
operationId: getApiHubsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: ''
operationId: putApiHubsId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
delete:
summary: ''
operationId: deleteApiHubsId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the hub.'
example: consequatur
required: true
schema:
type: string
'/api/hubs/{hubId}/users':
get:
summary: ''
operationId: getApiHubsHubIdUsers
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: ''
operationId: postApiHubsHubIdUsers
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: hubId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/hubs/{hubId}/users/{userId}':
delete:
summary: ''
operationId: deleteApiHubsHubIdUsersUserId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: hubId
description: ''
example: consequatur
required: true
schema:
type: string
-
in: path
name: userId
description: ''
example: 1
required: true
schema:
type: integer
'/api/hubs/{hubId}/transactions':
get:
summary: ''
operationId: getApiHubsHubIdTransactions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: hubId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/hubs/{hubId}/charger-operations':
get:
summary: ''
operationId: getApiHubsHubIdChargerOperations
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: hubId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/ocpp/remote-start/{chargerId}':
post:
summary: 'POST /api/ocpp/remote-start/:chargerId - Send RemoteStartTransaction'
operationId: pOSTapiocppremoteStartchargerIdSendRemoteStartTransaction
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/ocpp/remote-stop/{chargerId}':
post:
summary: 'POST /api/ocpp/remote-stop/:chargerId - Send RemoteStopTransaction'
operationId: pOSTapiocppremoteStopchargerIdSendRemoteStopTransaction
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/ocpp/reset/{chargerId}':
post:
summary: 'POST /api/ocpp/reset/:chargerId - Send Reset command'
operationId: pOSTapiocppresetchargerIdSendResetCommand
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/ocpp/unlock-connector/{chargerId}':
post:
summary: 'POST /api/ocpp/unlock-connector/:chargerId - Send UnlockConnector'
operationId: pOSTapiocppunlockConnectorchargerIdSendUnlockConnector
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/ocpp/logs/{chargerId}':
get:
summary: 'GET /api/ocpp/logs/:chargerId - Get OCPP logs for a charger'
operationId: gETapiocpplogschargerIdGetOCPPLogsForACharger
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
/api/ocpp/logs:
get:
summary: 'GET /api/ocpp/logs - Get all OCPP logs with pagination'
operationId: gETapiocpplogsGetAllOCPPLogsWithPagination
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/ocpp/stats:
get:
summary: 'GET /api/ocpp/stats - Get OCPP statistics'
operationId: gETapiocppstatsGetOCPPStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
'/api/ocpp/log/{id}':
get:
summary: 'GET /api/ocpp/log/:id - Get single OCPP log detail'
operationId: gETapiocpplogidGetSingleOCPPLogDetail
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the log.'
example: consequatur
required: true
schema:
type: string
/api/ocpp/register-mock:
post:
summary: 'POST /api/ocpp/register-mock - Register a charger with mock connection for testing'
operationId: pOSTapiocppregisterMockRegisterAChargerWithMockConnectionForTesting
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/ocpp-v2/start-charging:
post:
summary: ''
operationId: postApiOcppV2StartCharging
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: ''
example: consequatur
connector_id:
type: integer
description: ''
example: 17
idTag:
type: string
description: ''
example: consequatur
nullable: true
required:
- charger_id
- connector_id
security: []
/api/ocpp-v2/stop-charging:
post:
summary: ''
operationId: postApiOcppV2StopCharging
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: ''
example: consequatur
transaction_id:
type: integer
description: ''
example: 17
required:
- charger_id
- transaction_id
security: []
'/api/ocpp-v2/charger-status/{chargerId}':
get:
summary: ''
operationId: getApiOcppV2ChargerStatusChargerId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
/api/ocpp-v2/transaction-history:
get:
summary: ''
operationId: getApiOcppV2TransactionHistory
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
charger_id:
type: integer
description: ''
example: 17
nullable: true
status:
type: string
description: ''
example: cancelled
enum:
- initiated
- ongoing
- charging
- completed
- cancelled
nullable: true
from:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
to:
type: string
description: 'Must be a valid date. Must be a date after or equal to from.'
example: '2107-06-25'
nullable: true
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 500.'
example: 13
nullable: true
security: []
/api/ocpp-v2/meter-values:
get:
summary: ''
operationId: getApiOcppV2MeterValues
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
charger_id:
type: integer
description: ''
example: 17
nullable: true
transaction_id:
type: integer
description: ''
example: 17
nullable: true
from:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
to:
type: string
description: 'Must be a valid date. Must be a date after or equal to from.'
example: '2107-06-25'
nullable: true
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 1000.'
example: 13
nullable: true
security: []
/api/ocpp-v2/connected-chargers:
get:
summary: ''
operationId: getApiOcppV2ConnectedChargers
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/ocpp-v2/active-transactions:
get:
summary: ''
operationId: getApiOcppV2ActiveTransactions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/reports/sessions:
get:
summary: 'Sessions Report - Analyze charger usage patterns, user behavior, and operational efficiency'
operationId: sessionsReportAnalyzeChargerUsagePatternsUserBehaviorAndOperationalEfficiency
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
hub_id:
type: string
description: 'The id of an existing record in the hubs table.'
example: null
nullable: true
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: null
nullable: true
status:
type: string
description: ''
example: interrupted
enum:
- active
- completed
- interrupted
- failed
nullable: true
required:
- start_date
- end_date
security: []
/api/reports/sessions/export:
get:
summary: 'Export Sessions Report - Download CSV file of sessions data'
operationId: exportSessionsReportDownloadCSVFileOfSessionsData
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
hub_id:
type: string
description: 'The id of an existing record in the hubs table.'
example: null
nullable: true
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: null
nullable: true
status:
type: string
description: ''
example: active
enum:
- active
- completed
- interrupted
- failed
nullable: true
required:
- start_date
- end_date
security: []
/api/reports/energy:
get:
summary: 'Energy Report - Monitor total energy consumption across locations, hubs, and units'
operationId: energyReportMonitorTotalEnergyConsumptionAcrossLocationsHubsAndUnits
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/reports/revenue:
get:
summary: 'Revenue Report - Track revenue generation for business decisions'
operationId: revenueReportTrackRevenueGenerationForBusinessDecisions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
hub_id:
type: string
description: 'The id of an existing record in the hubs table.'
example: null
nullable: true
group_by:
type: string
description: ''
example: location
enum:
- location
- hub
- charger
- daily
nullable: true
required:
- start_date
- end_date
security: []
/api/reports/client-location:
get:
summary: 'Client & Location Reports - Advanced filtering and reporting'
operationId: clientLocationReportsAdvancedFilteringAndReporting
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
location_id:
type: string
description: 'The id of an existing record in the charging_stations table.'
example: null
nullable: true
required:
- start_date
- end_date
security: []
/api/reports/commission:
get:
summary: 'Commission Reports - Profit, commissions applied, client earnings, platform revenue'
operationId: commissionReportsProfitCommissionsAppliedClientEarningsPlatformRevenue
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
hub_id:
type: string
description: 'The id of an existing record in the hubs table.'
example: null
nullable: true
required:
- start_date
- end_date
security: []
/api/firmware/versions:
get:
summary: 'Get firmware version visibility across all devices'
operationId: getFirmwareVersionVisibilityAcrossAllDevices
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
hub_id:
type: string
description: 'The id of an existing record in the hubs table.'
example: null
nullable: true
status:
type: string
description: ''
example: available
enum:
- available
- charging
- faulted
- unavailable
nullable: true
security: []
'/api/firmware/versions/{chargerId}':
get:
summary: 'Get firmware version details for a specific charger'
operationId: getFirmwareVersionDetailsForASpecificCharger
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/firmware/update/{chargerId}':
post:
summary: 'Trigger firmware update for a specific charger'
operationId: triggerFirmwareUpdateForASpecificCharger
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
firmware_version:
type: string
description: ''
example: consequatur
firmware_url:
type: string
description: 'Must be a valid URL.'
example: 'https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem'
priority:
type: string
description: ''
example: high
enum:
- low
- medium
- high
nullable: true
retry_count:
type: integer
description: 'Must be at least 0. Must not be greater than 5.'
example: 4
nullable: true
required:
- firmware_version
- firmware_url
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
/api/firmware/bulk-update:
post:
summary: 'Trigger firmware update for multiple chargers (bulk update)'
operationId: triggerFirmwareUpdateForMultipleChargersbulkUpdate
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_ids:
type: array
description: 'The charger_id of an existing record in the chargers table.'
example: null
items:
type: string
firmware_version:
type: string
description: ''
example: consequatur
firmware_url:
type: string
description: 'Must be a valid URL.'
example: 'https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem'
priority:
type: string
description: ''
example: high
enum:
- low
- medium
- high
nullable: true
required:
- firmware_version
- firmware_url
security: []
'/api/firmware/status/{chargerId}':
get:
summary: 'Get firmware update status for a charger'
operationId: getFirmwareUpdateStatusForACharger
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: chargerId
description: ''
example: consequatur
required: true
schema:
type: string
/api/firmware/outdated:
get:
summary: 'Get chargers that need firmware updates (outdated versions)'
operationId: getChargersThatNeedFirmwareUpdatesoutdatedVersions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
target_version:
type: string
description: ''
example: consequatur
required:
- target_version
security: []
/api/ocpp-integration/logs:
get:
summary: 'Get OCPP logs for a charger'
operationId: getOCPPLogsForACharger
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
message_type:
type: string
description: ''
example: consequatur
nullable: true
required:
- charger_id
security: []
/api/ocpp-integration/send-command:
post:
summary: 'Send OCPP command to charger'
operationId: sendOCPPCommandToCharger
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
charger_id:
type: string
description: 'The charger_id of an existing record in the chargers table.'
example: consequatur
command:
type: string
description: ''
example: ChangeConfiguration
enum:
- Reset
- Unlock
- ChangeAvailability
- ChangeConfiguration
parameters:
type: object
description: ''
example: null
properties: { }
nullable: true
required:
- charger_id
- command
security: []
/api/commissions:
get:
summary: 'Get all commissions'
operationId: getAllCommissions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: 'Create a new commission'
operationId: createANewCommission
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
applied_to:
type: string
description: ''
example: hub
enum:
- client
- hub
client_id:
type: string
description: 'This field is required when applied_to is client. The id of an existing record in the clients table.'
example: null
hub_id:
type: string
description: 'This field is required when applied_to is hub. The id of an existing record in the hubs table.'
example: null
commission_type:
type: string
description: ''
example: fixed
enum:
- percentage
- fixed
commission_value:
type: number
description: 'Must be at least 0.'
example: 73
is_active:
type: boolean
description: ''
example: true
notes:
type: string
description: ''
example: consequatur
nullable: true
required:
- applied_to
- commission_type
- commission_value
security: []
/api/commissions/summary:
get:
summary: 'Get commission summary statistics'
operationId: getCommissionSummaryStatistics
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
/api/commissions/history:
get:
summary: 'Get commission history'
operationId: getCommissionHistory
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
commission_id:
type: string
description: 'The id of an existing record in the commissions table.'
example: null
nullable: true
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
security: []
'/api/commissions/client/{clientId}':
get:
summary: 'Get commission for a specific client'
operationId: getCommissionForASpecificClient
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: clientId
description: ''
example: 1
required: true
schema:
type: integer
'/api/commissions/hub/{hubId}':
get:
summary: 'Get commission for a specific hub'
operationId: getCommissionForASpecificHub
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: hubId
description: ''
example: consequatur
required: true
schema:
type: string
'/api/commissions/{id}':
get:
summary: 'Get a specific commission'
operationId: getASpecificCommission
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
put:
summary: 'Update an existing commission'
operationId: updateAnExistingCommission
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
commission_type:
type: string
description: ''
example: fixed
enum:
- percentage
- fixed
nullable: true
commission_value:
type: number
description: 'Must be at least 0.'
example: 73
nullable: true
is_active:
type: boolean
description: ''
example: false
nullable: true
notes:
type: string
description: ''
example: consequatur
nullable: true
change_reason:
type: string
description: ''
example: consequatur
required:
- change_reason
security: []
delete:
summary: 'Delete a commission'
operationId: deleteACommission
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the commission.'
example: consequatur
required: true
schema:
type: string
'/api/commissions/{id}/toggle-status':
post:
summary: 'Activate/Deactivate commission'
operationId: activateDeactivateCommission
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
is_active:
type: boolean
description: ''
example: false
change_reason:
type: string
description: ''
example: consequatur
required:
- is_active
- change_reason
security: []
parameters:
-
in: path
name: id
description: 'The ID of the commission.'
example: consequatur
required: true
schema:
type: string
/api/business-dashboard/summary:
get:
summary: 'Get overall dashboard summary'
operationId: getOverallDashboardSummary
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
security: []
/api/business-dashboard/clients:
get:
summary: 'Get client-wise dashboard data'
operationId: getClientWiseDashboardData
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
client_id:
type: string
description: 'The id of an existing record in the clients table.'
example: null
nullable: true
security: []
/api/business-dashboard/hubs:
get:
summary: 'Get hub-wise dashboard data'
operationId: getHubWiseDashboardData
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:40'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
hub_id:
type: string
description: 'The id of an existing record in the hubs table.'
example: null
nullable: true
security: []
'/api/business-dashboard/clients/{id}':
get:
summary: 'Get detailed dashboard for a specific client'
operationId: getDetailedDashboardForASpecificClient
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:41'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
security: []
parameters:
-
in: path
name: id
description: 'The ID of the client.'
example: 1
required: true
schema:
type: integer
'/api/business-dashboard/hubs/{id}':
get:
summary: 'Get detailed dashboard for a specific hub'
operationId: getDetailedDashboardForASpecificHub
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:41'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
security: []
parameters:
-
in: path
name: id
description: 'The ID of the hub.'
example: consequatur
required: true
schema:
type: string
/api/business-dashboard/top-clients:
get:
summary: 'Get top performing clients'
operationId: getTopPerformingClients
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:41'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 50.'
example: 13
nullable: true
security: []
/api/business-dashboard/top-hubs:
get:
summary: 'Get top performing hubs'
operationId: getTopPerformingHubs
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
start_date:
type: string
description: 'Must be a valid date.'
example: '2026-05-27T07:22:41'
nullable: true
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2107-06-25'
nullable: true
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 50.'
example: 13
nullable: true
security: []
/api/complaints:
get:
summary: ''
operationId: getApiComplaints
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
post:
summary: ''
operationId: postApiComplaints
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subject:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
description:
type: string
description: 'Must not be greater than 2000 characters.'
example: 'Dolores molestias ipsam sit.'
required:
- subject
- description
security: []
'/api/complaints/{id}':
get:
summary: ''
operationId: getApiComplaintsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Access token required'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Access token required'
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the complaint.'
example: consequatur
required: true
schema:
type: string
/api/admin/charger-configurations:
get:
summary: 'API: Get all charger configurations with details'
operationId: aPIGetAllChargerConfigurationsWithDetails
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/admin/charger-configurations/manufacturers:
get:
summary: 'API: Get manufacturers for admin dropdown'
operationId: aPIGetManufacturersForAdminDropdown
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/admin/charger-configurations/models:
get:
summary: 'API: Get models by manufacturer for admin dropdown'
operationId: aPIGetModelsByManufacturerForAdminDropdown
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/admin/charger-configurations/connector-types:
get:
summary: 'API: Get connector types for admin dropdown'
operationId: aPIGetConnectorTypesForAdminDropdown
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/admin/charger-configurations/current-types:
get:
summary: 'API: Get current types for admin dropdown'
operationId: aPIGetCurrentTypesForAdminDropdown
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
'/api/admin/charger-configurations/{id}':
get:
summary: 'API: Get single charger configuration details'
operationId: aPIGetSingleChargerConfigurationDetails
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
delete:
summary: 'API: Delete charger configuration'
operationId: aPIDeleteChargerConfiguration
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
parameters:
-
in: path
name: id
description: 'The ID of the charger configuration.'
example: consequatur
required: true
schema:
type: string
/api/wallet/deduct:
post:
summary: ''
operationId: postApiWalletDeduct
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The id of an existing record in the users table.'
example: null
nullable: true
amount:
type: number
description: 'Must be at least 0.01.'
example: 73
description:
type: string
description: 'Must not be greater than 255 characters.'
example: 'Dolorum amet iste laborum eius est dolor.'
nullable: true
reference_type:
type: string
description: 'Must not be greater than 50 characters.'
example: dtdsufvyvddqamniihfqc
nullable: true
reference_id:
type: integer
description: ''
example: 17
nullable: true
required:
- amount
security: []