MENU navbar-image

Introduction

API documentation for OCPP Charging Point Management System

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

This API is not authenticated.

Endpoints

GET api/health

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/health" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/health"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": true,
    "status": "healthy",
    "timestamp": "2026-05-27T07:22:36+00:00",
    "version": "1.0.0"
}
 

Request      

GET api/health

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/ocpp/remote-start - Send RemoteStartTransaction to connected charger Uses new ConnectionRegistry for ReactPHP WebSocket connections

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/remote-start" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/remote-start"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/remote-start

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/ocpp/remote-stop - Send RemoteStopTransaction to connected charger Uses new ConnectionRegistry for ReactPHP WebSocket connections

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/remote-stop" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/remote-stop"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/remote-stop

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/mobile/register

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"vmqeopfuudtdsufvyvddq\",
    \"email\": \"kunde.eloisa@example.com\",
    \"phone\": \"hfqcoynlazghdtqtq\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "vmqeopfuudtdsufvyvddq",
    "email": "kunde.eloisa@example.com",
    "phone": "hfqcoynlazghdtqtq"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/register

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: vmqeopfuudtdsufvyvddq

email   string     

Must be a valid email address. Example: kunde.eloisa@example.com

phone   string     

Must not be greater than 20 characters. Example: hfqcoynlazghdtqtq

POST api/mobile/send-otp

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/send-otp" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"phone\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/send-otp"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "phone": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/send-otp

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

phone   string     

Example: consequatur

POST api/mobile/verify-otp

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/verify-otp" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"phone\": \"consequatur\",
    \"otp\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/verify-otp"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "phone": "consequatur",
    "otp": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/verify-otp

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

phone   string     

Example: consequatur

otp   string     

Example: consequatur

POST api/mobile/resend-otp

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/resend-otp" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"phone\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/resend-otp"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "phone": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/resend-otp

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

phone   string     

Example: consequatur

Step 1: Initiate account linking process Generates a temporary linking session for unverified account recovery

POST /api/mobile/account-linking/initiate Body: { "phone": "9840753503" } Response: linking_session_id for use in verification

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/account-linking/initiate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"phone\": \"vmqeopfuudtdsufvy\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/account-linking/initiate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "phone": "vmqeopfuudtdsufvy"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/account-linking/initiate

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

phone   string     

Must not be greater than 20 characters. Example: vmqeopfuudtdsufvy

Step 2: Verify OTP for account linking Validates the OTP sent to the registered phone number

POST /api/mobile/account-linking/verify-otp Body: { "linking_session_id": "link_xxx", "phone": "9840753503", "otp": "1234" }

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/account-linking/verify-otp" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"linking_session_id\": \"consequatur\",
    \"phone\": \"mqeopfuudtdsufvyv\",
    \"otp\": \"8107\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/account-linking/verify-otp"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "linking_session_id": "consequatur",
    "phone": "mqeopfuudtdsufvyv",
    "otp": "8107"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/account-linking/verify-otp

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

linking_session_id   string     

Example: consequatur

phone   string     

Must not be greater than 20 characters. Example: mqeopfuudtdsufvyv

otp   string     

Must be 4 digits. Example: 8107

POST /api/mobile/account-linking/link Body: { "linking_session_id": "link_xxx", "name": "Wahid A", "email": "newemail@example.com", // optional - can add alternate email "action": "update" | "login_only" }

Actions:

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/account-linking/link" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"linking_session_id\": \"consequatur\",
    \"name\": \"mqeopfuudtdsufvyvddqa\",
    \"email\": \"eloisa.harber@example.com\",
    \"action\": \"update\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/account-linking/link"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "linking_session_id": "consequatur",
    "name": "mqeopfuudtdsufvyvddqa",
    "email": "eloisa.harber@example.com",
    "action": "update"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Cancel account linking session

POST /api/mobile/account-linking/cancel Body: { "linking_session_id": "link_xxx" }

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/account-linking/cancel" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"linking_session_id\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/account-linking/cancel"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "linking_session_id": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/account-linking/cancel

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

linking_session_id   string     

Example: consequatur

GET api/mobile/profile

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/profile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/profile"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/profile

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/mobile/update-profile

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/update-profile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"vmqeopfuudtdsufvyvddq\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/update-profile"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "vmqeopfuudtdsufvyvddq"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/update-profile

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string  optional    

Must not be greater than 255 characters. Example: vmqeopfuudtdsufvyvddq

email   string  optional    
phone   string  optional    

POST api/mobile/add-vehicle

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/add-vehicle" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"manufacturer\": \"vmqeopfuudtdsufvyvddq\",
    \"model\": \"amniihfqcoynlazghdtqt\",
    \"registration_number\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/add-vehicle"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "manufacturer": "vmqeopfuudtdsufvyvddq",
    "model": "amniihfqcoynlazghdtqt",
    "registration_number": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/add-vehicle

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

manufacturer   string     

Must not be greater than 255 characters. Example: vmqeopfuudtdsufvyvddq

model   string     

Must not be greater than 255 characters. Example: amniihfqcoynlazghdtqt

registration_number   string     

Example: consequatur

GET api/mobile/vehicles

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/vehicles" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/vehicles"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/vehicles

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/mobile/update-vehicle/{id}

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/update-vehicle/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"manufacturer\": \"vmqeopfuudtdsufvyvddq\",
    \"model\": \"amniihfqcoynlazghdtqt\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/update-vehicle/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "manufacturer": "vmqeopfuudtdsufvyvddq",
    "model": "amniihfqcoynlazghdtqt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/update-vehicle/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the update vehicle. Example: consequatur

Body Parameters

manufacturer   string     

Must not be greater than 255 characters. Example: vmqeopfuudtdsufvyvddq

model   string     

Must not be greater than 255 characters. Example: amniihfqcoynlazghdtqt

registration_number   string  optional    

POST api/mobile/delete-vehicle/{id}

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/delete-vehicle/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/delete-vehicle/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/delete-vehicle/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the delete vehicle. Example: consequatur

GET api/mobile/nearby-stations

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/nearby-stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/nearby-stations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/nearby-stations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/chargers/station/{stationId} Get chargers by station ID

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/station-chargers/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/station-chargers/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/station-chargers/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station charger. Example: consequatur

GET /api/mobile/stations - Get all stations for EVtron mobile app

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/stations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/stations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/mobile/stations/:id - Get detailed station information for EVtron mobile app

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/stations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/stations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/stations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

Get manufacturers list

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/scan/manufacturers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/manufacturers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/scan/manufacturers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get models list based on manufacturer

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/scan/models" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/models"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/scan/models

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get connector types list

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/scan/connector-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/connector-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/scan/connector-types

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get current types list (AC/DC)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/scan/current-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/current-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/scan/current-types

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Save scan data

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/scan/save" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/save"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/scan/save

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Process scanner data (QR scan or manual ID entry)

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/scan/process" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/process"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/scan/process

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Validate charger before starting charging session Performs 10 critical validation checks

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/scan/validate-next" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/validate-next"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/scan/validate-next

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get saved charger details for the authenticated user

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/scan/saved" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/saved"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/scan/saved

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/mobile/scan/test

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/scan/test" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/scan/test"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/scan/test

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/mobile/wishlist - Get user's wishlist with station details

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/wishlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/wishlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/wishlist

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/mobile/wishlist - Add station to wishlist

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/wishlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/wishlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/wishlist

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

PUT /api/mobile/wishlist/{id} - Update wishlist item

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/mobile/wishlist/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/wishlist/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/mobile/wishlist/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the wishlist. Example: consequatur

DELETE /api/mobile/wishlist/{id} - Remove station from wishlist

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/mobile/wishlist/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/wishlist/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/mobile/wishlist/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the wishlist. Example: consequatur

GET /api/mobile/wishlist/check/{stationId} - Check if station is in user's wishlist

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/wishlist/check/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/wishlist/check/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/wishlist/check/{stationId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

stationId   string     

Example: consequatur

GET /api/mobile/wishlist/favorites - Get favorite stations only

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/wishlist/favorites" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/wishlist/favorites"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/wishlist/favorites

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get charging history for the last 10 days

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging-history" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging-history"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging-history

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get charging history summary statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging-history/summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging-history/summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging-history/summary

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get charging history for a specific charger

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging-history/charger/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging-history/charger/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging-history/charger/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

Get weekly charging percentage data (Monday to Sunday)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging-history/weekly-percentage" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging-history/weekly-percentage"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging-history/weekly-percentage

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/mobile/complaints

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/complaints" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"subject\": \"vmqeopfuudtdsufvyvddq\",
    \"description\": \"Dolores molestias ipsam sit.\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/complaints"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "subject": "vmqeopfuudtdsufvyvddq",
    "description": "Dolores molestias ipsam sit."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/mobile/complaints

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

subject   string     

Must not be greater than 255 characters. Example: vmqeopfuudtdsufvyvddq

description   string     

Must not be greater than 2000 characters. Example: Dolores molestias ipsam sit.

GET api/mobile/complaints

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/complaints" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/complaints"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/complaints

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/mobile/complaints/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/complaints/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/complaints/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/complaints/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the complaint. Example: consequatur

Start a charging session POST /api/mobile/charging/start

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/charging/start" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging/start"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/charging/start

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Stop an active charging session POST /api/mobile/charging/stop/{session_id}

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/mobile/charging/stop/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging/stop/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/mobile/charging/stop/{sessionId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

sessionId   string     

Example: consequatur

Get active charging session details GET /api/mobile/charging/current

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging/current" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging/current"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging/current

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get charging session history GET /api/mobile/charging/history

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging/history" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging/history"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging/history

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get live charging session data (real-time polling) GET /api/mobile/charging/live

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/mobile/charging/live" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/mobile/charging/live"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/mobile/charging/live

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/mobile/stations - Get all stations for EVtron mobile app

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/stations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "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"
        }
    ]
}
 

Request      

GET api/public/mobile/stations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/mobile/stations/:id - Get detailed station information for EVtron mobile app

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/stations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/stations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Failed to get station details"
}
 

Request      

GET api/public/mobile/stations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

Get manufacturers list

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/scan/manufacturers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/manufacturers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "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"
}
 

Request      

GET api/public/mobile/scan/manufacturers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get models list based on manufacturer

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/scan/models" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/models"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Validation failed",
    "message": {
        "manufacturer_id": [
            "The manufacturer id field is required."
        ]
    }
}
 

Request      

GET api/public/mobile/scan/models

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get connector types list

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/scan/connector-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/connector-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "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"
}
 

Request      

GET api/public/mobile/scan/connector-types

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get current types list (AC/DC)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/scan/current-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/current-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "AC",
            "description": "Alternating Current"
        },
        {
            "id": 2,
            "name": "DC",
            "description": "Direct Current"
        }
    ],
    "message": "Current types retrieved successfully"
}
 

Request      

GET api/public/mobile/scan/current-types

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get saved charger details for the authenticated user

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/scan/saved" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/saved"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": true,
    "data": [],
    "message": "No saved charger details (user not authenticated)"
}
 

Request      

GET api/public/mobile/scan/saved

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Save scan data

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/public/mobile/scan/save" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/save"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/public/mobile/scan/save

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Process scanner data (QR scan or manual ID entry)

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/public/mobile/scan/process" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/scan/process"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/public/mobile/scan/process

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get charging history for the last 10 days

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/public/mobile/charging-history" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/public/mobile/charging-history"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "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"
    }
}
 

Request      

GET api/public/mobile/charging-history

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/auth/register - Register new user

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/auth/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/auth/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/auth/register

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/auth/login - Login user

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/auth/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/auth/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/auth/login

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/auth/logout - Logout user

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/auth/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/auth/logout"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/auth/logout

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/auth/refresh - Get user info from token

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/auth/refresh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/auth/refresh"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/auth/refresh

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/clients/list - Get all clients (public endpoint for dropdown)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/clients/list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "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"
        }
    ]
}
 

Request      

GET api/clients/list

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Handle OCPP Boot Notification

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-charger/boot-notification" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"firmware_version\": \"consequatur\",
    \"serial_number\": \"consequatur\",
    \"model\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-charger/boot-notification"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "firmware_version": "consequatur",
    "serial_number": "consequatur",
    "model": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-charger/boot-notification

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

firmware_version   string     

Example: consequatur

serial_number   string     

Example: consequatur

model   string     

Example: consequatur

Handle OCPP Heartbeat

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-charger/heartbeat" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-charger/heartbeat"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-charger/heartbeat

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

Handle OCPP Status Notification

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-charger/status-notification" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"connector_id\": 17,
    \"status\": \"Available\",
    \"error_code\": \"consequatur\",
    \"timestamp\": \"2026-05-27T07:22:38\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-charger/status-notification"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "connector_id": 17,
    "status": "Available",
    "error_code": "consequatur",
    "timestamp": "2026-05-27T07:22:38"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-charger/status-notification

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

connector_id   integer     

Example: 17

status   string     

Example: Available

Must be one of:
  • Available
  • Preparing
  • Charging
  • Finishing
  • Faulted
  • Unavailable
error_code   string  optional    

Example: consequatur

timestamp   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:38

Handle OCPP Start Transaction

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-charger/start-transaction" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"connector_id\": 17,
    \"id_tag\": \"consequatur\",
    \"meter_start\": 17,
    \"timestamp\": \"2026-05-27T07:22:38\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-charger/start-transaction"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "connector_id": 17,
    "id_tag": "consequatur",
    "meter_start": 17,
    "timestamp": "2026-05-27T07:22:38"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-charger/start-transaction

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

connector_id   integer     

Example: 17

id_tag   string     

Example: consequatur

meter_start   integer     

Example: 17

timestamp   string     

Must be a valid date. Example: 2026-05-27T07:22:38

Handle OCPP Stop Transaction

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-charger/stop-transaction" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transaction_id\": \"consequatur\",
    \"meter_stop\": 17,
    \"timestamp\": \"2026-05-27T07:22:38\",
    \"reason\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-charger/stop-transaction"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "transaction_id": "consequatur",
    "meter_stop": 17,
    "timestamp": "2026-05-27T07:22:38",
    "reason": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-charger/stop-transaction

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

transaction_id   string     

The id of an existing record in the transactions table. Example: consequatur

meter_stop   integer     

Example: 17

timestamp   string     

Must be a valid date. Example: 2026-05-27T07:22:38

reason   string  optional    

Example: consequatur

Handle OCPP Meter Values

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-charger/meter-values" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"connector_id\": 17,
    \"meter_value\": []
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-charger/meter-values"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "connector_id": 17,
    "meter_value": []
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-charger/meter-values

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

connector_id   integer     

Example: 17

transaction_id   string  optional    

The id of an existing record in the transactions table.

meter_value   object     

GET api/chargers

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/chargers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/chargers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/chargers

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/chargers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/chargers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/chargers/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/chargers/CHR-3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers/CHR-3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/chargers/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the charger. Example: CHR-3

GET api/chargers/{id}/status

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/chargers/CHR-3/status" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers/CHR-3/status"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/chargers/{id}/status

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the charger. Example: CHR-3

PUT api/chargers/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/chargers/CHR-3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers/CHR-3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/chargers/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the charger. Example: CHR-3

DELETE api/chargers/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/chargers/CHR-3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers/CHR-3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/chargers/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the charger. Example: CHR-3

GET api/chargers/hub/{hubId}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/chargers/hub/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers/hub/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/chargers/hub/{hubId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

GET api/chargers/mapping

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/chargers/mapping" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/chargers/mapping"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/chargers/mapping

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/stations/mobile - Get full station list for mobile app

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/stations/mobile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/mobile"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/stations/mobile

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/stations/count - Get total stations count

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/stations/count" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/count"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/stations/count

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/stations - Get all stations

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/stations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/stations - Create new station

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/stations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/stations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/stations/:id - Get specific station

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/stations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/stations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

GET /api/stations/:id/details - Get all details for a station

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/stations/consequatur/details" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/consequatur/details"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/stations/{id}/details

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

GET /api/stations/:id/chargers - Get all chargers for a station

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/stations/consequatur/chargers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/consequatur/chargers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/stations/{id}/chargers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

PUT /api/stations/:id - Update station

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/stations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/stations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

DELETE /api/stations/:id - Delete station

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/stations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/stations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/stations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the station. Example: consequatur

GET api/connectors

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/connectors" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/connectors

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/connectors

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/connectors" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/connectors

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/connectors/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/connectors/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/connectors/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the connector. Example: 1

PUT api/connectors/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/connectors/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/connectors/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the connector. Example: 1

DELETE api/connectors/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/connectors/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/connectors/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the connector. Example: 1

GET api/connectors/charger/{chargerId}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/connectors/charger/CHR-3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors/charger/CHR-3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/connectors/charger/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: CHR-3

GET api/connectors/mapping

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/connectors/mapping" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/connectors/mapping"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/connectors/mapping

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/rfid - Get all RFID users

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/rfid" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/rfid"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/rfid

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/rfid - Create new RFID user

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/rfid" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/rfid"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/rfid

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/rfid/:id - Get specific RFID user

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/rfid/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/rfid/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/rfid/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the rfid. Example: consequatur

PUT /api/rfid/:id - Update RFID user

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/rfid/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/rfid/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/rfid/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the rfid. Example: consequatur

DELETE /api/rfid/:id - Delete RFID user

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/rfid/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/rfid/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/rfid/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the rfid. Example: consequatur

GET api/users

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/users

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/clients - Get all clients

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/clients

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/clients - Create new client

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/clients

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/clients/:id - Get specific client

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/clients/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/clients/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the client. Example: 1

PUT /api/clients/:id - Update client

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/clients/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/clients/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the client. Example: 1

DELETE /api/clients/:id - Delete client

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/clients/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/clients/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/clients/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the client. Example: 1

GET /api/tariffs - Get all tariffs

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/tariffs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/tariffs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/tariffs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST /api/tariffs - Create new tariff

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/tariffs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/tariffs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/tariffs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/tariffs/:id - Get specific tariff

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/tariffs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/tariffs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/tariffs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the tariff. Example: consequatur

PUT /api/tariffs/:id - Update tariff

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/tariffs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/tariffs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/tariffs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the tariff. Example: consequatur

DELETE /api/tariffs/:id - Delete tariff

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/tariffs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/tariffs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/tariffs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the tariff. Example: consequatur

GET /api/transactions - Get all transactions (basic and RFID sessions)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transactions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transactions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/transactions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/transactions/active - Get all active charging sessions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transactions/active" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transactions/active"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/transactions/active

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/transactions/stats - Get transaction statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transactions/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transactions/stats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/transactions/stats

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/transactions/charger/:chargerId - Get transactions for a specific charger

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transactions/charger/CHR-3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transactions/charger/CHR-3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/transactions/charger/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: CHR-3

GET /api/transactions/:id - Get specific transaction

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transactions/23" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transactions/23"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/transactions/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the transaction. Example: 23

GET /api/transactions/rfid/:id - Get specific RFID session

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/transactions/rfid/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/transactions/rfid/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/transactions/rfid/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the rfid. Example: consequatur

GET /api/payments - Get all payments with required details

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/payments" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/payments"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/payments

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/payments/{id} - Get specific payment details

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/payments/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/payments/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/payments/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the payment. Example: consequatur

PUT /api/payments/{id} - Update payment information

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/payments/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/payments/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/payments/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the payment. Example: consequatur

GET /api/dashboard - Get dashboard statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dashboard" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dashboard"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/dashboard

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/dashboard/summary - Enhanced dashboard summary

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dashboard/summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dashboard/summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/dashboard/summary

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/dashboard/revenue-trend - Revenue trend data for charts

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dashboard/revenue-trend" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dashboard/revenue-trend"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/dashboard/revenue-trend

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/dashboard/energy-by-station - Energy consumption by station

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dashboard/energy-by-station" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dashboard/energy-by-station"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/dashboard/energy-by-station

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/dashboard/recent-sessions - Recent charging sessions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dashboard/recent-sessions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dashboard/recent-sessions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/dashboard/recent-sessions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/dashboard/stats - Comprehensive dashboard statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/dashboard/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/dashboard/stats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/dashboard/stats

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/wallet

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/wallet" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/wallet"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/wallet

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/wallet/recharge

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/wallet/recharge" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 21,
    \"description\": \"Dolorum amet iste laborum eius est dolor.\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/wallet/recharge"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "amount": 21,
    "description": "Dolorum amet iste laborum eius est dolor."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/wallet/recharge

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

amount   number     

Must be at least 0.01. Must not be greater than 100000. Example: 21

description   string  optional    

Must not be greater than 255 characters. Example: Dolorum amet iste laborum eius est dolor.

GET api/wallet/transactions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/wallet/transactions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"limit\": 21,
    \"type\": \"debit\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/wallet/transactions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "limit": 21,
    "type": "debit"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/wallet/transactions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

limit   integer  optional    

Must be at least 1. Must not be greater than 100. Example: 21

type   string  optional    

Example: debit

Must be one of:
  • credit
  • debit
  • refund
  • penalty

PUT api/wallet/status

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/wallet/status" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"status\": \"suspended\",
    \"credit_limit\": 21
}"
const url = new URL(
    "http://127.0.0.1:8000/api/wallet/status"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "status": "suspended",
    "credit_limit": 21
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/wallet/status

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

status   string     

Example: suspended

Must be one of:
  • active
  • suspended
  • blocked
credit_limit   number  optional    

Must be at least 0. Must not be greater than 100000. Example: 21

GET api/sessions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/sessions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"status\": \"interrupted\",
    \"limit\": 21
}"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "status": "interrupted",
    "limit": 21
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/sessions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

status   string  optional    

Example: interrupted

Must be one of:
  • active
  • completed
  • interrupted
  • failed
limit   integer  optional    

Must be at least 1. Must not be greater than 100. Example: 21

GET api/sessions/active

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/sessions/active" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions/active"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/sessions/active

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/sessions/statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/sessions/statistics" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions/statistics"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/sessions/statistics

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/sessions/history

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/sessions/history" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:39\",
    \"end_date\": \"2107-06-25\",
    \"limit\": 13
}"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions/history"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:39",
    "end_date": "2107-06-25",
    "limit": 13
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/sessions/history

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:39

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

limit   integer  optional    

Must be at least 1. Must not be greater than 100. Example: 13

GET api/sessions/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/sessions/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/sessions/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the session. Example: consequatur

POST api/sessions

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/sessions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"connector_id\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "connector_id": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/sessions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The id of an existing record in the chargers table. Example: consequatur

connector_id   string     

The id of an existing record in the connectors table. Example: consequatur

rfid_user_id   string  optional    

The id of an existing record in the rfid_users table.

POST api/sessions/{id}/end

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/sessions/consequatur/end" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"energy_consumed\": 73,
    \"cost\": 45,
    \"stop_reason\": \"qeopfuudtdsufvyvddqam\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/sessions/consequatur/end"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "energy_consumed": 73,
    "cost": 45,
    "stop_reason": "qeopfuudtdsufvyvddqam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/sessions/{id}/end

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the session. Example: consequatur

Body Parameters

energy_consumed   number     

Must be at least 0. Example: 73

cost   number     

Must be at least 0. Example: 45

stop_reason   string  optional    

Must not be greater than 255 characters. Example: qeopfuudtdsufvyvddqam

transaction_id   string  optional    

The id of an existing record in the transactions table.

GET api/hubs

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/hubs

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/hubs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/hubs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/hubs/mapping

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs/mapping" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/mapping"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs/mapping

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/hubs/client/{clientId}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs/client/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/client/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs/client/{clientId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

clientId   integer     

Example: 1

GET api/hubs/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the hub. Example: consequatur

PUT api/hubs/{id}

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/hubs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());

Request      

PUT api/hubs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the hub. Example: consequatur

DELETE api/hubs/{id}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/hubs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/hubs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the hub. Example: consequatur

GET api/hubs/{hubId}/users

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs/consequatur/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs/{hubId}/users

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

POST api/hubs/{hubId}/users

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/hubs/consequatur/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/hubs/{hubId}/users

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

DELETE api/hubs/{hubId}/users/{userId}

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/hubs/consequatur/users/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur/users/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/hubs/{hubId}/users/{userId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

userId   integer     

Example: 1

GET api/hubs/{hubId}/transactions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs/consequatur/transactions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur/transactions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs/{hubId}/transactions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

GET api/hubs/{hubId}/charger-operations

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/hubs/consequatur/charger-operations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/hubs/consequatur/charger-operations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/hubs/{hubId}/charger-operations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

POST /api/ocpp/remote-start/:chargerId - Send RemoteStartTransaction

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/remote-start/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/remote-start/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/remote-start/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

POST /api/ocpp/remote-stop/:chargerId - Send RemoteStopTransaction

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/remote-stop/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/remote-stop/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/remote-stop/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

POST /api/ocpp/reset/:chargerId - Send Reset command

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/reset/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/reset/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/reset/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

POST /api/ocpp/unlock-connector/:chargerId - Send UnlockConnector

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/unlock-connector/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/unlock-connector/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/unlock-connector/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

GET /api/ocpp/logs/:chargerId - Get OCPP logs for a charger

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp/logs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/logs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp/logs/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

GET /api/ocpp/logs - Get all OCPP logs with pagination

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp/logs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/logs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp/logs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/ocpp/stats - Get OCPP statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp/stats" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/stats"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp/stats

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET /api/ocpp/log/:id - Get single OCPP log detail

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp/log/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/log/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp/log/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the log. Example: consequatur

POST /api/ocpp/register-mock - Register a charger with mock connection for testing

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp/register-mock" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp/register-mock"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/ocpp/register-mock

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/ocpp-v2/start-charging

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-v2/start-charging" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"connector_id\": 17,
    \"idTag\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/start-charging"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "connector_id": 17,
    "idTag": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-v2/start-charging

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

Example: consequatur

connector_id   integer     

Example: 17

idTag   string  optional    

Example: consequatur

POST api/ocpp-v2/stop-charging

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-v2/stop-charging" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"transaction_id\": 17
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/stop-charging"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "transaction_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-v2/stop-charging

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

Example: consequatur

transaction_id   integer     

Example: 17

GET api/ocpp-v2/charger-status/{chargerId}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp-v2/charger-status/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/charger-status/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp-v2/charger-status/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

GET api/ocpp-v2/transaction-history

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp-v2/transaction-history" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": 17,
    \"status\": \"cancelled\",
    \"from\": \"2026-05-27T07:22:40\",
    \"to\": \"2107-06-25\",
    \"limit\": 13
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/transaction-history"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": 17,
    "status": "cancelled",
    "from": "2026-05-27T07:22:40",
    "to": "2107-06-25",
    "limit": 13
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp-v2/transaction-history

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   integer  optional    

Example: 17

status   string  optional    

Example: cancelled

Must be one of:
  • initiated
  • ongoing
  • charging
  • completed
  • cancelled
from   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

to   string  optional    

Must be a valid date. Must be a date after or equal to from. Example: 2107-06-25

limit   integer  optional    

Must be at least 1. Must not be greater than 500. Example: 13

GET api/ocpp-v2/meter-values

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp-v2/meter-values" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": 17,
    \"transaction_id\": 17,
    \"from\": \"2026-05-27T07:22:40\",
    \"to\": \"2107-06-25\",
    \"limit\": 13
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/meter-values"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": 17,
    "transaction_id": 17,
    "from": "2026-05-27T07:22:40",
    "to": "2107-06-25",
    "limit": 13
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp-v2/meter-values

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   integer  optional    

Example: 17

transaction_id   integer  optional    

Example: 17

from   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

to   string  optional    

Must be a valid date. Must be a date after or equal to from. Example: 2107-06-25

limit   integer  optional    

Must be at least 1. Must not be greater than 1000. Example: 13

GET api/ocpp-v2/connected-chargers

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp-v2/connected-chargers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/connected-chargers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp-v2/connected-chargers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/ocpp-v2/active-transactions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp-v2/active-transactions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-v2/active-transactions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp-v2/active-transactions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Sessions Report - Analyze charger usage patterns, user behavior, and operational efficiency

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/reports/sessions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\",
    \"status\": \"interrupted\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/reports/sessions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25",
    "status": "interrupted"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/reports/sessions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string     

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string     

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

client_id   string  optional    

The id of an existing record in the clients table.

hub_id   string  optional    

The id of an existing record in the hubs table.

charger_id   string  optional    

The charger_id of an existing record in the chargers table.

status   string  optional    

Example: interrupted

Must be one of:
  • active
  • completed
  • interrupted
  • failed

Export Sessions Report - Download CSV file of sessions data

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/reports/sessions/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\",
    \"status\": \"active\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/reports/sessions/export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25",
    "status": "active"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/reports/sessions/export

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string     

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string     

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

client_id   string  optional    

The id of an existing record in the clients table.

hub_id   string  optional    

The id of an existing record in the hubs table.

charger_id   string  optional    

The charger_id of an existing record in the chargers table.

status   string  optional    

Example: active

Must be one of:
  • active
  • completed
  • interrupted
  • failed

Energy Report - Monitor total energy consumption across locations, hubs, and units

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/reports/energy" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/reports/energy"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/reports/energy

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Revenue Report - Track revenue generation for business decisions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/reports/revenue" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\",
    \"group_by\": \"location\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/reports/revenue"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25",
    "group_by": "location"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/reports/revenue

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string     

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string     

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

client_id   string  optional    

The id of an existing record in the clients table.

hub_id   string  optional    

The id of an existing record in the hubs table.

group_by   string  optional    

Example: location

Must be one of:
  • location
  • hub
  • charger
  • daily

Client & Location Reports - Advanced filtering and reporting

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/reports/client-location" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/reports/client-location"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/reports/client-location

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string     

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string     

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

client_id   string  optional    

The id of an existing record in the clients table.

location_id   string  optional    

The id of an existing record in the charging_stations table.

Commission Reports - Profit, commissions applied, client earnings, platform revenue

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/reports/commission" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/reports/commission"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/reports/commission

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string     

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string     

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

client_id   string  optional    

The id of an existing record in the clients table.

hub_id   string  optional    

The id of an existing record in the hubs table.

Get firmware version visibility across all devices

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/firmware/versions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"status\": \"available\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/firmware/versions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "status": "available"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/firmware/versions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

client_id   string  optional    

The id of an existing record in the clients table.

hub_id   string  optional    

The id of an existing record in the hubs table.

status   string  optional    

Example: available

Must be one of:
  • available
  • charging
  • faulted
  • unavailable

Get firmware version details for a specific charger

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/firmware/versions/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/firmware/versions/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/firmware/versions/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

Trigger firmware update for a specific charger

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/firmware/update/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"firmware_version\": \"consequatur\",
    \"firmware_url\": \"https:\\/\\/www.mueller.com\\/laborum-eius-est-dolor-dolores-minus-voluptatem\",
    \"priority\": \"high\",
    \"retry_count\": 4
}"
const url = new URL(
    "http://127.0.0.1:8000/api/firmware/update/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "firmware_version": "consequatur",
    "firmware_url": "https:\/\/www.mueller.com\/laborum-eius-est-dolor-dolores-minus-voluptatem",
    "priority": "high",
    "retry_count": 4
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/firmware/update/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

Body Parameters

firmware_version   string     

Example: consequatur

firmware_url   string     

Must be a valid URL. Example: https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem

priority   string  optional    

Example: high

Must be one of:
  • low
  • medium
  • high
retry_count   integer  optional    

Must be at least 0. Must not be greater than 5. Example: 4

Trigger firmware update for multiple chargers (bulk update)

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/firmware/bulk-update" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"firmware_version\": \"consequatur\",
    \"firmware_url\": \"https:\\/\\/www.mueller.com\\/laborum-eius-est-dolor-dolores-minus-voluptatem\",
    \"priority\": \"high\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/firmware/bulk-update"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "firmware_version": "consequatur",
    "firmware_url": "https:\/\/www.mueller.com\/laborum-eius-est-dolor-dolores-minus-voluptatem",
    "priority": "high"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/firmware/bulk-update

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_ids   string[]  optional    

The charger_id of an existing record in the chargers table.

firmware_version   string     

Example: consequatur

firmware_url   string     

Must be a valid URL. Example: https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem

priority   string  optional    

Example: high

Must be one of:
  • low
  • medium
  • high

Get firmware update status for a charger

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/firmware/status/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/firmware/status/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/firmware/status/{chargerId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

chargerId   string     

Example: consequatur

Get chargers that need firmware updates (outdated versions)

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/firmware/outdated" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"target_version\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/firmware/outdated"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "target_version": "consequatur"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/firmware/outdated

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

target_version   string     

Example: consequatur

Get OCPP logs for a charger

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/ocpp-integration/logs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\",
    \"message_type\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-integration/logs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25",
    "message_type": "consequatur"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/ocpp-integration/logs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

message_type   string  optional    

Example: consequatur

Send OCPP command to charger

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/ocpp-integration/send-command" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"charger_id\": \"consequatur\",
    \"command\": \"ChangeConfiguration\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/ocpp-integration/send-command"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "charger_id": "consequatur",
    "command": "ChangeConfiguration"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/ocpp-integration/send-command

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

charger_id   string     

The charger_id of an existing record in the chargers table. Example: consequatur

command   string     

Example: ChangeConfiguration

Must be one of:
  • Reset
  • Unlock
  • ChangeAvailability
  • ChangeConfiguration
parameters   object  optional    

Get all commissions

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/commissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/commissions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Create a new commission

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/commissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"applied_to\": \"hub\",
    \"commission_type\": \"fixed\",
    \"commission_value\": 73,
    \"is_active\": true,
    \"notes\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "applied_to": "hub",
    "commission_type": "fixed",
    "commission_value": 73,
    "is_active": true,
    "notes": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/commissions

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

applied_to   string     

Example: hub

Must be one of:
  • client
  • hub
client_id   string  optional    

This field is required when applied_to is client. The id of an existing record in the clients table.

hub_id   string  optional    

This field is required when applied_to is hub. The id of an existing record in the hubs table.

commission_type   string     

Example: fixed

Must be one of:
  • percentage
  • fixed
commission_value   number     

Must be at least 0. Example: 73

is_active   boolean  optional    

Example: true

notes   string  optional    

Example: consequatur

Get commission summary statistics

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/commissions/summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/commissions/summary

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Get commission history

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/commissions/history" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/history"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/commissions/history

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

commission_id   string  optional    

The id of an existing record in the commissions table.

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

Get commission for a specific client

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/commissions/client/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/client/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/commissions/client/{clientId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

clientId   integer     

Example: 1

Get commission for a specific hub

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/commissions/hub/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/hub/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/commissions/hub/{hubId}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

hubId   string     

Example: consequatur

Get a specific commission

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/commissions/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/commissions/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the commission. Example: consequatur

Update an existing commission

Example request:
curl --request PUT \
    "http://127.0.0.1:8000/api/commissions/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"commission_type\": \"fixed\",
    \"commission_value\": 73,
    \"is_active\": false,
    \"notes\": \"consequatur\",
    \"change_reason\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "commission_type": "fixed",
    "commission_value": 73,
    "is_active": false,
    "notes": "consequatur",
    "change_reason": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

PUT api/commissions/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the commission. Example: consequatur

Body Parameters

commission_type   string  optional    

Example: fixed

Must be one of:
  • percentage
  • fixed
commission_value   number  optional    

Must be at least 0. Example: 73

is_active   boolean  optional    

Example: false

notes   string  optional    

Example: consequatur

change_reason   string     

Example: consequatur

Delete a commission

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/commissions/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/commissions/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the commission. Example: consequatur

Activate/Deactivate commission

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/commissions/consequatur/toggle-status" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"is_active\": false,
    \"change_reason\": \"consequatur\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/commissions/consequatur/toggle-status"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "is_active": false,
    "change_reason": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/commissions/{id}/toggle-status

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the commission. Example: consequatur

Body Parameters

is_active   boolean     

Example: false

change_reason   string     

Example: consequatur

Get overall dashboard summary

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/summary

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

Get client-wise dashboard data

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/clients

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

client_id   string  optional    

The id of an existing record in the clients table.

Get hub-wise dashboard data

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/hubs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:40\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/hubs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:40",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/hubs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:40

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

hub_id   string  optional    

The id of an existing record in the hubs table.

Get detailed dashboard for a specific client

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/clients/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:41\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/clients/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:41",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/clients/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the client. Example: 1

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:41

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

Get detailed dashboard for a specific hub

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/hubs/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:41\",
    \"end_date\": \"2107-06-25\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/hubs/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:41",
    "end_date": "2107-06-25"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/hubs/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the hub. Example: consequatur

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:41

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

Get top performing clients

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/top-clients" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:41\",
    \"end_date\": \"2107-06-25\",
    \"limit\": 13
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/top-clients"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:41",
    "end_date": "2107-06-25",
    "limit": 13
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/top-clients

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:41

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

limit   integer  optional    

Must be at least 1. Must not be greater than 50. Example: 13

Get top performing hubs

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/business-dashboard/top-hubs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-05-27T07:22:41\",
    \"end_date\": \"2107-06-25\",
    \"limit\": 13
}"
const url = new URL(
    "http://127.0.0.1:8000/api/business-dashboard/top-hubs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-05-27T07:22:41",
    "end_date": "2107-06-25",
    "limit": 13
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/business-dashboard/top-hubs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string  optional    

Must be a valid date. Example: 2026-05-27T07:22:41

end_date   string  optional    

Must be a valid date. Must be a date after or equal to start_date. Example: 2107-06-25

limit   integer  optional    

Must be at least 1. Must not be greater than 50. Example: 13

GET api/complaints

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/complaints" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/complaints"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/complaints

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/complaints

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/complaints" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"subject\": \"vmqeopfuudtdsufvyvddq\",
    \"description\": \"Dolores molestias ipsam sit.\"
}"
const url = new URL(
    "http://127.0.0.1:8000/api/complaints"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "subject": "vmqeopfuudtdsufvyvddq",
    "description": "Dolores molestias ipsam sit."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/complaints

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

subject   string     

Must not be greater than 255 characters. Example: vmqeopfuudtdsufvyvddq

description   string     

Must not be greater than 2000 characters. Example: Dolores molestias ipsam sit.

GET api/complaints/{id}

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/complaints/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/complaints/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "error": "Access token required"
}
 

Request      

GET api/complaints/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the complaint. Example: consequatur

API: Get all charger configurations with details

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/admin/charger-configurations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/charger-configurations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

API: Get manufacturers for admin dropdown

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/admin/charger-configurations/manufacturers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations/manufacturers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/charger-configurations/manufacturers

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

API: Get models by manufacturer for admin dropdown

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/admin/charger-configurations/models" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations/models"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/charger-configurations/models

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

API: Get connector types for admin dropdown

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/admin/charger-configurations/connector-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations/connector-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/charger-configurations/connector-types

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

API: Get current types for admin dropdown

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/admin/charger-configurations/current-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations/current-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/charger-configurations/current-types

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

API: Get single charger configuration details

Example request:
curl --request GET \
    --get "http://127.0.0.1:8000/api/admin/charger-configurations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/admin/charger-configurations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the charger configuration. Example: consequatur

API: Delete charger configuration

Example request:
curl --request DELETE \
    "http://127.0.0.1:8000/api/admin/charger-configurations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://127.0.0.1:8000/api/admin/charger-configurations/consequatur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE api/admin/charger-configurations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the charger configuration. Example: consequatur

POST api/wallet/deduct

Example request:
curl --request POST \
    "http://127.0.0.1:8000/api/wallet/deduct" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 73,
    \"description\": \"Dolorum amet iste laborum eius est dolor.\",
    \"reference_type\": \"dtdsufvyvddqamniihfqc\",
    \"reference_id\": 17
}"
const url = new URL(
    "http://127.0.0.1:8000/api/wallet/deduct"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "amount": 73,
    "description": "Dolorum amet iste laborum eius est dolor.",
    "reference_type": "dtdsufvyvddqamniihfqc",
    "reference_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/wallet/deduct

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

user_id   string  optional    

The id of an existing record in the users table.

amount   number     

Must be at least 0.01. Example: 73

description   string  optional    

Must not be greater than 255 characters. Example: Dolorum amet iste laborum eius est dolor.

reference_type   string  optional    

Must not be greater than 50 characters. Example: dtdsufvyvddqamniihfqc

reference_id   integer  optional    

Example: 17