Welcome to the Epic Charging API! This guide will help you get up and running quickly with our comprehensive charging infrastructure management API.
The Epic Charging API provides a powerful way to monitor, control, and analyze your electric vehicle charging infrastructure. Whether you're managing a single location or a nationwide network, our API gives you the tools to optimize your charging operations.
Before you begin, you'll need:
- An Epic Charging account with API access
- Your API key (available in your account dashboard)
- Basic knowledge of REST APIs and JSON
- A tool for making HTTP requests (like cURL, Postman, or your preferred programming language)
All requests to the Epic Charging API require authentication using your API key. Include your key in the Token-Authorization header:
curl -X GET \
https://{{tenant}}.epiccharging.com/api/external/v1/charger/ \
-H "Token-Authorization: your_api_key_here"Let's start by retrieving a list of chargers in your network:
curl -X GET \
https://{{tenant}}.epiccharging.com/api/external/v1/charger/ \
-H "Token-Authorization: your_api_key_here"This will return a JSON response with information about all chargers in your network:
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"custom_id": "MAIN-01",
"charger_point_id": "CP001",
"status": {
"key": "AVAILABLE",
"value": "Available"
},
"location_name": "Headquarters",
"temperature": 25.5,
"payment_type": "Paid",
"id_tag_required": true,
"customer_qr_code": "https://qr.epiccharging.com/c/CP001",
"ports": [...]
},
{
"id": "223e4567-e89b-12d3-a456-426614174001",
"custom_id": "BRANCH-02",
"charger_point_id": "CP002",
"status": {
"key": "CHARGING",
"value": "Charging"
},
"location_name": "Branch Office",
"temperature": 24.0,
"payment_type": "Free",
"id_tag_required": false,
"customer_qr_code": "https://qr.epiccharging.com/c/CP002",
"ports": [...]
}
]
}You can start a charging session on a specific port using the following endpoint:
curl -X PATCH \
https://{{tenant}}.epiccharging.com/api/external/v1/charger-port/123e4567-e89b-12d3-a456-426614174000/start/ \
-H "Token-Authorization: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{}'And stop it when charging is complete:
curl -X PATCH \
https://{{tenant}}.epiccharging.com/api/external/v1/charger-port/123e4567-e89b-12d3-a456-426614174000/stop/ \
-H "Token-Authorization: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{}'To reserve a charger for future use:
curl -X PATCH \
https://{{tenant}}.epiccharging.com/api/external/v1/charger-port/123e4567-e89b-12d3-a456-426614174000/reserve_now/ \
-H "Token-Authorization: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"expiry_date_time": "2025-03-15T15:00:00Z",
"id_tag": "USER12345",
"reservation_id": 98765
}'Get detailed charging session reports for analysis:
curl -X GET \
"https://{{tenant}}.epiccharging.com/api/external/v1/report/charging-session/?plug_in_start_datetime__gte=2025-03-01T00:00:00Z&plug_in_start_datetime__lte=2025-03-10T23:59:59Z" \
-H "Token-Authorization: your_api_key_here"Now that you've mastered the basics, you can explore more advanced features in our documentation:
- Check out the complete API Reference
- Explore Use Cases and Examples
- Learn about Reporting Capabilities
- Review our Legal Terms
Here's a simple Node.js application that monitors charger status:
const axios = require('axios');
const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://{{tenant}}.epiccharging.com/api/external/v1';
async function monitorChargers() {
try {
const response = await axios.get(`${BASE_URL}/charger/`, {
headers: {
'Token-Authorization': API_KEY
}
});
console.log(`Monitoring ${response.data.count} chargers:`);
response.data.results.forEach(charger => {
console.log(`- ${charger.custom_id} (${charger.location_name}): ${charger.status.value}`);
// Log details about each port
charger.ports.forEach(port => {
console.log(` - Port ${port.connector_id}: ${port.status.value}, ${port.charge_current_kilowatt_hour} kW`);
});
});
} catch (error) {
console.error('Error monitoring chargers:', error.message);
}
}
// Run the monitoring function every 5 minutes
setInterval(monitorChargers, 5 * 60 * 1000);
monitorChargers(); // Run immediately on startupIf you encounter any issues or have questions about using the API, please refer to our documentation or contact our support team for assistance.
Happy charging!