Canonical eMSP scope catalog (the OAuth scope vocabulary)
Every eMSP scope and what it grants — the vocabulary behind the `scopes` array on /me-key.
curl 'https://api.proranked.com/emsp/v1/.well-known/scopes' \ -H 'X-API-Key: pr_…'
{
"data": {
"apiFamily": "emsp",
"scopes": [
{
"scope": "read:locations",
"description": "Browse charging locations and geo-search"
}
],
"notes": "string"
},
"success": true,
"timestamp": null
}Get session analytics
Returns session analytics including counts, averages, and time series data.
curl 'https://api.proranked.com/emsp/v1/analytics/sessions' \ -H 'X-API-Key: pr_…'
{
"data": {
"totalSessions": 1842,
"completedSessions": 1790,
"failedSessions": 52,
"averageSessionDurationMinutes": 47.32,
"averageEnergyPerSessionKwh": 18.64,
"growthPercentage": 12.5,
"period": "day",
"fromDate": "2026-05-20T00:00:00Z",
"toDate": "2026-06-19T00:00:00Z",
"timeline": [
{
"date": "2026-06-18T00:00:00Z",
"value": 124.5,
"label": "Jun 18"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get revenue analytics
Returns revenue analytics including totals, averages, and time series data.
curl 'https://api.proranked.com/emsp/v1/analytics/revenue' \ -H 'X-API-Key: pr_…'
{
"data": {
"totalRevenue": 26840.5,
"averagePerSession": 14.57,
"currency": "USD",
"growthPercentage": 9.8,
"period": "day",
"fromDate": "2026-05-20T00:00:00Z",
"toDate": "2026-06-19T00:00:00Z",
"timeline": [
{
"date": "2026-06-18T00:00:00Z",
"value": 124.5,
"label": "Jun 18"
}
],
"revenueByLocation": [
{
"name": "Isla Verde Mall",
"value": 842.75,
"percentage": 31.4
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get energy consumption analytics
Returns energy consumption analytics including totals and time series data.
curl 'https://api.proranked.com/emsp/v1/analytics/energy' \ -H 'X-API-Key: pr_…'
{
"data": {
"totalEnergyKwh": 34328.1,
"averagePerSessionKwh": 18.64,
"peakDayKwh": 1640.2,
"peakDayDate": "2026-06-07T00:00:00Z",
"growthPercentage": 7.2,
"period": "day",
"fromDate": "2026-05-20T00:00:00Z",
"toDate": "2026-06-19T00:00:00Z",
"timeline": [
{
"date": "2026-06-18T00:00:00Z",
"value": 124.5,
"label": "Jun 18"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List tokens
Returns a paginated list of tokens for a user.
curl 'https://api.proranked.com/emsp/v1/auth/tokens' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "7c1e2a44-9b3d-4e6f-8a01-2b3c4d5e6f70",
"uid": "A1B2C3D4E5F6",
"contractId": "US-PHV-A1B2C3D4",
"tokenType": "APP_USER",
"alias": "Maya's app token",
"valid": true,
"userId": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"createdAt": "2026-06-19T18:42:09Z",
"expiresAt": "2027-06-19T00:00:00Z",
"lastUsedAt": "2026-06-18T14:05:33Z"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z",
"pagination": {
"totalCount": 42,
"page": 1,
"pageSize": 20,
"totalPages": 3,
"hasNextPage": true,
"hasPreviousPage": false
}
}Create authentication token
Creates a new authentication token for a user. The token can be used for charging sessions.
curl -X POST 'https://api.proranked.com/emsp/v1/auth/tokens' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "7c1e2a44-9b3d-4e6f-8a01-2b3c4d5e6f70",
"uid": "A1B2C3D4E5F6",
"contractId": "US-PHV-A1B2C3D4",
"tokenType": "APP_USER",
"alias": "Maya's app token",
"valid": true,
"userId": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"createdAt": "2026-06-19T18:42:09Z",
"expiresAt": "2027-06-19T00:00:00Z",
"lastUsedAt": "2026-06-18T14:05:33Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get token details
Returns detailed information about a specific token.
curl 'https://api.proranked.com/emsp/v1/auth/tokens/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "7c1e2a44-9b3d-4e6f-8a01-2b3c4d5e6f70",
"uid": "A1B2C3D4E5F6",
"contractId": "US-PHV-A1B2C3D4",
"tokenType": "APP_USER",
"alias": "Maya's app token",
"valid": true,
"userId": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"createdAt": "2026-06-19T18:42:09Z",
"expiresAt": "2027-06-19T00:00:00Z",
"lastUsedAt": "2026-06-18T14:05:33Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Invalidate a token
Invalidates (soft-deletes) a token so it can no longer be used for authorization.
curl -X DELETE 'https://api.proranked.com/emsp/v1/auth/tokens/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"tokenId": "7c1e2a44-9b3d-4e6f-8a01-2b3c4d5e6f70",
"action": "invalidate",
"success": true,
"message": "Token has been invalidated successfully"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Register a new driver account
curl -X POST 'https://api.proranked.com/emsp/v1/auth/driver/register' \ -H 'X-API-Key: pr_…'
{
"data": {
"accessToken": "eyJ...<access-token>...",
"refreshToken": "<refresh-token>",
"expiresIn": 3600,
"tokenType": "Bearer",
"driver": {
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"email": "[email protected]",
"firstName": "Maya",
"lastName": "Rivera",
"tokenUid": "A1B2C3D4E5F6"
}
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Login with email and password
curl -X POST 'https://api.proranked.com/emsp/v1/auth/driver/login' \ -H 'X-API-Key: pr_…'
{
"data": {
"accessToken": "eyJ...<access-token>...",
"refreshToken": "<refresh-token>",
"expiresIn": 3600,
"tokenType": "Bearer",
"driver": {
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"email": "[email protected]",
"firstName": "Maya",
"lastName": "Rivera",
"tokenUid": "A1B2C3D4E5F6"
}
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Refresh access token using refresh token
curl -X POST 'https://api.proranked.com/emsp/v1/auth/driver/refresh' \ -H 'X-API-Key: pr_…'
{
"data": {
"accessToken": "eyJ...<access-token>...",
"refreshToken": "<refresh-token>",
"expiresIn": 3600,
"tokenType": "Bearer"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Request a password reset email
curl -X POST 'https://api.proranked.com/emsp/v1/auth/driver/forgot-password' \ -H 'X-API-Key: pr_…'
{
"data": {
"message": "If the email exists, a password reset link has been sent."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Reset password using token from email
curl -X POST 'https://api.proranked.com/emsp/v1/auth/driver/reset-password' \ -H 'X-API-Key: pr_…'
{
"data": {
"message": "If the email exists, a password reset link has been sent."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get authenticated driver's profile
curl 'https://api.proranked.com/emsp/v1/auth/driver/me' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"Email": "[email protected]",
"FirstName": "Maya",
"LastName": "Rivera",
"PhoneNumber": "+17875551234",
"Address": "123 Calle Sol",
"City": "San Juan",
"State": "PR",
"PostalCode": "00901",
"Country": "US",
"CreatedAt": "2026-01-15T09:30:00Z",
"tokens": [
{
"TokenUuid": "7c1e2a44-9b3d-4e6f-8a01-2b3c4d5e6f70",
"Uid": "A1B2C3D4E5F6",
"TokenType": "APP_USER"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List all chargers
Returns a paginated list of chargers in the network.
curl 'https://api.proranked.com/emsp/v1/chargers' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"uid": "CP-IslaVerde-01",
"evseId": "PR*PHX*E001234",
"status": "AVAILABLE",
"locationId": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"locationName": "Isla Verde Mall",
"isPublic": true,
"maxPowerKw": 150,
"connectorCount": 2,
"lastHeartbeat": "2026-06-19T18:42:07Z",
"isOnline": true,
"lastUpdated": "2026-06-19T18:42:07Z",
"networkId": "3f9a1c20-6b7d-4e8f-9a0b-1c2d3e4f5a6b",
"networkName": "Phevnix PR"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z",
"pagination": {
"totalCount": 137,
"page": 1,
"pageSize": 20,
"totalPages": 7,
"hasNextPage": true,
"hasPreviousPage": false
}
}Get charger details
Returns detailed information about a specific charger including its connectors.
curl 'https://api.proranked.com/emsp/v1/chargers/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"uid": "CP-IslaVerde-01",
"evseId": "PR*PHX*E001234",
"status": "AVAILABLE",
"locationId": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"locationName": "Isla Verde Mall",
"isPublic": true,
"maxPowerKw": 150,
"connectorCount": 2,
"lastHeartbeat": "2026-06-19T18:42:07Z",
"isOnline": true,
"lastUpdated": "2026-06-19T18:42:07Z",
"networkId": "3f9a1c20-6b7d-4e8f-9a0b-1c2d3e4f5a6b",
"networkName": "Phevnix PR",
"serialNumber": "SN-A1B2C3D4",
"manufacturer": "ABB",
"model": "Terra 184",
"firmwareVersion": "1.5.32",
"ocppVersion": "1.6",
"installationDate": "2025-09-01T00:00:00Z",
"floorLevel": "P1",
"physicalReference": "Bay 14",
"coordinates": null,
"connectors": [
{
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"connectorNumber": 1,
"connectorIdentifier": "CP-IslaVerde-01-1",
"status": "AVAILABLE",
"standard": "IEC_62196_T2",
"format": "SOCKET",
"powerType": "AC_3_PHASE",
"maxVoltage": 400,
"maxAmperage": 32,
"maxElectricPowerWatts": 22000,
"lastUpdated": "2026-06-19T18:42:07Z"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Reboot a charger
Sends a reset command to the charger. Use 'Soft' for firmware restart or 'Hard' for power cycle.
curl -X POST 'https://api.proranked.com/emsp/v1/chargers/{id}/reboot' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"status": "Accepted",
"message": "Soft reset command sent successfully"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get charger info for QR code scanning
Returns charger information with pricing details for QR code scanning. Accepts UUID, Uid, or SerialNumber as identifier. Only returns public chargers at published locations.
curl 'https://api.proranked.com/emsp/v1/chargers/{identifier}/info' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerUuid": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargerUid": "CP-IslaVerde-01",
"chargerName": "CP-IslaVerde-01",
"llmLookupId": "SHD54S",
"status": "AVAILABLE",
"isOnline": true,
"locationUuid": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"locationName": "Isla Verde Mall",
"address": "8169 Calle Marginal",
"city": "Carolina",
"latitude": 18.4319,
"longitude": -66.0617,
"networkUuid": "3f9a1c20-6b7d-4e8f-9a0b-1c2d3e4f5a6b",
"networkName": "Phevnix PR",
"networkLogoUrl": "https://cdn.phevnix.com/networks/phevnix-pr/logo.svg",
"networkPrimaryColor": "#0EA5E9",
"networkSecondaryColor": "#0F172A",
"currency": "USD",
"connectors": [
{
"connectorUuid": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"connectorIdentifier": "CP-IslaVerde-01-1",
"connectorNumber": 1,
"standard": "IEC_62196_T2",
"format": "SOCKET",
"powerType": "AC_3_PHASE",
"maxPowerKw": 22,
"status": "AVAILABLE",
"tariffId": "TARIFF-STD-AC",
"tariffName": "Standard AC",
"energyRate": 0.35,
"timeRate": 0,
"sessionFee": 0.5,
"idleRate": 0.4,
"idleFeeEnabled": true,
"idleGracePeriodMinutes": 10
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List charging sessions
Returns a paginated list of charging sessions for the network.
curl 'https://api.proranked.com/emsp/v1/charging/sessions' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status": "string",
"chargerId": "00000000-0000-0000-0000-000000000000",
"chargerUid": "string",
"connectorId": "00000000-0000-0000-0000-000000000000",
"connectorNumber": 0,
"locationId": "00000000-0000-0000-0000-000000000000",
"locationName": "string",
"startTime": null,
"endTime": null,
"durationSeconds": 0,
"energyDeliveredKwh": 0,
"total": 0,
"currency": "string",
"maxPowerKw": 0,
"currentPowerKw": 0,
"currentSocPercent": 0
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z",
"pagination": {
"totalCount": 248,
"page": 1,
"pageSize": 20,
"totalPages": 13,
"hasNextPage": true,
"hasPreviousPage": false
}
}Get session details
Returns detailed information about a specific charging session including cost breakdown.
curl 'https://api.proranked.com/emsp/v1/charging/sessions/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"authMethod": "string",
"idTag": "string",
"startMeterValue": 0,
"endMeterValue": 0,
"currentMeterValue": 0,
"startReason": "string",
"stopReason": "string",
"idleTimeSeconds": 0,
"isInIdleState": true,
"paymentStatus": "string",
"costs": {
"subtotal": 0,
"taxes": 0,
"sessionFees": 0,
"idleFees": 0,
"timeFees": 0,
"total": 0,
"currency": "string"
},
"id": "00000000-0000-0000-0000-000000000000",
"status": "string",
"chargerId": "00000000-0000-0000-0000-000000000000",
"chargerUid": "string",
"connectorId": "00000000-0000-0000-0000-000000000000",
"connectorNumber": 0,
"locationId": "00000000-0000-0000-0000-000000000000",
"locationName": "string",
"startTime": null,
"endTime": null,
"durationSeconds": 0,
"energyDeliveredKwh": 0,
"total": 0,
"currency": "string",
"maxPowerKw": 0,
"currentPowerKw": 0,
"currentSocPercent": 0
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Download session receipt (PDF)
Returns a printable PDF receipt for a charging session (the artifact a driver shows post-session / for expense reporting). Driver keys get their own sessions; operator keys their network's.
curl 'https://api.proranked.com/emsp/v1/charging/sessions/{id}/receipt' \
-H 'X-API-Key: pr_…'Get a session's energy curve (meter values)
Returns the time-ordered OCPP meter-value samples captured during the charge — the per-session kWh consumption curve (cumulative register + instantaneous power, plus current/voltage/SoC/temperature when the charger reports them). Use it to draw charging graphs or verify delivered energy. Capped by `limit` (default 1000, max 5000); `truncated` flags when the session has more. Driver keys see their own sessions; operator keys their network's.
curl 'https://api.proranked.com/emsp/v1/charging/sessions/{id}/meter-values' \
-H 'X-API-Key: pr_…'{
"data": [
{
"timestamp": "2026-06-19T18:21:30Z",
"meterValue": 14.382,
"powerKw": 7.2,
"energyWh": 120,
"currentA": 31.5,
"currentB": 0,
"currentC": 0,
"voltageA": 230.1,
"voltageB": 0,
"voltageC": 0,
"stateOfCharge": 64,
"temperature": 0
}
],
"count": 96,
"truncated": false,
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Start a charging session
Initiates a charging session on the specified charger and connector using the provided authorization ID tag.
curl -X POST 'https://api.proranked.com/emsp/v1/charging/start' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"sessionId": "00000000-0000-0000-0000-000000000000",
"correlationId": "00000000-0000-0000-0000-000000000000",
"status": "string",
"chargerId": "00000000-0000-0000-0000-000000000000",
"connectorNumber": 0,
"startTime": null,
"message": "string"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Stop a charging session
Stops an active charging session and returns the final session details with cost breakdown.
curl -X POST 'https://api.proranked.com/emsp/v1/charging/stop' \ -H 'X-API-Key: pr_…'
{
"data": {
"authMethod": "string",
"idTag": "string",
"startMeterValue": 0,
"endMeterValue": 0,
"currentMeterValue": 0,
"startReason": "string",
"stopReason": "string",
"idleTimeSeconds": 0,
"isInIdleState": true,
"paymentStatus": "string",
"costs": {
"subtotal": 0,
"taxes": 0,
"sessionFees": 0,
"idleFees": 0,
"timeFees": 0,
"total": 0,
"currency": "string"
},
"id": "00000000-0000-0000-0000-000000000000",
"status": "string",
"chargerId": "00000000-0000-0000-0000-000000000000",
"chargerUid": "string",
"connectorId": "00000000-0000-0000-0000-000000000000",
"connectorNumber": 0,
"locationId": "00000000-0000-0000-0000-000000000000",
"locationName": "string",
"startTime": null,
"endTime": null,
"durationSeconds": 0,
"energyDeliveredKwh": 0,
"total": 0,
"currency": "string",
"maxPowerKw": 0,
"currentPowerKw": 0,
"currentSocPercent": 0
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Schedule a charging session for a future time
curl -X POST 'https://api.proranked.com/emsp/v1/charging/schedule' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "7c1f0a23-9b4d-4e5a-8c6f-1d2e3f4a5b6c",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"scheduledTime": "2026-06-20T06:00:00Z",
"status": "Pending",
"statusReason": "Charger did not respond",
"firedAt": "2026-06-20T06:00:01Z",
"createdAt": "2026-06-19T22:14:55Z"
},
"success": true,
"timestamp": "2026-06-19T22:14:55Z"
}List your scheduled charges
curl 'https://api.proranked.com/emsp/v1/charging/schedules' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "7c1f0a23-9b4d-4e5a-8c6f-1d2e3f4a5b6c",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"scheduledTime": "2026-06-20T06:00:00Z",
"status": "Pending",
"statusReason": "Charger did not respond",
"firedAt": "2026-06-20T06:00:01Z",
"createdAt": "2026-06-19T22:14:55Z"
}
],
"success": true,
"timestamp": "2026-06-19T22:14:55Z"
}Cancel a scheduled charge
curl -X DELETE 'https://api.proranked.com/emsp/v1/charging/schedule/{id}' \
-H 'X-API-Key: pr_…'Get connector status
Returns the current status and details of a specific connector.
curl 'https://api.proranked.com/emsp/v1/connectors/{id}/status' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"connectorNumber": 1,
"connectorIdentifier": "CP-IslaVerde-01-1",
"status": "AVAILABLE",
"standard": "IEC_62196_T2",
"format": "SOCKET",
"powerType": "AC_3_PHASE",
"maxVoltage": 400,
"maxAmperage": 32,
"maxElectricPowerWatts": 22000,
"lastUpdated": "2026-06-19T18:42:07Z",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargerUid": "CP-IslaVerde-01",
"locationId": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"locationName": "Isla Verde Mall",
"lastStatusUpdate": "2026-06-19T18:41:55Z",
"hasRfidReader": true,
"hasDisplay": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}SSE event stream for real-time updates
curl 'https://api.proranked.com/emsp/v1/events/stream' \ -H 'X-API-Key: pr_…'
List the driver's favorites
curl 'https://api.proranked.com/emsp/v1/favorites' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "5d4c3b2a-1f0e-4d9c-8b7a-6e5f4d3c2b1a",
"targetType": "location",
"targetId": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"label": "Home charger",
"createdAt": "2026-06-18T14:05:33Z"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Save a favorite
curl -X POST 'https://api.proranked.com/emsp/v1/favorites' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "5d4c3b2a-1f0e-4d9c-8b7a-6e5f4d3c2b1a",
"targetType": "location",
"targetId": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"label": "Home charger",
"createdAt": "2026-06-18T14:05:33Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Remove a favorite
curl -X DELETE 'https://api.proranked.com/emsp/v1/favorites/{id}' \
-H 'X-API-Key: pr_…'List invoices
Lists generated invoices (one row per invoice number), newest first. Scoped to the caller: a driver sees only their own invoices; an operator key sees its network's.
curl 'https://api.proranked.com/emsp/v1/invoices' \ -H 'X-API-Key: pr_…'
[
{
"invoiceNumber": "string",
"issueDate": null,
"transactionCount": 0,
"total": 0,
"currency": "string"
}
]Generate invoice
Generates an invoice for one or more transactions and persists it (the covered transactions are stamped with the invoice number).
curl -X POST 'https://api.proranked.com/emsp/v1/invoices' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"invoiceNumber": "string",
"issueDate": null,
"dueDate": null,
"userId": "00000000-0000-0000-0000-000000000000",
"userName": "string",
"userEmail": "string",
"lineItems": [
{
"transactionId": "00000000-0000-0000-0000-000000000000",
"sessionDate": null,
"locationName": "string",
"energyKwh": 0,
"amount": 0
}
],
"subtotal": 0,
"tax": 0,
"total": 0,
"currency": "string",
"status": "string"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Retrieve invoice
Retrieves a single invoice (with line items + totals) by its invoice number.
curl 'https://api.proranked.com/emsp/v1/invoices/{invoiceNumber}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"invoiceNumber": "string",
"issueDate": null,
"dueDate": null,
"userId": "00000000-0000-0000-0000-000000000000",
"userName": "string",
"userEmail": "string",
"lineItems": [
{
"transactionId": "00000000-0000-0000-0000-000000000000",
"sessionDate": null,
"locationName": "string",
"energyKwh": 0,
"amount": 0
}
],
"subtotal": 0,
"tax": 0,
"total": 0,
"currency": "string",
"status": "string"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List locations
curl 'https://api.proranked.com/emsp/v1/locations' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Isla Verde Mall",
"address": "8169 Calle Marginal",
"city": "Carolina",
"state": "PR",
"country": "US",
"latitude": 18.4319,
"longitude": -66.0617,
"hasParking": true,
"hasRestrooms": true,
"hasWifi": false,
"phone": "+1-787-555-0142",
"chargerCount": 4,
"availableCount": 3,
"maxPowerKw": 150,
"connectorTypes": [
"string"
],
"distanceKm": 2.137
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Find locations near a point
curl 'https://api.proranked.com/emsp/v1/locations/search' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Isla Verde Mall",
"address": "8169 Calle Marginal",
"city": "Carolina",
"state": "PR",
"country": "US",
"latitude": 18.4319,
"longitude": -66.0617,
"hasParking": true,
"hasRestrooms": true,
"hasWifi": false,
"phone": "+1-787-555-0142",
"chargerCount": 4,
"availableCount": 3,
"maxPowerKw": 150,
"connectorTypes": [
"string"
],
"distanceKm": 2.137
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get a location
curl 'https://api.proranked.com/emsp/v1/locations/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "c1a2b3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Isla Verde Mall",
"address": "8169 Calle Marginal",
"city": "Carolina",
"state": "PR",
"country": "US",
"latitude": 18.4319,
"longitude": -66.0617,
"hasParking": true,
"hasRestrooms": true,
"hasWifi": false,
"phone": "+1-787-555-0142",
"openingHours": null,
"images": [
{
"url": "https://cdn.phevnix.com/locations/isla-verde/1.jpg",
"thumbnailUrl": "https://cdn.phevnix.com/locations/isla-verde/1_thumb.jpg",
"type": "location",
"width": 1280,
"height": 720
}
],
"chargerCount": 4,
"availableCount": 3,
"ratingAverage": 4.6,
"ratingCount": 28
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List chargers at a location
curl 'https://api.proranked.com/emsp/v1/locations/{id}/chargers' \
-H 'X-API-Key: pr_…'{
"data": [
{
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"serialNumber": "SN-A1B2C3D4",
"status": "AVAILABLE",
"lastHeartbeat": "2026-06-19T18:42:07Z",
"isOnline": true,
"connectorCount": 2
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Driver reviews + rating summary for a location
curl 'https://api.proranked.com/emsp/v1/locations/{id}/reviews' \
-H 'X-API-Key: pr_…'{
"data": {
"summary": {
"average": 4.6,
"count": 28
},
"reviews": [
{
"id": "7e6d5c4b-3a2b-1c0d-9e8f-7a6b5c4d3e2f",
"rating": 5,
"comment": "Fast chargers, easy to find.",
"authorName": "Maya",
"isMine": false,
"createdAt": "2026-05-02T14:10:00Z",
"updatedAt": "2026-05-02T14:10:00Z"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Create or update the driver's review for a location
curl -X POST 'https://api.proranked.com/emsp/v1/locations/{id}/reviews' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "7e6d5c4b-3a2b-1c0d-9e8f-7a6b5c4d3e2f",
"rating": 5,
"comment": "Fast chargers, easy to find.",
"createdAt": "2026-05-02T14:10:00Z",
"updatedAt": "2026-06-19T18:42:09Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Report a problem at a location (raises an operator alert)
curl -X POST 'https://api.proranked.com/emsp/v1/locations/{id}/report' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"status": "received"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Describe the authenticated API key (identity, scopes, limits, driver)
Start here. Returns this key's family, environment, visibility, granted scopes and current capabilities, plus rate-limit and idempotency conventions. Use it to verify a key works: it returns content even on a brand-new account, whereas list endpoints correctly return an empty array that is indistinguishable from a bad credential.
curl 'https://api.proranked.com/emsp/v1/me-key' \ -H 'X-API-Key: pr_…'
{
"data": {
"apiVersion": "emsp/v1",
"apiFamily": "emsp",
"environment": "Production",
"keyType": "Rest",
"visibility": "Public",
"scopes": [
"string"
],
"capabilities": [
"string"
],
"driver": {
"authenticated": false,
"id": "00000000-0000-0000-0000-000000000000"
},
"accessibleNetworks": [
{
"id": "0a9fc2cf-2a7c-40d5-bdd5-27aabecf186e",
"name": "Nova Charge Co"
}
],
"rateLimit": {
"limit": 120,
"window": "1m",
"header": "X-RateLimit-Remaining"
},
"idempotency": {
"supported": true,
"header": "Idempotency-Key",
"appliesTo": "POST/PUT/PATCH/DELETE"
},
"discovery": {
"scopeCatalog": "/emsp/v1/.well-known/scopes"
}
},
"success": true,
"timestamp": "2026-07-26T02:41:09Z"
}Public network branding (name, logo, colors) for white-label theming
curl 'https://api.proranked.com/emsp/v1/networks/{networkId}/branding' \
-H 'X-API-Key: pr_…'{
"data": {
"networkId": "3f9a1c20-6b7d-4e8f-9a0b-1c2d3e4f5a6b",
"name": "Phevnix PR",
"logoUrl": "https://cdn.phevnix.com/networks/phevnix-pr/logo.svg",
"faviconUrl": "https://cdn.phevnix.com/networks/phevnix-pr/favicon.ico",
"logoBackground": "light",
"primaryColor": "#0EA5E9",
"secondaryColor": "#0F172A",
"termsUrl": "https://phevnix.com/terms",
"privacyUrl": "https://phevnix.com/privacy"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get the driver's notification preferences
curl 'https://api.proranked.com/emsp/v1/notifications/preferences' \ -H 'X-API-Key: pr_…'
{
"data": {
"channels": {
"push": true,
"email": true,
"sms": false
},
"events": {
"sessionStarted": true,
"sessionStopped": true,
"sessionFailed": true,
"reservationReminder": true,
"payment": true
},
"contact": {
"email": "[email protected]",
"phoneNumber": "+17875551234"
},
"updatedAt": "2026-06-19T18:42:09Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Update the driver's notification preferences
curl -X PUT 'https://api.proranked.com/emsp/v1/notifications/preferences' \ -H 'X-API-Key: pr_…'
{
"data": {
"channels": {
"push": true,
"email": true,
"sms": false
},
"events": {
"sessionStarted": true,
"sessionStopped": true,
"sessionFailed": true,
"reservationReminder": true,
"payment": true
},
"contact": {
"email": "[email protected]",
"phoneNumber": "+17875551234"
},
"updatedAt": "2026-06-19T18:42:09Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Discover how this network handles payment
curl 'https://api.proranked.com/emsp/v1/payments/config' \ -H 'X-API-Key: pr_…'
{
"data": {
"paymentMode": "phevnix_managed",
"phevnixBillingAvailable": true,
"provider": "stripe",
"publishableKey": "pk_live_51AbCdEfGhIjKlMnOpQrStUvWx",
"currency": "USD",
"methods": [
"string"
],
"preAuthorizationAmount": 25,
"minimumAmount": 1,
"maximumAmount": 500
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List the driver's saved cards (phevnix_managed only)
curl 'https://api.proranked.com/emsp/v1/payments/methods' \ -H 'X-API-Key: pr_…'
{
"data": {
"paymentMode": "phevnix_managed",
"methods": [
{
"id": "pm_1AbCdEfGhIjKlMnOpQrStUvW",
"brand": "visa",
"last4": "4242",
"expMonth": 12,
"expYear": 2029,
"isDefault": true
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Begin saving a card — returns a SetupIntent client_secret for the app
curl -X POST 'https://api.proranked.com/emsp/v1/payments/setup-intent' \ -H 'X-API-Key: pr_…'
{
"data": {
"clientSecret": "seti_1AbCdEfGhIjKl_secret_MnOpQrStUvWxYz",
"publishableKey": "pk_live_51AbCdEfGhIjKlMnOpQrStUvWx"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Begin saving a card via a Stripe-HOSTED page — returns a URL the driver opens in a browser
curl -X POST 'https://api.proranked.com/emsp/v1/payments/setup-checkout' \ -H 'X-API-Key: pr_…'
{
"data": {
"url": "https://checkout.stripe.com/c/pay/cs_test_a1B2c3D4e5F6"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Make a saved card the default
curl -X POST 'https://api.proranked.com/emsp/v1/payments/methods/{id}/default' \
-H 'X-API-Key: pr_…'{
"error": "payments_not_enabled",
"message": "Payments are not enabled for this network.",
"code": "payments_not_enabled",
"timestamp": "2026-06-19T18:42:09Z"
}Remove a saved card
curl -X DELETE 'https://api.proranked.com/emsp/v1/payments/methods/{id}' \
-H 'X-API-Key: pr_…'{
"error": "payments_not_enabled",
"message": "Payments are not enabled for this network.",
"code": "payments_not_enabled",
"timestamp": "2026-06-19T18:42:09Z"
}Report a session's payment status (managed networks capture automatically at stop)
curl -X POST 'https://api.proranked.com/emsp/v1/payments/checkout' \ -H 'X-API-Key: pr_…'
{
"data": {
"paymentMode": "phevnix_managed",
"sessionId": "7c6f5e40-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
"sessionStatus": "completed",
"paymentStatus": "captured",
"isFree": false,
"total": 8.45,
"currency": "USD",
"captured": true,
"note": "Capture happens automatically when the session stops; no manual checkout is needed for managed networks. A pre-authorization hold is placed at session start and the final amount is captured on stop."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Calculate charging cost
Calculates the estimated cost for a charging session based on tariff rates.
curl -X POST 'https://api.proranked.com/emsp/v1/pricing/calculate' \ -H 'X-API-Key: pr_…'
{
"data": {
"energyCost": 0,
"timeCost": 0,
"sessionFee": 0,
"idleFee": 0,
"subtotal": 0,
"tax": 0,
"total": 0,
"currency": "string",
"tariffName": "string"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Register this device's web-push subscription
curl -X POST 'https://api.proranked.com/emsp/v1/push/subscribe' \ -H 'X-API-Key: pr_…'
{
"data": {
"status": "subscribed"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Remove a web-push subscription
curl -X POST 'https://api.proranked.com/emsp/v1/push/unsubscribe' \ -H 'X-API-Key: pr_…'
Send a test push to the driver's devices
curl -X POST 'https://api.proranked.com/emsp/v1/push/test' \ -H 'X-API-Key: pr_…'
{
"data": {
"sent": 2,
"subscriptions": 2
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Unlock a connector
curl -X POST 'https://api.proranked.com/emsp/v1/remote-control/{chargerId}/unlock' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Ask the charger to re-send a message
curl -X POST 'https://api.proranked.com/emsp/v1/remote-control/{chargerId}/trigger' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"message": "StatusNotification",
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Reset a charger
curl -X POST 'https://api.proranked.com/emsp/v1/remote-control/{chargerId}/reset' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"type": "Soft",
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Export custom reports
Exports reports in JSON or CSV format. Supported types: daily-sales, by-location, by-user, sessions-summary.
curl 'https://api.proranked.com/emsp/v1/reports/export' \ -H 'X-API-Key: pr_…'
{
"data": {
"reportType": "daily-sales",
"generatedAt": "2026-06-19T18:42:09Z",
"fromDate": "2026-05-20T00:00:00Z",
"toDate": "2026-06-19T00:00:00Z",
"format": "json",
"recordCount": 30,
"data": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List reservations
curl 'https://api.proranked.com/emsp/v1/reservations' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "a3f9c812-6e7b-4d1a-9f0c-2b3e4d5f6a70",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargerName": "CP-IslaVerde-01",
"connectorNumber": 1,
"status": "Accepted",
"statusReason": "Rejected by charger",
"idTag": "DRV-7F3A91C2",
"expiryDate": "2026-06-19T19:00:00Z",
"createdAt": "2026-06-19T18:45:00Z",
"cancelledAt": "2026-06-19T18:52:00Z"
}
],
"success": true,
"timestamp": "2026-06-19T18:45:01Z"
}Reserve a connector
Holds a connector for the authenticated driver until the expiry time (OCPP ReserveNow).
curl -X POST 'https://api.proranked.com/emsp/v1/reservations' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "a3f9c812-6e7b-4d1a-9f0c-2b3e4d5f6a70",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargerName": "CP-IslaVerde-01",
"connectorNumber": 1,
"status": "Accepted",
"statusReason": "Rejected by charger",
"idTag": "DRV-7F3A91C2",
"expiryDate": "2026-06-19T19:00:00Z",
"createdAt": "2026-06-19T18:45:00Z",
"cancelledAt": "2026-06-19T18:52:00Z"
},
"success": true,
"timestamp": "2026-06-19T18:45:01Z"
}Get a reservation
curl 'https://api.proranked.com/emsp/v1/reservations/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "a3f9c812-6e7b-4d1a-9f0c-2b3e4d5f6a70",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargerName": "CP-IslaVerde-01",
"connectorNumber": 1,
"status": "Accepted",
"statusReason": "Rejected by charger",
"idTag": "DRV-7F3A91C2",
"expiryDate": "2026-06-19T19:00:00Z",
"createdAt": "2026-06-19T18:45:00Z",
"cancelledAt": "2026-06-19T18:52:00Z"
},
"success": true,
"timestamp": "2026-06-19T18:45:01Z"
}Cancel a reservation
curl -X DELETE 'https://api.proranked.com/emsp/v1/reservations/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "a3f9c812-6e7b-4d1a-9f0c-2b3e4d5f6a70",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargerName": "CP-IslaVerde-01",
"connectorNumber": 1,
"status": "Accepted",
"statusReason": "Rejected by charger",
"idTag": "DRV-7F3A91C2",
"expiryDate": "2026-06-19T19:00:00Z",
"createdAt": "2026-06-19T18:45:00Z",
"cancelledAt": "2026-06-19T18:52:00Z"
},
"success": true,
"timestamp": "2026-06-19T18:45:01Z"
}Get the effective charging limit for a connector
curl 'https://api.proranked.com/emsp/v1/smart-charging/{chargerId}/limit' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"unit": "A",
"accepted": true,
"schedule": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Set a max charging speed for a connector
curl -X PUT 'https://api.proranked.com/emsp/v1/smart-charging/{chargerId}/limit' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"unit": "A",
"limit": 16,
"profileId": 90001,
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Clear the driver-set charging limit on a connector
curl -X DELETE 'https://api.proranked.com/emsp/v1/smart-charging/{chargerId}/limit' \
-H 'X-API-Key: pr_…'{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"profileId": 90001,
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List available tariffs
curl 'https://api.proranked.com/emsp/v1/tariffs' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "d4c3b2a1-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"name": "Standard AC",
"description": "Default rate for AC chargers.",
"type": "REGULAR",
"currency": "USD",
"isFree": false,
"energyRate": 0.35,
"timeRate": 0,
"idleRate": 0.4,
"sessionFee": 0.5,
"minimumSessionFee": 1,
"maximumSessionFee": 50,
"taxRate": 11.5,
"effectiveFrom": "2026-01-01T00:00:00Z",
"effectiveTo": "2026-12-31T23:59:59Z"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get a tariff
curl 'https://api.proranked.com/emsp/v1/tariffs/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "d4c3b2a1-6f5e-4d3c-2b1a-0f9e8d7c6b5a",
"name": "Standard AC",
"description": "Default rate for AC chargers.",
"type": "REGULAR",
"currency": "USD",
"isFree": false,
"energyRate": 0.35,
"timeRate": 0,
"idleRate": 0.4,
"sessionFee": 0.5,
"minimumSessionFee": 1,
"maximumSessionFee": 50,
"taxRate": 11.5,
"effectiveFrom": "2026-01-01T00:00:00Z",
"effectiveTo": "2026-12-31T23:59:59Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List transactions
Returns a paginated list of transactions (CDRs) for the network.
curl 'https://api.proranked.com/emsp/v1/transactions' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"ocpiId": "string",
"sessionId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"startTime": null,
"endTime": null,
"totalEnergyKwh": 0,
"amount": 0,
"currency": "string",
"paymentStatus": "string",
"locationName": "string"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z",
"pagination": {
"totalCount": 412,
"page": 1,
"pageSize": 20,
"totalPages": 21,
"hasNextPage": true,
"hasPreviousPage": false
}
}Get transaction details
Returns detailed information about a specific transaction including cost breakdown.
curl 'https://api.proranked.com/emsp/v1/transactions/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"ocpiId": "string",
"sessionId": "00000000-0000-0000-0000-000000000000",
"userId": "00000000-0000-0000-0000-000000000000",
"startTime": null,
"endTime": null,
"totalEnergyKwh": 0,
"totalTimeMinutes": 0,
"currency": "string",
"paymentStatus": "string",
"locationId": "00000000-0000-0000-0000-000000000000",
"locationName": "string",
"locationAddress": "string",
"chargerUid": "string",
"connectorNumber": 0,
"costBreakdown": {
"energyCost": 0,
"timeCost": 0,
"sessionFee": 0,
"idleFee": 0,
"subtotal": 0,
"tax": 0,
"total": 0
}
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List users
Returns a paginated list of users in the network.
curl 'https://api.proranked.com/emsp/v1/users' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"email": "[email protected]",
"firstName": "Maya",
"lastName": "Rivera",
"phoneNumber": "+17875551234",
"address": "123 Calle Sol",
"city": "San Juan",
"state": "PR",
"postalCode": "00901",
"country": "US",
"createdAt": "2026-01-15T09:30:00Z",
"lastUpdated": "2026-06-18T14:05:33Z",
"totalSessions": 27,
"totalEnergyKwh": 412.5,
"totalSpent": 186.4,
"currency": "USD"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z",
"pagination": {
"totalCount": 137,
"page": 1,
"pageSize": 20,
"totalPages": 7,
"hasNextPage": true,
"hasPreviousPage": false
}
}Create a new user
Creates a new user/driver in the network. Returns the created user with statistics.
curl -X POST 'https://api.proranked.com/emsp/v1/users' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"email": "[email protected]",
"firstName": "Maya",
"lastName": "Rivera",
"phoneNumber": "+17875551234",
"address": "123 Calle Sol",
"city": "San Juan",
"state": "PR",
"postalCode": "00901",
"country": "US",
"createdAt": "2026-01-15T09:30:00Z",
"lastUpdated": "2026-06-18T14:05:33Z",
"totalSessions": 27,
"totalEnergyKwh": 412.5,
"totalSpent": 186.4,
"currency": "USD"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Get user details
Returns detailed information about a user including charging statistics.
curl 'https://api.proranked.com/emsp/v1/users/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"email": "[email protected]",
"firstName": "Maya",
"lastName": "Rivera",
"phoneNumber": "+17875551234",
"address": "123 Calle Sol",
"city": "San Juan",
"state": "PR",
"postalCode": "00901",
"country": "US",
"createdAt": "2026-01-15T09:30:00Z",
"lastUpdated": "2026-06-18T14:05:33Z",
"totalSessions": 27,
"totalEnergyKwh": 412.5,
"totalSpent": 186.4,
"currency": "USD"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Update user information
Updates an existing user's information. Only provided fields are updated.
curl -X PUT 'https://api.proranked.com/emsp/v1/users/{id}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "1ae38f39-2c4b-4d5e-9f10-3a4b5c6d7e8f",
"email": "[email protected]",
"firstName": "Maya",
"lastName": "Rivera",
"phoneNumber": "+17875551234",
"address": "123 Calle Sol",
"city": "San Juan",
"state": "PR",
"postalCode": "00901",
"country": "US",
"createdAt": "2026-01-15T09:30:00Z",
"lastUpdated": "2026-06-18T14:05:33Z",
"totalSessions": 27,
"totalEnergyKwh": 412.5,
"totalSpent": 186.4,
"currency": "USD"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}List the driver's wallet balances (per operator network)
curl 'https://api.proranked.com/emsp/v1/wallet' \ -H 'X-API-Key: pr_…'
Recent wallet ledger entries for the driver
curl 'https://api.proranked.com/emsp/v1/wallet/ledger' \ -H 'X-API-Key: pr_…'
List webhook subscriptions
curl 'https://api.proranked.com/emsp/v1/webhooks' \ -H 'X-API-Key: pr_…'
{
"data": [
{
"id": "3a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"url": "https://example.com/hooks/phevnix",
"events": "charging.session.started,charging.session.stopped",
"description": "Billing pipeline hook",
"is_active": true,
"consecutive_failures": 0,
"disabled_at": "2026-06-19T18:42:09Z",
"disabled_reason": "Too many consecutive delivery failures",
"created_at": "2026-06-19T18:42:09Z",
"updated_at": "2026-06-19T18:42:09Z"
}
]
}Create webhook subscription
curl -X POST 'https://api.proranked.com/emsp/v1/webhooks' \ -H 'X-API-Key: pr_…'
{
"data": {
"id": "3a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"url": "https://example.com/hooks/phevnix",
"events": "charging.session.started,charging.session.stopped",
"description": "Billing pipeline hook",
"hmac_secret": "whsec_REDACTED_store_this_value_now",
"is_active": true,
"created_at": "2026-06-19T18:42:09Z"
}
}Update webhook subscription
curl -X PATCH 'https://api.proranked.com/emsp/v1/webhooks/{webhookId}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "3a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"url": "https://example.com/hooks/phevnix",
"events": "charging.session.started,charging.session.stopped",
"description": "Billing pipeline hook",
"is_active": true,
"consecutive_failures": 0,
"disabled_at": "2026-06-19T18:42:09Z",
"disabled_reason": "Too many consecutive delivery failures",
"created_at": "2026-06-19T18:42:09Z",
"updated_at": "2026-06-19T18:42:09Z"
}
}Delete webhook subscription
curl -X DELETE 'https://api.proranked.com/emsp/v1/webhooks/{webhookId}' \
-H 'X-API-Key: pr_…'{
"error": "not_found",
"message": "Webhook subscription not found"
}Send test event to webhook
curl -X POST 'https://api.proranked.com/emsp/v1/webhooks/{webhookId}/test' \
-H 'X-API-Key: pr_…'{
"data": {
"webhook_id": "3a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"test_enqueued": true
}
}List webhook deliveries
curl 'https://api.proranked.com/emsp/v1/webhooks/{webhookId}/deliveries' \
-H 'X-API-Key: pr_…'{
"data": [
{
"id": "6f5e4d3c-2b1a-0e9f-8d7c-6b5a4c3d2e1f",
"event_type": "charging.session.stopped",
"http_status": 200,
"success": true,
"status": "Delivered",
"attempts": 1,
"created_at": "2026-06-19T18:42:09Z",
"completed_at": "2026-06-19T18:42:11Z"
}
],
"pagination": {
"page": 1,
"page_size": 20,
"total_count": 57,
"total_pages": 3
}
}Get webhook delivery detail
curl 'https://api.proranked.com/emsp/v1/webhooks/{webhookId}/deliveries/{deliveryId}' \
-H 'X-API-Key: pr_…'{
"data": {
"id": "6f5e4d3c-2b1a-0e9f-8d7c-6b5a4c3d2e1f",
"event_type": "charging.session.stopped",
"payload": "{\"event\":\"charging.session.stopped\",\"sessionId\":\"7c6f5e40-1a2b-3c4d-5e6f-7a8b9c0d1e2f\"}",
"http_status": 200,
"response_body": "OK",
"success": true,
"status": "Delivered",
"attempts": 1,
"max_attempts": 5,
"duration_ms": 142,
"next_retry_at": "2026-06-19T18:47:09Z",
"created_at": "2026-06-19T18:42:09Z",
"completed_at": "2026-06-19T18:42:11Z"
}
}Retry a webhook delivery
curl -X POST 'https://api.proranked.com/emsp/v1/webhooks/{webhookId}/deliveries/{deliveryId}/retry' \
-H 'X-API-Key: pr_…'{
"data": {
"delivery_id": "6f5e4d3c-2b1a-0e9f-8d7c-6b5a4c3d2e1f",
"retry_enqueued": true
}
}List available webhook event types
curl 'https://api.proranked.com/emsp/v1/webhooks/event-types' \ -H 'X-API-Key: pr_…'
{
"data": [
"string"
]
}