The External API provides programmatic access to EV charging infrastructure data, including tariffs, customers, stations, charging sessions, and real-time charger status.
Configure your API credentials below to test endpoints directly from this page.
iris_...
API key-based authentication with tenant isolation
Standard HTTP methods and status codes
Find chargers within a specified radius
Search and filtering capabilities
Access to all charging infrastructure data
Efficient data retrieval with pagination
| Method | Example | Status |
|---|---|---|
x-api-key Header |
x-api-key: iris_<key> |
✅ Recommended |
| Bearer Token | Authorization: Bearer iris_<key> |
✅ Alternative |
Never expose API keys in client-side code or repositories
Rotate keys regularly for enhanced security
Use different keys for dev/prod environments
Monitor key usage through audit logs
BASE_URL = https://scncumk77d.execute-api.ap-south-1.amazonaws.com/suite-network-uat/api/v1/d2s/external
| Parameter | Type | Description | Default |
|---|---|---|---|
page |
integer | Page number for pagination | 1 |
pagesize |
integer | Number of items per page | 10 |
search |
string | Search term (relevant fields) | - |
sortby |
string | Field to sort by | varies |
orderby |
string | Sort order: ASC or DESC | ASC |
Manage tariff plans and their associated rules
Retrieve a paginated list of tariff plans with their associated rules.
| Parameter | Required | Description |
|---|---|---|
type |
No | Filter by tariff type |
isactive |
No | Filter by active status |
Retrieve detailed information about a specific tariff plan.
| Parameter | Required | Description |
|---|---|---|
id |
Yes | Tariff plan ID (integer) |
Access and manage customer information
Retrieve a paginated list of customers.
| Parameter | Required | Description |
|---|---|---|
search |
No | Search by name, phone, or email |
page |
No | Page number (default: 1) |
pagesize |
No | Items per page (default: 10) |
Retrieve detailed information about a specific customer.
| Parameter | Required | Description |
|---|---|---|
id |
Yes | Customer ID (string, e.g., "user123") |
Access station details, charge points, and connectors
Retrieve a paginated list of charging stations with their charge points and connectors.
| Parameter | Required | Description |
|---|---|---|
city |
No | Filter by city |
state |
No | Filter by state |
always_open |
No | Filter by always open status |
search |
No | Search by name, address, city, or state |
Retrieve detailed information about a specific station including all charge points and connectors.
| Parameter | Required | Description |
|---|---|---|
id |
Yes | Station ID (integer) |
Access historical and current charging sessions
Retrieve a paginated list of charging sessions.
| Parameter | Required | Description |
|---|---|---|
start_date |
No | Start date filter (YYYY-MM-DD HH:MM:SS) |
end_date |
No | End date filter (YYYY-MM-DD HH:MM:SS) |
status |
No | Session status (STARTED, STOPPED, FAILED) |
charge_station_id |
No | Filter by station ID |
user_id |
No | Filter by customer ID |
Retrieve detailed information about a specific charging session.
| Parameter | Required | Description |
|---|---|---|
id |
Yes | Session ID (integer) |
Find available chargers near a location
Retrieve a list of chargers within a specified radius from given coordinates.
| Parameter | Required | Description |
|---|---|---|
lat |
✅ Yes | Latitude (-90 to 90) |
lng |
✅ Yes | Longitude (-180 to 180) |
radius |
✅ Yes | Radius distance (> 0) |
radius_unit |
❌ No | km (default) or m |
| Error Code | Description | Solution |
|---|---|---|
MISSING_API_KEY |
API key not provided | Include x-api-key header |
INVALID_API_KEY |
Invalid or expired key | Generate new API key |
INVALID_KEY_FORMAT |
Incorrect format | Use iris_<key> format |
RATE_LIMIT_EXCEEDED |
Too many requests | Wait and retry |
const axios = require('axios'); const BASE_URL = 'https://api.example.com/api/v1/external'; const API_KEY = 'iris_your_key'; async function getTariffs() { try { const response = await axios.get(`${BASE_URL}/tariffs`, { headers: { 'x-api-key': API_KEY }, params: { page: 1, pagesize: 10 } }); console.log('✅ Success:', response.data); } catch (error) { console.error('❌ Error:', error.response?.data || error.message); } } async function getCustomers(searchTerm) { try { const response = await axios.get(`${BASE_URL}/customers`, { headers: { 'x-api-key': API_KEY }, params: { search: searchTerm, page: 1, pagesize: 10 } }); return response.data; } catch (error) { console.error('❌ Error:', error.response?.data || error.message); } }
import requests BASE_URL = 'https://api.example.com/api/v1/external' API_KEY = 'iris_your_key' headers = {'x-api-key': API_KEY} def get_tariffs(): """Get paginated tariff list""" response = requests.get( f'{BASE_URL}/tariffs', headers=headers, params={'page': 1, 'pagesize': 10} ) if response.status_code == 200: return response.json() else: print(f"Error {response.status_code}: {response.text}") return None def get_stations(city=None): """Get stations filtered by city""" params = {'page': 1, 'pagesize': 10} if city: params['city'] = city response = requests.get( f'{BASE_URL}/stations', headers=headers, params=params ) return response.json()
# Get tariff list curl -X GET "https://api.example.com/api/v1/external/tariffs?page=1&pagesize=10" \ -H "x-api-key: iris_your_key" # Get customer list (search for John) curl -X GET "https://api.example.com/api/v1/external/customers?search=john&page=1&pagesize=10" \ -H "x-api-key: iris_your_key" # Get station list in Mumbai curl -X GET "https://api.example.com/api/v1/external/stations?city=Mumbai&page=1&pagesize=10" \ -H "x-api-key: iris_your_key" # Get charger status near Mumbai curl -X GET "https://api.example.com/api/v1/external/chargers/status?lat=19.0760&lng=72.8777&radius=5" \ -H "x-api-key: iris_your_key"