This documentation aims to provide all the information you need to work with our API.
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).
To authenticate requests, include an Authorization
header with the value "Bearer {YOUR_BEARER_TOKEN}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
This API requires two layers of authentication:
API Endpoints for Authentication
Logout: Logs out the authenticated user by deleting their access token.
login
method requires the user to have a verified email before they can log in.login
endpoint to prevent brute force attacks. The limiter is reset after a successful login.The logout
method only works for authenticated users and deletes the current access token.
This endpoint registers a new user with the provided data. The user will receive an email verification link.
curl --request POST \
"https://api.powerly.app/api/v1/auth/register" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\",
\"password\": \"secret\",
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"latitude\": 37.7749,
\"longitude\": -122.4194,
\"country_id\": 1,
\"vat_id\": \"123456789\",
\"currency\": \"USD\"
}"
This endpoint allows a user to log in by providing their email and password.
curl --request POST \
"https://api.powerly.app/api/v1/auth/login" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\",
\"password\": \"secret\"
}"
Checks if a user with the specified email exists in the system.
curl --request POST \
"https://api.powerly.app/api/v1/auth/email/check" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\"
}"
{
"success": 1,
"message": "Done!",
"data": {
"email_exists": 1,
"require_verification": 1
}
}
To verify the email, you will need the email used in the registration and code received in this email,
curl --request POST \
"https://api.powerly.app/api/v1/auth/email/verify" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"code\": \"7117\",
\"email\": \"[email protected]\"
}"
{
"data": {
"id": 135231,
"customer_type": "C",
"first_name": "",
"last_name": "",
"full_name": "",
"contact_number": "966977977974",
"email": "[email protected]",
"balance": "0.00",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnYXNhYmxlLnRlc3QiLCJpYXQiOjE3MTYwMjc4ODQsImV4cCI6MTc0NzU2Mzg4NCwiZGF0YSI6eyJ1c2VyX2lkIjoxMzUyMzEsInVzZXJfdHlwZSI6MX19.NlcGZdzy4kKACb1fJSSxL-VVJIwvvTbTqtz0_Rvv3_E"
},
"success": 1,
"message": "Done!"
}
You can resend the verification code to the user's email address.
Note that resending the code reduces the number of allowable code attempts, thereby increasing the time until the next code can be sent.
curl --request POST \
"https://api.powerly.app/api/v1/auth/resend-verification" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\"
}"
{
"success": 1,
"message": "Please enter the verification code to continue.",
"data": {
"require_verification": 1,
"verification_token": "27ee3f39-8768-4bc3-a6ae-440d87660b02",
"can_resend_in_seconds": 60,
"available_attempts": 3
}
}
This endpoint logs out the authenticated user by deleting their current access token.
curl --request POST \
"https://api.powerly.app/api/v1/auth/logout" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
Endpoints related to password reset functionality.
curl --request POST \
"https://api.powerly.app/api/v1/auth/password/forgot" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\"
}"
{
"success": 1,
"message": "Please enter the verification code to continue.",
"data": {
"require_verification": 1,
"verification_token": "aacc04ec-8f5f-4e99-a2d5-539f66426aa4",
"can_resend_in_seconds": 60,
"available_attempts": 3,
"sent_to": ""
}
}
curl --request POST \
"https://api.powerly.app/api/v1/auth/password/reset" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"code\": 1234,
\"email\": \"[email protected]\",
\"password\": \"\\\"NewSecureP@ss1\\\"\",
\"password_confirmation\": \"\\\"NewSecureP@ss1\\\"\"
}"
{
"message": "Done."
}
int|null The ID of the country to fetch offers for. If not provided, the user's country will be used.
curl --request GET \
--get "https://api.powerly.app/api/v1/balance/offers?country_id=1" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"country_id\": 12
}"
{
"data": [
{
"id": 1,
"title_en": "Premium Package",
"title_ar": "الباقة الممتازة",
"title_es": "Paquete Premium",
"price": "13620.94",
"bonus": "0.00",
"vat": "0.00",
"total_price": "13620.94",
"total_balance": "13620.94",
"popular": false,
"active": true
},
{
"id": 2,
"title_en": "Basic Plan",
"title_ar": "الخطة الأساسية",
"title_es": "Plan Básico",
"price": "2587.98",
"bonus": "0.00",
"vat": "0.00",
"total_price": "2587.98",
"total_balance": "2587.98",
"popular": false,
"active": true
}
],
"success": 1,
"message": "Done!"
}
curl --request POST \
"https://api.powerly.app/api/v1/balance/top-up" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"offer_id\": 1,
\"payment_method_id\": \"\\\"pm_1234567890\\\"\"
}"
{
"status": "success",
"message": "refill_balance_success",
"data": {
"new_balance": 1500,
"next_action": {
"type": "redirect",
"url": "https://paymentgateway.com/redirect?session_id=xyz123"
}
}
}
curl --request GET \
--get "https://api.powerly.app/api/v1/countries" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 9
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
This endpoint returns a list of all unique currencies available in the system. The response includes an array of currency codes.
curl --request GET \
--get "https://api.powerly.app/api/v1/countries/currencies" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done!",
"data": [
{
"currency_iso": "AED"
},
{
"currency_iso": "AFN"
},
{
"currency_iso": "ALL"
},
{
"currency_iso": "AMD"
},
{
"currency_iso": "ANG"
},
...]
}
APIs for managing user devices
curl --request GET \
--get "https://api.powerly.app/api/v1/device" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"id": 9,
"device_type": 2,
"device_model": "android",
"device_version": null,
"device_language": "fr",
"updated_at": "2025-02-13 21:56:03",
"app_version": "2.1"
},
"success": 1,
"message": "Terminé !"
}
curl --request PUT \
"https://api.powerly.app/api/v1/device" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "Accept-Language: string The preferred response language. Example: \"fr\"" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"device_imei\": \"\\\"123456789012345\\\"\",
\"device_token\": \"\\\"abcdef123456\\\"\",
\"device_type\": 1,
\"device_model\": \"\\\"Samsung Galaxy S21\\\"\",
\"device_version\": \"\\\"Android 12\\\"\",
\"app_version\": \"\\\"1.2.3\\\"\",
\"lang\": \"\\\"fr\\\"\"
}"
{
"data": {
"id": 9,
"device_type": 2,
"device_model": "android",
"device_version": null,
"device_language": "fr",
"updated_at": "2025-02-13 21:56:03",
"app_version": "2.1"
},
"success": 1,
"message": "Terminé !"
}
The status of the orders to filter by.
active
complete
curl --request GET \
--get "https://api.powerly.app/api/v1/orders?status=complete" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 4
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
curl --request POST \
"https://api.powerly.app/api/v1/orders" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"quantity\": \"consectetur\",
\"power_source_id\": \"animi\"
}"
curl --request POST \
"https://api.powerly.app/api/v1/orders/stop" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"power_source_id\": \"ut\",
\"order_id\": 18
}"
Retrieves sales insights for the orders, including daily sales data, total earnings, charge point statistics, and average rating.
curl --request GET \
--get "https://api.powerly.app/api/v1/orders/insights" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done!",
"data": {
"sales": {
"labels": [
"2025-02-25",
"2025-02-26",
"2025-02-27",
"2025-02-28",
"2025-03-01",
"2025-03-02",
"2025-03-03",
"2025-03-04",
"2025-03-05",
"2025-03-06",
"2025-03-07",
"2025-03-08",
"2025-03-09",
"2025-03-10",
"2025-03-11",
"2025-03-12",
"2025-03-13",
"2025-03-14",
"2025-03-15",
"2025-03-16",
"2025-03-17",
"2025-03-18",
"2025-03-19",
"2025-03-20",
"2025-03-21",
"2025-03-22",
"2025-03-23",
"2025-03-24",
"2025-03-25"
],
"datasets": [
{
"label": "Sales",
"backgroundColor": "#f87979",
"data": [
1,
4,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
3,
0,
0,
0,
0,
0,
0,
56,
0,
50,
0,
30,
36,
36,
36,
0,
2
]
}
]
},
"totalEarnings": "564152.12",
"totalChargePoints": 11,
"activeChargePoints": 5,
"averageRating": "2.90"
}
}
The ID of the order.
curl --request GET \
--get "https://api.powerly.app/api/v1/orders/doloremque" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 3
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
curl --request GET \
--get "https://api.powerly.app/api/v1/orders/commodi/review" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 2
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
curl --request POST \
"https://api.powerly.app/api/v1/orders/quam/review" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "rating=1"\
--form "content=I had a great experience with the 50kW fast charger at City Mall. It charged my vehicle from 20% to 80% in about 30 minutes."\
--form "media[]=@/tmp/phpC5opcn"
curl --request PUT \
"https://api.powerly.app/api/v1/orders/eaque/review/skip" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
curl --request GET \
--get "https://api.powerly.app/api/v1/payment-cards/default" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 7
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
The ID of the default.
curl --request POST \
"https://api.powerly.app/api/v1/payment-cards/default/earum" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
curl --request GET \
--get "https://api.powerly.app/api/v1/payment-cards" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 6
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
curl --request POST \
"https://api.powerly.app/api/v1/payment-cards" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"harum\"
}"
The ID of the payment card.
curl --request GET \
--get "https://api.powerly.app/api/v1/payment-cards/quia" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 5
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
The ID of the payment card.
curl --request PUT \
"https://api.powerly.app/api/v1/payment-cards/amet" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"paymentObject\": [
\"sunt\"
]
}"
The ID of the payment card.
curl --request DELETE \
"https://api.powerly.app/api/v1/payment-cards/non" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
curl --request GET \
--get "https://api.powerly.app/api/v1/payout-methods" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
curl --request GET \
--get "https://api.powerly.app/api/v1/payout-methods/available" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
curl --request POST \
"https://api.powerly.app/api/v1/payout-methods/add/aut" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\",
\"id\": \"qui\",
\"userType\": \"company\",
\"fullname\": \"YASSER BELHIMER\",
\"address\": \"impedit\",
\"TIN\": \"HFIIBEB1SDF5644\"
}"
curl --request POST \
"https://api.powerly.app/api/v1/payout-methods/update/quaerat" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"[email protected]\",
\"id\": \"aut\",
\"userType\": \"company\",
\"fullname\": \"YASSER BELHIMER\",
\"address\": \"possimus\",
\"TIN\": \"HFIIBEB1SDF5644\"
}"
curl --request DELETE \
"https://api.powerly.app/api/v1/payout-methods/delete/sit" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
the number of items per page
curl --request GET \
--get "https://api.powerly.app/api/v1/payouts?itemsPerPage=4" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
curl --request POST \
"https://api.powerly.app/api/v1/payouts/request-payout" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"payoutMethod\": 8
}"
Optional type filter, defaults to "charging-site".
Optional search query to filter categories.
Number of items per page (-1 for all).
curl --request GET \
--get "https://api.powerly.app/api/v1/categories?type=quo&search=assumenda&itemsPerPage=4" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 58,
"type": "charging-site",
"name": "maximes",
"color": "#D2B48C"
},
{
"id": 57,
"type": "charging-site",
"name": "tests",
"color": "#A52A2A"
}
],
"links": {
"first": "http://localhost:8080/api/v1/categories?page=1",
"last": "http://localhost:8080/api/v1/categories?page=11",
"prev": null,
"next": "http://localhost:8080/api/v1/categories?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 11,
"path": "http://localhost:8080/api/v1/categories",
"per_page": 5,
"to": 5,
"total": 55
},
"success": 1,
"message": "Done!"
}
curl --request POST \
"https://api.powerly.app/api/v1/categories" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"\\\"service 1\\\"\",
\"type\": \"\\\"charging-site\\\"\"
}"
{
"data": {
"id": 59,
"type": "charging-site",
"name": "service 1",
"color": "#D2B48C"
},
"success": 1,
"message": "Done!"
}
The ID of the category.
curl --request GET \
--get "https://api.powerly.app/api/v1/categories/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"id": 59,
"type": "charging-site",
"name": "service 1",
"color": "#D2B48C"
},
"success": 1,
"message": "Done!"
}
The ID of the category.
curl --request PUT \
"https://api.powerly.app/api/v1/categories/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Electronics\"
}"
{
"data": {
"id": 59,
"type": "charging-site",
"name": "service 1",
"color": "#D2B48C"
},
"success": 1,
"message": "Done!"
}
The ID of the category.
curl --request DELETE \
"https://api.powerly.app/api/v1/categories/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done"
}
The ID of the power center.
curl --request GET \
--get "https://api.powerly.app/api/v1/power-centers/1/range-prices" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": true,
"data": [
{
"id": 1,
"price": 10.5,
"starting_time": "08:00",
"ending_time": "18:00"
}
]
}
The ID of the power center.
curl --request POST \
"https://api.powerly.app/api/v1/power-centers/1/range-prices" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"price\": 99.99,
\"starting_time\": \"09:00\",
\"ending_time\": \"17:00\"
}"
{
"success": true,
"data": {
"id": 2,
"price": 15.75,
"starting_time": "09:00",
"ending_time": "17:00"
}
}
The ID of the range price.
curl --request GET \
--get "https://api.powerly.app/api/v1/range-prices/2" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": true,
"data": {
"id": 2,
"price": 15.75,
"starting_time": "09:00",
"ending_time": "17:00"
}
}
The ID of the range price.
curl --request PUT \
"https://api.powerly.app/api/v1/range-prices/2" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"price\": 99.99,
\"starting_time\": \"09:00\",
\"ending_time\": \"17:00\"
}"
{
"success": true,
"data": {
"id": 2,
"price": 12,
"starting_time": "10:00",
"ending_time": "20:00"
}
}
The ID of the range price.
curl --request DELETE \
"https://api.powerly.app/api/v1/range-prices/2" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": true
}
Retrieves insights for a specified Power Center, including earnings, charging time, energy consumption, and order count for today, this week, and this month.
The ID of the power center.
curl --request GET \
--get "https://api.powerly.app/api/v1/power-centers/laboriosam/insights" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done!",
"data": {
"today": {
"earnings": "0.00",
"chargingTime": "0.00",
"energyConsumed": "0.00",
"ordersNb": 0
},
"thisWeek": {
"earnings": "0.00",
"chargingTime": "0.00",
"energyConsumed": "0.00",
"ordersNb": 0,
"date": "18-03-2025"
},
"thisMonth": {
"earnings": "0.00",
"chargingTime": "0.00",
"energyConsumed": "0.00",
"ordersNb": 0,
"date": "23-02-2025"
}
}
}
Get the list of power centers owned by the current user.
Retrieves a paginated list of charging stations (power centers) that belong to the authenticated user.
Optional. Filter stations by identifier, title, or description.
Optional. Number of items per page (default: 15). Must be at least 1.
curl --request GET \
--get "https://api.powerly.app/api/v1/power-centers?search=%22Fast+Charger%22&itemsPerPage=10" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"search\": \"dolor\",
\"itemsPerPage\": 28
}"
{
"success": 1,
"message": "Done!",
"data": [
{
"id": 23,
"identifier": "tesst",
"category": "EV_CHARGER",
"price_unit": "minutes",
"title": "tesst",
...
}
],
"meta": {
"current_page": 1,
"last_page": 2,
"per_page": 3,
"total": 5
}
}
Creates a new power center for the authenticated user. The request must include required details such as title and category. Returns the created power center on success.
curl --request POST \
"https://api.powerly.app/api/v1/power-centers" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"identifier\": \"EV_CHARGER_ABC123\",
\"title\": \"Fast Charger Station\",
\"description\": \"A high-speed EV charging station.\",
\"category\": \"EV_CHARGER\",
\"latitude\": \"36.630751\",
\"longitude\": \"2.945236\",
\"address_line_1\": \"Tessala El Merdja, Algiers, Algeria\",
\"zipcode\": \"16000\",
\"city\": \"Algiers\",
\"contact_number\": \"+213550123456\",
\"open_time\": \"08:00:00\",
\"close_time\": \"22:00:00\",
\"price\": 5.99,
\"price_currency\": \"USD\",
\"price_unit\": \"minutes\",
\"type\": 1,
\"session_limit_value\": 60,
\"session_limit_type\": \"minutes\",
\"amenities\": [
15
],
\"connectors\": [
{
\"id\": 1,
\"number\": 2
},
{
\"id\": 2,
\"number\": 1
}
],
\"listed\": 1
}"
{
"success": 1,
"message": "Done!",
"data": {
"id": 23,
"identifier": "tesst",
"category": "EV_CHARGER",
"price_unit": "minutes",
"title": "tesst",
...
}
Retrieves the details of a specific power center by its ID. Only accessible if the power center exists.
The ID of the power center.
curl --request GET \
--get "https://api.powerly.app/api/v1/power-centers/5" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done!",
"data": {
"id": 23,
"identifier": "tesst",
"category": "EV_CHARGER",
"price_unit": "minutes",
"title": "tesst",
...
}
Updates an existing power center’s details. Only the owner of the power center can perform this action. Returns the updated resource on success.
The ID of the power center.
curl --request PUT \
"https://api.powerly.app/api/v1/power-centers/5" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"Fast Charger Station\",
\"description\": \"A high-speed EV charging station.\",
\"latitude\": \"36.630751\",
\"longitude\": \"2.945236\",
\"address_line_1\": \"Tessala El Merdja, Algiers, Algeria\",
\"zipcode\": \"16000\",
\"city\": \"Algiers\",
\"contact_number\": \"+213550123456\",
\"open_time\": \"08:00:00\",
\"close_time\": \"22:00:00\",
\"price\": 5.99,
\"price_currency\": \"USD\",
\"category\": \"EV_CHARGER\",
\"amenities\": [
19
],
\"connectors\": [
{
\"id\": 1,
\"number\": 2
},
{
\"id\": 2,
\"number\": 1
}
],
\"price_unit\": \"minutes\",
\"session_limit_value\": 60,
\"session_limit_type\": \"minutes\",
\"listed\": false,
\"type\": 1
}"
{
"success": 1,
"message": "Done!",
"data": {
"id": 23,
"identifier": "tesst",
"category": "EV_CHARGER",
"price_unit": "minutes",
"title": "tesst",
...
}
Deletes a power center from the system. Only the owner of the power center can delete it. Once deleted, the power center is no longer accessible.
The ID of the power center.
curl --request DELETE \
"https://api.powerly.app/api/v1/power-centers/5" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done."
}
Optional search query to filter groups.
Number of groups per page.
If set to true, includes associated power centers in the response.
curl --request GET \
--get "https://api.powerly.app/api/v1/groups?search=ut&itemsPerPage=16&power-centers=" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 1,
"name": "Main Group",
"company_name": "Energy Co.",
"license_code": "XYZ123",
"charge_points_count": 5,
"power_centers": []
}
],
"success": 1,
"message": "Done!"
}
curl --request POST \
"https://api.powerly.app/api/v1/groups" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Energy Savers\",
\"company_name\": \"GreenTech Ltd.\",
\"license_code\": \"LC-12345\",
\"power_centers\": [
\"sed\"
]
}"
{
"data": {
"id": 2,
"name": "Secondary Group",
"company_name": "Green Energy",
"license_code": "ABC987",
"charge_points_count": 0,
"power_centers": []
},
"success": 1,
"message": "Created successfully!"
}
The ID of the group.
If set to true, includes associated power centers in the response.
curl --request GET \
--get "https://api.powerly.app/api/v1/groups/1?power-centers=" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"id": 1231,
"name": "group 1",
"company_name": "test",
"license_code": null,
"power_centers_number": 2,
"power_centers": [
{
"id": 20,
"identifier": "CP:D4Cb5",
"category": "EV_CHARGER",
...
},
...
]
},
"success": 1,
"message": "Done!"
}
The ID of the group.
curl --request PUT \
"https://api.powerly.app/api/v1/groups/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Energy Savers\",
\"company_name\": \"GreenTech Ltd.\",
\"license_code\": \"LC-12345\",
\"power_centers\": [
\"nesciunt\"
]
}"
{
"data": {
"id": 2,
"name": "Updated Group Name",
"company_name": "Updated Energy",
"license_code": "NEW456",
"charge_points_count": 3,
"power_centers": []
},
"success": 1,
"message": "Updated successfully!"
}
The ID of the group.
curl --request DELETE \
"https://api.powerly.app/api/v1/groups/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done"
}
Optional search query to filter groups.
Number of groups per page. Defaults to 15.
If set to true, includes associated power centers in the response.
curl --request GET \
--get "https://api.powerly.app/api/v1/sites?search=iure&itemsPerPage=7&power-centers=1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 159,
"category": {
"id": 51,
"type": "charging-site",
"name": "test",
"color": "#654321"
},
"name": "test",
"status": true,
"active": true,
"start_date": "2024-10-10",
"end_date": "2024-10-11",
"integration_code": null,
"address": {
"id": 161,
"latitude": "29.608637026617",
"longitude": "14.589843749997",
"country": {
"id": 195,
"name": "Algeria"
},
"state": "xxxxx",
"city": "xxxxx",
"zipcode": "xxxxx",
"address_line_1": "CITY 100 LOGS ...."
}
}
],
"links": {
"first": "http://localhost:8080/api/v1/sites?page=1",
"last": "http://localhost:8080/api/v1/sites?page=22",
"prev": null,
"next": "http://localhost:8080/api/v1/sites?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 22,
"path": "http://localhost:8080/api/v1/sites",
"per_page": 5,
"to": 5,
"total": 107
},
"success": 1,
"message": "Done!"
}
curl --request POST \
"https://api.powerly.app/api/v1/sites" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Downtown EV Station\",
\"category\": 5,
\"status\": false,
\"start_date\": \"2024-06-01\",
\"end_date\": \"2024-12-31\",
\"integration_code\": \"EVS12345\",
\"power_centers\": [
1
],
\"address\": {
\"country_id\": 195,
\"state\": \"Algiers\",
\"city\": \"Douera\",
\"zipcode\": \"16049\",
\"address_line_1\": \"CITY 100 LOGS\",
\"address_line_2\": \"Building A, Floor 3\",
\"latitude\": 36.657913,
\"longitude\": 3.940137
}
}"
{
"data": {
"id": 164,
"category": null,
"name": "Site 11",
"status": true,
"active": true,
"start_date": null,
"end_date": null,
"integration_code": null,
"address": {
"id": 166,
"latitude": "0",
"longitude": "0",
"country": {
"id": 195,
"name": "Algeria"
},
"state": "Algiers",
"city": "Douera",
"address_line_1": "Dekakna"
}
},
"success": 1,
"message": "Done!"
}
The ID of the site.
If set to true, includes associated power centers in the response.
curl --request GET \
--get "https://api.powerly.app/api/v1/sites/1?power-centers=1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"id": 164,
"category": null,
"name": "Site 11",
"status": true,
"active": true,
"start_date": null,
"end_date": null,
"integration_code": null,
"address": {
"id": 166,
"latitude": "0",
"longitude": "0",
"country": {
"id": 195,
"name": "Algeria"
},
"state": "Algiers",
"city": "Douera",
"address_line_1": "Dekakna"
}
},
"success": 1,
"message": "Done!"
}
The ID of the site.
curl --request PUT \
"https://api.powerly.app/api/v1/sites/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Downtown EV Station\",
\"category\": 5,
\"status\": false,
\"start_date\": \"2024-06-01\",
\"end_date\": \"2024-12-31\",
\"integration_code\": \"EVS12345\",
\"power_centers\": [
1
],
\"address\": {
\"country_id\": 195,
\"state\": \"Algiers\",
\"city\": \"Douera\",
\"zipcode\": \"16049\",
\"address_line_1\": \"CITY 100 LOGS\",
\"address_line_2\": \"Building A, Floor 3\",
\"latitude\": 36.657913,
\"longitude\": 2.940137
}
}"
{
"data": {
"id": 164,
"category": null,
"name": "Updated Site",
"status": true,
"active": true,
"start_date": null,
"end_date": null,
"integration_code": null,
"address": {
"id": 166,
"latitude": "0",
"longitude": "0",
"country": {
"id": 195,
"name": "Algeria"
},
"state": "Algiers",
"city": "Douera",
"address_line_1": "Updated Address"
}
},
"success": 1,
"message": "Done!"
}
The ID of the site.
curl --request DELETE \
"https://api.powerly.app/api/v1/sites/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done"
}
This endpoint returns a collection of media resources linked to the given station. It provides images, videos, or other media types that might be useful for users interacting with the charging station.
The station for which media files are being retrieved.
curl --request GET \
--get "https://api.powerly.app/api/v1/stations/14/media" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 1
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
curl --request GET \
--get "https://api.powerly.app/api/v1/stations" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"search\": \"ndsggxuthjtrvslpwsscqgzyyjjktawdyzgycspjojjd\",
\"latitude\": -90,
\"longitude\": -179
}"
cache-control
: no-cache, private
content-type
: application/json
x-ratelimit-limit
: 10
x-ratelimit-remaining
: 0
vary
: Origin
{
"success": 0,
"message": "The API key is invalid or missing."
}
The ID of the station.
curl --request GET \
--get "https://api.powerly.app/api/v1/stations/mollitia" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
curl --request GET \
--get "https://api.powerly.app/api/v1/stations/token/sed" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
curl --request GET \
--get "https://api.powerly.app/api/v1/stations/in/reviews" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
curl --request GET \
--get "https://api.powerly.app/api/v1/reviews/options" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
curl --request GET \
--get "https://api.powerly.app/api/v1/reviews" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
The ID of the review.
curl --request GET \
--get "https://api.powerly.app/api/v1/reviews/aspernatur" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": 0,
"message": "Too many requests. Please try again later."
}
API Endpoints for User Management
Key features include:
Show Current User Info
Retrieve the profile details of the currently authenticated user.
curl --request GET \
--get "https://api.powerly.app/api/v1/users/me" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"latitude": 40.7128,
"longitude": -74.006
}
curl --request PUT \
"https://api.powerly.app/api/v1/users/me" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"password\": \"`)\\\\E[*SzeA\",
\"first_name\": \"cfkvmbrzsxgqbxt\",
\"last_name\": \"pvegzozlmhetzbuuujobkda\",
\"latitude\": -90,
\"longitude\": -180,
\"vat_id\": \"cumtjbepomztwk\",
\"currency\": \"velit\",
\"country_id\": 12
}"
Deletes the currently authenticated user's account.
curl --request DELETE \
"https://api.powerly.app/api/v1/users/me" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
This endpoint retrieves a list of vehicle makes available in the system. Optionally, you can filter the results by the owner of the makes.
optional If true, filters the makes by those added by the current user.
curl --request GET \
--get "https://api.powerly.app/api/v1/vehicles/makes?owner=1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 2,
"code": "TSL",
"name": "Tesla",
"logo": "http:\/\/localhost:8080\/storage\/https:\/\/www.carlogos.org\/car-logos\/tesla-logo-2007-full-640.png",
"added_by": null
},
...
],
"success": 1,
"message": "Done!"
}
This endpoint retrieves a list of vehicle models associated with a particular vehicle make. Optionally, you can filter the results by the owner of the models.
optional The ID of the vehicle make to filter models.
optional If true, filters the models by those added by the current user.
curl --request GET \
--get "https://api.powerly.app/api/v1/vehicles/models/1?owner=1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 2,
"code": "Model X",
"name": "Model X 100D",
"make": {
"name": "Tesla",
"id": 2
},
"added_by": null
},
...
],
"success": 1,
"message": "Done!"
}
This endpoint retrieves a list of charging connectors available in the system.
curl --request GET \
--get "https://api.powerly.app/api/v1/vehicles/connectors" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 3,
"name": "Type 1 - J1772",
"icon": "http:\/\/gasablev4.loc\/connectors\/Type 1.png",
"type": "",
"max_power": 0
},
...
],
"success": 1,
"message": "Done!"
}
This endpoint retrieves a list of all vehicles associated with the currently authenticated user.
curl --request GET \
--get "https://api.powerly.app/api/v1/vehicles" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"id": 61,
"title": "Tesla Model SA",
"make": {},
"model": {},
"year": 2022,
"version": "V1",
"color": "Red",
"license_plate": "ABC-1234",
"fuel_type": "Electric",
"charging_connector": {},
"active": 1,
"owner": {},
"detail": {}
}
],
"success": 1,
"message": "Done!"
}
This endpoint allows users to add a new vehicle to their account. The request must include details about the vehicle, such as model, year, and other optional details like color and license plate.
curl --request POST \
"https://api.powerly.app/api/v1/vehicles" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"Tesla Model S\",
\"vehicle_model_id\": 1,
\"year\": 2020,
\"version\": \"Long Range\",
\"color\": \"Red\",
\"license_plate\": \"XYZ 123\",
\"fuel_type\": \"Electric\",
\"charging_connector_id\": 1,
\"active\": 1,
\"vehicle_details\": {
\"battery_capacity\": 75,
\"charging_speed\": 150,
\"safety_rating\": 5,
\"mileage\": 15,
\"fuel_efficiency\": 16
}
}"
{
"data": {
"id": 61,
"title": "Tesla Model SA",
"make": {},
"model": {},
"year": 2022,
"version": "V1",
"color": "Red",
"license_plate": "ABC-1234",
"fuel_type": "Electric",
"charging_connector": {},
"active": 1,
"owner": {},
"detail": {}
},
"success": 1,
"message": "Done!"
}
This endpoint retrieves the details of a specific vehicle owned by the currently authenticated user.
The ID of the vehicle.
The ID of the vehicle.
curl --request GET \
--get "https://api.powerly.app/api/v1/vehicles/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"id": 61,
"title": "Tesla Model SA",
"make": {},
"model": {},
"year": 2022,
"version": "V1",
"color": "Red",
"license_plate": "ABC-1234",
"fuel_type": "Electric",
"charging_connector": {},
"active": 1,
"owner": {},
"detail": {}
},
"success": 1,
"message": "Done!"
}
This endpoint allows users to update the details of an existing vehicle.
The ID of the vehicle.
The ID of the vehicle.
curl --request PUT \
"https://api.powerly.app/api/v1/vehicles/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"Tesla Model S\",
\"vehicle_model_id\": 1,
\"year\": 2020,
\"version\": \"Long Range\",
\"color\": \"Red\",
\"license_plate\": \"XYZ 123\",
\"fuel_type\": \"Electric\",
\"charging_connector_id\": 1,
\"active\": 1,
\"vehicle_details\": {
\"battery_capacity\": 75,
\"charging_speed\": 150,
\"safety_rating\": 5,
\"mileage\": 7,
\"fuel_efficiency\": 4
}
}"
{
"data": {
"id": 61,
"title": "Tesla Model SA",
"make": {},
"model": {},
"year": 2022,
"version": "V1",
"color": "Red",
"license_plate": "ABC-1234",
"fuel_type": "Electric",
"charging_connector": {},
"active": 1,
"owner": {},
"detail": {}
},
"success": 1,
"message": "Done!"
}
This endpoint deletes the vehicle from the system. Only the owner of the vehicle can delete it.
The ID of the vehicle.
The ID of the vehicle.
curl --request DELETE \
"https://api.powerly.app/api/v1/vehicles/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done!"
}
The ID of the worker.
curl --request GET \
--get "https://api.powerly.app/api/v1/workers/1/reset-balance" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done"
}
Optional search query to filter workers.
curl --request GET \
--get "https://api.powerly.app/api/v1/workers?search=aut" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data":[
{
"id":33,
"first_name":"service",
"last_name":"test 1",
"name":"service test 1",
"email":"[email protected]",
"rfid":"123131321122",
"expire_at":"2025-03-31",
"cash_on_hands":"0"
}
...
],
"success":1,
"message":"Done!"
}
curl --request POST \
"https://api.powerly.app/api/v1/workers" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"email\": \"[email protected]\",
\"rfid\": \"123456789012\",
\"expire_at\": \"2025-12-31\"
}"
{
"data": {
"id": 34,
"first_name": "service",
"last_name": "test 2",
"name": "service test 2",
"email": "[email protected]",
"rfid": "123131321123",
"expire_at": "2025-03-31",
"cash_on_hands": "0"
},
"success": 1,
"message": "Done!"
}
The ID of the worker.
curl --request GET \
--get "https://api.powerly.app/api/v1/workers/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"id": 34,
"first_name": "service",
"last_name": "test 2",
"name": "service test 2",
"email": "[email protected]",
"rfid": "123131321123",
"expire_at": "2025-03-31",
"cash_on_hands": "0"
},
"success": 1,
"message": "Done!"
}
The ID of the worker.
curl --request PUT \
"https://api.powerly.app/api/v1/workers/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"John\",
\"last_name\": \"Doe\",
\"email\": \"[email protected]\",
\"rfid\": \"123456789012\",
\"expire_at\": \"2025-12-31\"
}"
{
"data": {
"id": 34,
"first_name": "service",
"last_name": "test 2",
"name": "service test 2",
"email": "[email protected]",
"rfid": "123131321123",
"expire_at": "2025-03-31",
"cash_on_hands": "0"
},
"success": 1,
"message": "Done!"
}
The ID of the worker.
curl --request DELETE \
"https://api.powerly.app/api/v1/workers/1" \
--header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
--header "API-KEY: 140|sVh0Lr2iANbwsQBXo8zT8wux0QN8LQVLDmOzvhHp1dab78b8" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"success": 1,
"message": "Done"
}