Introduction

This documentation aims to provide all the information you need to work with our CP Dashboard 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).

Authenticating requests

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.

Auth

Login

POST
https://api.powerly.app
/api/v3/auth/login

Login api endpoint to authorize the user by email and password.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\",
    \"password\": \"secret123\",
    \"device_imei\": \"123456789012345\",
    \"device_token\": \"abcdef1234567890\"
}"
Example response:

Verify email

POST
https://api.powerly.app
/api/v3/auth/email/verify
requires authentication

To verify the email, you will need the verification_token received in response to the registration request, and the verification_code sent to the user's email.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/email/verify" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_token\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"verification_code\": \"1234\"
}"
Example response:
{
    "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!"
}
{
    "data": {
        "require_verification": 1,
        "verification_token": "27ee3f39-8768-4bc3-a6ae-440d87660b02",
        "can_resend_in_seconds": 60,
        "available_attempts": 2
    },
    "success": 0,
    "message": "Incorrect verification code."
}

Resend verification code

POST
https://api.powerly.app
/api/v3/auth/email/resend-verification
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/email/resend-verification" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_token\": \"123e4567-e89b-12d3-a456-426614174000\"
}"
Example response:
{
    "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
    }
}

Logout

POST
https://api.powerly.app
/api/v3/auth/logout
requires authentication

Use this api endpoint when you logout users to delete the access token. You need to provide device_imei to dissociate the device.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/logout" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"device_imei\": \"ullam\"
}"
Example response:
[Empty response]

Password reset


Reset password

POST
https://api.powerly.app
/api/v3/auth/password/reset
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/password/reset" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\"
}"

Resend verification code

POST
https://api.powerly.app
/api/v3/auth/password/reset/resend
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/password/reset/resend" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_token\": \"123e4567-e89b-12d3-a456-426614174000\"
}"

Verify reset password

POST
https://api.powerly.app
/api/v3/auth/password/reset/verify
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/v3/auth/password/reset/verify" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"verification_token\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"verification_code\": \"1234\"
}"

Authenticated user data

User data

GET
https://api.powerly.app
/api/user
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/user" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Balance

GET
https://api.powerly.app
/api/user/balance
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/user/balance" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Payout methods

GET
https://api.powerly.app
/api/user/payout-methods
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/user/payout-methods" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

User insights

GET
https://api.powerly.app
/api/stats
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/stats" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Permissions

GET
https://api.powerly.app
/api/user/permissions
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/user/permissions" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Roles

GET
https://api.powerly.app
/api/user/roles
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/user/roles" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Categories CRUD

Categories list (datatable)

GET
https://api.powerly.app
/api/categories/{type}/datatable
requires authentication

Get a list of categories.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

type
string
required

type of the category.

Example:
charging-site

Query Parameters

search
string

Optional search query to filter categories.

Example:
possimus
itemsPerPage
integer

Number of items per page (-1 for all).

Example:
20
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/categories/charging-site/datatable?search=possimus&itemsPerPage=20" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 58,
                  "type": "charging-site",
                  "name": "maximes",
                  "color": "#D2B48C"
              },
              {
                  "id": 57,
                  "type": "charging-site",
                  "name": "tests",
                  "color": "#A52A2A"
              },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 55
          }
      }
 }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Categories list

GET
https://api.powerly.app
/api/categories/{type}
requires authentication

Get all categories.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

type
string
required

type of the category.

Example:
charging-site
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/categories/charging-site" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 58,
              "type": "charging-site",
              "name": "maximes",
              "color": "#D2B48C"
          },
          {
              "id": 57,
              "type": "charging-site",
              "name": "tests",
              "color": "#A52A2A"
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Create a new category.

POST
https://api.powerly.app
/api/categories
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/categories" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"charging-site\",
    \"name\": \"Electronics\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 60,
        "type": "charging-site",
        "name": "Electronics",
        "color": "#A9A9A9"
    }
}
{
    "success": 0,
    "message": "Validation failed.",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "type": [
            "The type field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get details of a specific category.

GET
https://api.powerly.app
/api/categories/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the category.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/categories/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 60,
        "type": "charging-site",
        "name": "Electronics",
        "color": "#A9A9A9"
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Update an existing category.

PUT
PATCH
https://api.powerly.app
/api/categories/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the category.

Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/categories/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Electronics\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 60,
        "type": "charging-site",
        "name": "Electronics",
        "color": "#A9A9A9"
    }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "Validation failed.",
    "errors": {
        "name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a category.

DELETE
https://api.powerly.app
/api/categories/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the category.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/categories/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Endpoints

Login

POST
https://api.powerly.app
/api/auth/login
requires authentication

Login api endpoint to authorize the user by email and password.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/auth/login" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"[email protected]\",
    \"password\": \"secret123\"
}"
Example response:

Display a listing of the resource.

GET
https://api.powerly.app
/api/builds/datatable
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/builds/datatable" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

GET api/builds/{build_id}/pay

GET
https://api.powerly.app
/api/builds/{build_id}/pay
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

build_id
integer
required

The ID of the build.

Example:
3
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/builds/3/pay" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

GET api/builds/{build_id}/use-free-build

GET
https://api.powerly.app
/api/builds/{build_id}/use-free-build
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

build_id
integer
required

The ID of the build.

Example:
3
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/builds/3/use-free-build" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Update a build and returns the build record.

POST
https://api.powerly.app
/api/builds/{build_id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

build_id
integer
required

The ID of the build.

Example:
3

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/builds/3" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"package_name\": \"com.mycompany.myapp\",
    \"app_name\": \"Charge Finder\",
    \"app_slogan\": \"Find your next charge fast!\",
    \"places_api_key\": \"AIzaSyD-EXAMPLEKEY123456\",
    \"app_locale\": [
        \"en:English\"
    ],
    \"color_primary\": \"#0A84FF\",
    \"color_secondary\": \"#FF9500\",
    \"support_number\": \"+1234567890\",
    \"privacy_policy_url\": \"https:\\/\\/example.com\\/privacy\",
    \"terms_and_conditions_url\": \"https:\\/\\/example.com\\/terms\",
    \"key_alias\": \"my-key-alias\",
    \"store_password\": \"storepassword123\",
    \"key_password\": \"keypassword123\",
    \"minimized\": 1,
    \"bundle\": 0,
    \"ios\": 0
}"
Example response:
{
    "data": {
        "id": 6,
        "app_config": {
            "icon": [],
            "logo": [],
            "bundle": "true",
            "api_url": "http://localhost:8080/api/v1/",
            "app_name": "My Awesome App",
            "api_token": "192|LS5V9ZxnNCoB8hqgnmmvyr8VaDagXy63ZDRENvNRdd053acb",
            "key_alias": "key_alias",
            "minimized": "true",
            "app_locale": [
                "en:English",
                "ar:Arabic (العربية)",
                "es:Spanish (Español)",
                "fr:French (Français)"
            ],
            "app_slogan": "The best app ever",
            "key_password": "key_password",
            "package_name": "com.powerly.yasser",
            "color_primary": "#00BFFF",
            "places_api_key": "your_google_maps_api_key",
            "store_password": "store_password",
            "support_number": "+1234567890",
            "color_secondary": "#FF8C00",
            "privacy_policy_url": "https://example.com/privacy",
            "terms_and_conditions_url": "https://example.com/terms"
        },
        "status": "Waiting for Payment",
        "created_at": "2025-05-07T11:38:48.000000Z"
    },
    "success": 1,
    "message": "Created successfully!",
    "payment_link": "https://checkout.stripe.com/c/pay/cs_test_a1Ot201DwXP36v3XOcKF8ot8Yl2ftWiz4cKlWjRRdzRVsFMKnPbIoYUP15#fidkdWxOYHwnPyd1blpxYHZxWjA0VUxxN0c1MnBXYFBiMjNTfTJiaUczUHRVMFFsfW5qUjFLcWhiMj0zb0pCamFGXEB1U0c1d1Z%2Fc1c0XUlTdW4wUEBAdGI9M0x%2FXz1sS25ccGl3RkFfRjBINTVTY2FxYE9XbicpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl"
}
{
    "success": 0,
    "message": "The API key is invalid or missing."
}
{
    "success": 0,
    "message": "Validation error",
    "errors": {
        "name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "message": "Failed!"
}

Creates a new build request and returns the build record along with a payment link. The build process will not begin until payment is completed.

POST
https://api.powerly.app
/api/builds
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/builds" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"package_name\": \"com.mycompany.myapp\",
    \"app_name\": \"Charge Finder\",
    \"app_slogan\": \"Find your next charge fast!\",
    \"places_api_key\": \"AIzaSyD-EXAMPLEKEY123456\",
    \"app_locale\": [
        \"en:English\"
    ],
    \"color_primary\": \"#0A84FF\",
    \"color_secondary\": \"#FF9500\",
    \"support_number\": \"+1234567890\",
    \"privacy_policy_url\": \"https:\\/\\/example.com\\/privacy\",
    \"terms_and_conditions_url\": \"https:\\/\\/example.com\\/terms\",
    \"key_alias\": \"my-key-alias\",
    \"store_password\": \"storepassword123\",
    \"key_password\": \"keypassword123\",
    \"minimized\": 1,
    \"bundle\": 0,
    \"ios\": 0
}"
Example response:
{
    "data": {
        "id": 6,
        "app_config": {
            "icon": [],
            "logo": [],
            "bundle": "true",
            "api_url": "http://localhost:8080/api/v1/",
            "app_name": "My Awesome App",
            "api_token": "192|LS5V9ZxnNCoB8hqgnmmvyr8VaDagXy63ZDRENvNRdd053acb",
            "key_alias": "key_alias",
            "minimized": "true",
            "app_locale": [
                "en:English",
                "ar:Arabic (العربية)",
                "es:Spanish (Español)",
                "fr:French (Français)"
            ],
            "app_slogan": "The best app ever",
            "key_password": "key_password",
            "package_name": "com.powerly.yasser",
            "color_primary": "#00BFFF",
            "places_api_key": "your_google_maps_api_key",
            "store_password": "store_password",
            "support_number": "+1234567890",
            "color_secondary": "#FF8C00",
            "privacy_policy_url": "https://example.com/privacy",
            "terms_and_conditions_url": "https://example.com/terms"
        },
        "status": "Waiting for Payment",
        "created_at": "2025-05-07T11:38:48.000000Z"
    },
    "success": 1,
    "message": "Created successfully!",
    "payment_link": "https://checkout.stripe.com/c/pay/cs_test_a1Ot201DwXP36v3XOcKF8ot8Yl2ftWiz4cKlWjRRdzRVsFMKnPbIoYUP15#fidkdWxOYHwnPyd1blpxYHZxWjA0VUxxN0c1MnBXYFBiMjNTfTJiaUczUHRVMFFsfW5qUjFLcWhiMj0zb0pCamFGXEB1U0c1d1Z%2Fc1c0XUlTdW4wUEBAdGI9M0x%2FXz1sS25ccGl3RkFfRjBINTVTY2FxYE9XbicpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl"
}
{
    "success": 0,
    "message": "The API key is invalid or missing."
}
{
    "success": 0,
    "message": "Validation error",
    "errors": {
        "name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "message": "Failed!"
}

Delete a build.

DELETE
https://api.powerly.app
/api/builds/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the build.

Example:
3
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/builds/3" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done"
}
{
    "success": 0,
    "msg": "Access denied."
}
{
    "success": 0,
    "msg": "Record not found."
}
{
    "success": 0,
    "msg": "Failed!"
}

Admins list (datatable)

GET
https://api.powerly.app
/api/admins/datatable
requires authentication

Get a list of admins.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

search
string

Optional search query to filter admins.

Example:
nobis
itemsPerPage
integer

Number of items per page (-1 for all).

Example:
9
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/admins/datatable?search=nobis&itemsPerPage=9" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                 id: 24
                 email: "[email protected]"
                 name: "john DOE"
                 first_name: "john"
                 last_name: "DOE"
                 status: 1
              },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 55
          }
      }
 }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Admins list

GET
https://api.powerly.app
/api/admins
requires authentication

Get all admins.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/admins" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
             {
                 id: 24
                 email: "[email protected]"
                 name: "john DOE"
                 first_name: "john"
                 last_name: "DOE"
                 status: 1
              },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Create a new admin.

POST
https://api.powerly.app
/api/admins
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/admins" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"email\": \"[email protected]\",
    \"password\": \"StrongPassword123!\",
    \"permissions\": [
        1
    ]
}"
Example response:
{
     "success": 1,
     "msg": "Done!",
     "msg_arabic": "تمت العمليه بنجاح",
     "results": {
         id: 24
         email: "[email protected]"
         name: "john DOE"
         first_name: "john"
         last_name: "DOE"
         status: 1
     }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "Validation failed.",
    "errors": {
        "first_name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Display the specified resource.

GET
https://api.powerly.app
/api/admins/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the admin.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/admins/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

Update an existing admin.

PUT
PATCH
https://api.powerly.app
/api/admins/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the admin.

Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/admins/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"email\": \"[email protected]\",
    \"password\": \"StrongPassword123!\",
    \"permissions\": [
        1
    ]
}"
Example response:
{
     "success": 1,
     "msg": "Done!",
     "msg_arabic": "تمت العمليه بنجاح",
     "results": {
         id: 24
         email: "[email protected]"
         name: "john DOE"
         first_name: "john"
         last_name: "DOE"
         status: 1
     }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "Validation failed.",
    "errors": {
        "first_name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a admin.

DELETE
https://api.powerly.app
/api/admins/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the admin.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/admins/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

GET api/subscription-plans

GET
https://api.powerly.app
/api/subscription-plans
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/subscription-plans" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

GET api/subscription/current

GET
https://api.powerly.app
/api/subscription/current
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/subscription/current" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

POST api/subscription/subscribe

POST
https://api.powerly.app
/api/subscription/subscribe
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://api.powerly.app/api/subscription/subscribe" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

POST api/subscription/unsubscribe

POST
https://api.powerly.app
/api/subscription/unsubscribe
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://api.powerly.app/api/subscription/unsubscribe" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

POST api/subscription/resume

POST
https://api.powerly.app
/api/subscription/resume
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://api.powerly.app/api/subscription/resume" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

POST api/discourse/connect

POST
https://api.powerly.app
/api/discourse/connect
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/discourse/connect" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sig\": \"tempore\",
    \"sso\": \"necessitatibus\"
}"

Feedbacks

Get feedback

GET
https://api.powerly.app
/api/feedback
requires authentication

Retrieves a list of feedback associated with the charge points owned by the authenticated user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

itemsPerPage
integer

Number of results per page. Use -1 to get all. Defaults to 15.

Example:
10
search
string

Filter feedback by message content.

Example:
slow charging
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/feedback?itemsPerPage=10&search=slow+charging" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 139,
                  "charge_point_order_id": 171,
                  "user_id": 1,
                  "order_id": null,
                  "feedback_msg": "The charging cable felt a bit stiff and could be a little longer for easier car positioning.",
                  "rating": "3.90",
                  "insert_date": "2024-07-17T10:17:20.000000Z",
                  "updated_at": "2024-07-22T07:17:30.000000Z",
                  "verified": 1,
                  "charge_point_order": {
                      "id": 171,
                      "charge_point_id": 12,
                      "charge_point_connector_id": 14,
                      "charging_session_time": "51.7700",
                      "charging_session_energy": "1.5600",
                      "unit": "minutes",
                      "requested_quantity": "10",
                      "feedback_exist": 0,
                      "status": 1,
                      "delivery_date": null,
                      "user_id": 1,
                      "fleet_id": null,
                      "quantity": "51.0000",
                      "price": "102.0000",
                      "fees": "1.00",
                      "earning": 15.3,
                      "unit_price": "2.00",
                      "created_at": "2025-01-08T07:33:27.000000Z",
                      "updated_at": "2025-03-04T13:27:56.000000Z",
                      "connector_number": 1
                  }
              },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 141
          }
      }
  }

Export feedback to Excel

GET
https://api.powerly.app
/api/feedback/export
requires authentication

Exports all feedback related to the authenticated user's charge points to an .xlsx file.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/feedback/export" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
attachment feedback.xlsx

Get a specific feedback entry

GET
https://api.powerly.app
/api/feedback/{feedbackID}
requires authentication

Returns a single feedback entry by ID.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

feedbackID
integer
required

The ID of the feedback to retrieve.

Example:
139
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/feedback/139" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "id": 139,
    "charge_point_order_id": 171,
    "user_id": 1,
    "order_id": null,
    "feedback_msg": "The charging cable felt a bit stiff and could be a little longer for easier car positioning.",
    "rating": "3.90",
    "insert_date": "2024-07-17T10:17:20.000000Z",
    "updated_at": "2024-07-22T07:17:30.000000Z",
    "verified": 1,
    "charge_point_order": {
        "id": 171,
        "charge_point_id": 12,
        "charge_point_connector_id": 14,
        "charging_session_time": "51.7700",
        "charging_session_energy": "1.5600",
        "unit": "minutes",
        "requested_quantity": "10",
        "feedback_exist": 0,
        "status": 1,
        "delivery_date": null,
        "user_id": 1,
        "fleet_id": null,
        "quantity": "51.0000",
        "price": "102.0000",
        "fees": "1.00",
        "earning": 15.3,
        "unit_price": "2.00",
        "created_at": "2025-01-08T07:33:27.000000Z",
        "updated_at": "2025-03-04T13:27:56.000000Z",
        "connector_number": 1
    }
}
{
    "error": "Order not found"
}

Location

Get countries

GET
https://api.powerly.app
/api/v3/countries
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/v3/countries" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "name": "Jordan",
            "iso": "JO",
            "time_zone": "Asia/Amman",
            "latitude": "31.95",
            "longitude": "35.93333",
            "phone_code": "962",
            "contact_number": "96265860087",
            "email": "[email protected]",
            "currency": "JD",
            "currency_iso": "JOD"
        },
        {
            "id": 2,
            "name": "Ukraine",
            "iso": "UA",
            "time_zone": "Asia/Amman",
            "latitude": "53.7098",
            "longitude": "27.9534",
            "phone_code": "380",
            "contact_number": "3802912345678",
            "email": "",
            "currency": "UAH",
            "currency_iso": null
        },
        {
            "id": 4,
            "name": "Saudi Arabia",
            "iso": "SA",
            "time_zone": "Asia/Riyadh",
            "latitude": "24.63333",
            "longitude": "46.71666",
            "phone_code": "966",
            "contact_number": "9660005469",
            "email": "[email protected]",
            "currency": "SR",
            "currency_iso": "SAR"
        }
    ],
    "success": 1,
    "message": "Done!"
}

Get country

GET
https://api.powerly.app
/api/v3/countries/{id}
requires authentication

Returns country details by ID.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

Country ID.

Example:
4
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/v3/countries/4" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 4,
        "name": "Saudi Arabia",
        "iso": "SA",
        "time_zone": "Asia/Riyadh",
        "latitude": "24.63333",
        "longitude": "46.71666",
        "phone_code": "966",
        "contact_number": "9660005469",
        "email": "[email protected]",
        "currency": "SR",
        "currency_iso": "SAR",
        "flag_url": "https://v4.test/flags/SA.png"
    },
    "success": 1,
    "message": "Done!"
}

Orders

POST start charging and create a new order.

POST
https://api.powerly.app
/api/charge-points/start
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-points/start" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"power_source_id\": 1,
    \"quantity\": \"10\",
    \"connector\": 2
}"

POST stop charging and close the order.

POST
https://api.powerly.app
/api/charge-points/stop
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-points/stop" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"power_source_id\": \"eveniet\"
}"

Get charge point orders

GET
https://api.powerly.app
/api/orders
requires authentication

Returns a paginated list of orders related to charge points owned by the authenticated user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

itemsPerPage
integer

Number of results per page. Use -1 to get all. Defaults to 15.

Example:
10
search
string

Optional search term to filter by charge point identifier.

Example:
EV12345
sortBy
object

Optional array of sorting instructions. Each object should include "key" and "order" (asc or desc). Keys: insert_date, duration, energy, price, totalEarning.

Example:
[]
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/orders?itemsPerPage=10&search=EV12345" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 426,
                  "charge_point_id": 16,
                  "charge_point_connector_id": 16,
                  "charging_session_time": "27.0000",
                  "charging_session_energy": "1661.0000",
                  "unit": "minutes",
                  "requested_quantity": "8",
                  "feedback_exist": 0,
                  "status": 1,
                  "delivery_date": "2024-09-16 07:33:27",
                  "user_id": 11,
                  "fleet_id": 64,
                  "quantity": "6.0000",
                  "price": "0.00",
                  "fees": "8.00",
                  "earning": "953.47",
                  "unit_price": "2587.98",
                  "created_at": "2024-09-16T07:33:27.000000Z",
                  "updated_at": "2025-03-04T13:27:57.000000Z",
                  "connector_number": 1,
                  "charge_point": {
                      "id": 16,
                      "identifier": "CP:DDEE36",
                      "category": "EV_CHARGER",
                      "title": "ocpp_yesy",
                      "description": "ocpp_yesy",
                      "latitude": "24.593799037018584",
                      "longitude": "46.62275091622337",
                      "listed": false,
                      ...
                  },
                  "insert_date": "2024-09-16 07:33",
                  "prices": [],
                  "app_fees": "-953.47",
                  "elapsed_time": "27.0000"
              },
             ...
          ],
          "meta": {
              "per_page": 10,
              "total": 404
          }
      }
  }

Export orders to Excel

GET
https://api.powerly.app
/api/orders/export
requires authentication

Exports all orders for the authenticated user's charge points to an .xlsx file.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/orders/export" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
attachment Orders.xlsx

Get a specific order

GET
https://api.powerly.app
/api/orders/{orderID}
requires authentication

Retrieves a single order by its ID, ensuring it belongs to the authenticated user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

orderID
integer
required

The ID of the order to retrieve.

Example:
12
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/orders/12" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "id": 426,
    "charge_point_id": 16,
    "charge_point_connector_id": 16,
    "charging_session_time": "27.0000",
    "charging_session_energy": "1661.0000",
    "unit": "minutes",
    "requested_quantity": "8",
    "feedback_exist": 0,
    "status": 1,
    "delivery_date": "2024-09-16 07:33:27",
    "user_id": 11,
    "fleet_id": 64,
    "quantity": "6.0000",
    "price": "0.00",
    "fees": "8.00",
    "earning": "953.47",
    "unit_price": "2587.98",
    "created_at": "2024-09-16T07:33:27.000000Z",
    "updated_at": "2025-03-04T13:27:57.000000Z",
    "connector_number": 1,
    "charge_point": {
        "id": 16,
        "identifier": "CP:DDEE36",
        "category": "EV_CHARGER",
        "title": "ocpp_yesy",
        "description": "ocpp_yesy",
        "latitude": "24.593799037018584",
        "longitude": "46.62275091622337",
        "listed": false,
        "distance": null,
        "type": null,
        "status": "unavailable",
        "image": "http://localhost:8080/images/charge-point-1.jpeg",
        "session_limit_type": null,
        "session_limit_value": 0,
        "online_status": 0,
        "configured": 0,
        "rating": "3.17",
        "owner_id": 1,
        "address": {
            "address_line_1": "x",
            "address_line_2": "y",
            "address_line_3": "z",
            "zipcode": "1234",
            "city": "xxx",
            "state": "yyy"
        },
        "token": "EV_CHARGER_64AFFC8DDEEC1",
        "contact_number": "9666564654664",
        "open_time": "00:00:00",
        "close_time": "23:59:00",
        "total_earnings": "17026.18",
        "total_energy": 53469,
        "total_sessions_time": 739,
        "connectors": [
            {
                "id": 3,
                "name": "Type 1 - J1772",
                "icon": "https://storage.powerly.app/connectors/Type 1.png",
                "type": "",
                "max_power": 0,
                "status": "unavailable",
                "number": 1
            }
        ],
        "amenities": [],
        "price_unit": "energy",
        "orders_count": 50,
        "price": "1362.09",
        "price_usd": 10,
        "is_external": false,
        "is_in_use": false,
        "is_reserved": false,
        "available": false,
        "next_reservation_near_now": null,
        "external_details": null,
        "reservation_fee": "68.10",
        "booked_by_current_user": false,
        "used_by_current_user": false,
        "earning": "0.00"
    },
    "insert_date": "2024-09-16 07:33",
    "prices": [],
    "app_fees": "-953.47",
    "elapsed_time": "27.0000"
}
{
    "error": "Order not found"
}

Payout methods

Endpoints for managing payout methods for the authenticated user.

Get available payout methods

GET
https://api.powerly.app
/api/payout-methods/available
requires authentication

Lists the payout methods available for the user's country that have not yet been added. The user must have a country associated with their profile.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/payout-methods/available" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 1,
              "logo": "http://localhost:8080/images/payout-methods/stripe.png",
              "name": "stripe",
              "description": "Instant withdrawals with Stripe, ensuring secure and seamless transactions.",
              "details": {
                  "account_id": "acct_1PnynuR7qdScojsdf56",
                  "account_status": "Pending"
              },
              "link":"https://connect.stripe.com/setup/s/acct_1PjiyP08tgBteJD6/IAbfEzjDXCzjsds"
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Update an existing payout method

POST
https://api.powerly.app
/api/payout-methods/{payoutMethod_name}
requires authentication

Updates the details of a payout method associated with the authenticated user. Supports file uploads for specific method types (e.g., ID for bank transfer).

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

payoutMethod_name
integer
required
Example:
1

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/payout-methods/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"payoutMethod\": \"stc-pay\",
    \"fullname\": \"John Doe\",
    \"userType\": \"individual\",
    \"address\": \"123 Main Street, City, Country\",
    \"TIN\": \"123-45-6789\",
    \"id\": \"0501234567\",
    \"email\": \"[email protected]\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get user's payout methods

GET
https://api.powerly.app
/api/payout-methods
requires authentication

Retrieves the list of payout methods that the authenticated user has already added.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/payout-methods" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 1,
              "logo": "http://localhost:8080/images/payout-methods/stripe.png",
              "name": "stripe",
              "description": "Instant withdrawals with Stripe, ensuring secure and seamless transactions.",
              "details": {
                  "account_id": "acct_1PnynuR7qdScojsdf56",
                  "account_status": "Pending"
              },
              "link":"https://connect.stripe.com/setup/s/acct_1PjiyP08tgBteJD6/IAbfEzjDXCzjsds"
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Add a payout method

POST
https://api.powerly.app
/api/payout-methods
requires authentication

Associates a new payout method with the authenticated user using the provided data. Optionally handles file uploads (e.g., ID for bank transfer).

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/payout-methods" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"payoutMethod\": \"cliq\",
    \"fullname\": \"John Doe\",
    \"userType\": \"individual\",
    \"address\": \"123 Main Street, City, Country\",
    \"TIN\": \"123-45-6789\",
    \"id\": \"0501234567\",
    \"email\": \"[email protected]\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Remove a payout method

DELETE
https://api.powerly.app
/api/payout-methods/{id}
requires authentication

Detaches a payout method from the authenticated user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the payout method.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/payout-methods/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Payouts

Get the list of the payouts.

GET
https://api.powerly.app
/api/payouts
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

itemsPerPage
integer

the number of items per page

Example:
6
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/payouts?itemsPerPage=6" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 15,
                  "payout_id": "1",
                  "payout_method_id": 1,
                  "user_id": 1,
                  "account_id": "voluptas",
                  "amount": "341.67",
                  "status": "paied",
                  "response": "Et consectetur illum.",
                  "created_at": "2024-08-14T17:16:25.000000Z",
                  "updated_at": "2024-08-14T17:16:25.000000Z"
              },

             ...
          ],
          "meta": {
              "per_page": 2,
              "total": 15
          }
      }
  }

Request a payout.

POST
https://api.powerly.app
/api/payouts/request-payout
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/payouts/request-payout" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"payoutMethod\": 10
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{
    "success": 0,
    "msg": "Internal system error.",
    "msg_arabic": "خطأ في النظام"
}

Power centers management

List power centers (datatable)

GET
https://api.powerly.app
/api/charge-points/datatable
requires authentication

All power centers owned by the current user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/datatable" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
          "success": 1,
          "msg": "Done!",
          "msg_arabic": "تمت العمليه بنجاح",
          "results": {
              "data": [
                  {
                      "id": 24,
                      "title": "test open source API",
                      "identifier": "PS_67DF25E57A981",
                      "listed": false,
                      "status": "unavailable",
                      "earning": "0.00",
                      "rating": "0.00"
                  },
              ...
              ],
              "meta": {
                  "per_page": 15,
                  "total": 11
              }
          }
      }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Power center green trace

GET
https://api.powerly.app
/api/charge-points/sustainability
requires authentication

Calculates the CO2 savings based on energy consumed by power centers.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/sustainability" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": 34.612
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get all power centers as GeoJSON

GET
https://api.powerly.app
/api/charge-points/geojson
requires authentication

Returns a GeoJSON representation of all owned power centers.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/geojson" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "type": "FeatureCollection",
      "features": [
          {
              "type": "Feature",
              "properties": {
                  "id": 24,
                  "identifier": "PS_67DF25E57A981",
                  "category": "EV_CHARGER",
                  "price_unit": "minutes",
                  "title": "test open source API",
                  "description": null,
                  "latitude": "36.64575836483359",
                  "longitude": "2.9176092880736184",
                  "address_line_1": "Tassala",
                  "address_line_2": null,
                  "address_line_3": null,
                  "zipcode": null,
                  "city": null,
                  "state": null,
                  "status": "unavailable",
                  "image": "http://localhost:8080/images/charge-point-1.jpeg",
                  "contact_number": null,
                  "open_time": null,
                  "close_time": null,
                  "user_id": 1,
                  "price": null,
                  "deleted_at": null,
                  "listed": 0,
                  "token": "EV_CHARGER_67DF25E57A988",
                  "session_limit_type": null,
                  "session_limit_value": 0,
                  "created_at": "2025-03-22T21:04:37.000000Z",
                  "updated_at": "2025-03-27T10:13:18.000000Z",
                  "external_details_id": null,
                  "identifier_update": 0,
                  "start_energy_value": 0,
                  "configured": 0,
                  "connected": 0,
                  "busy": 0,
                  "reserved": 0,
                  "charge_point_type_id": null,
                  "charging_site_id": null,
                  "media": [],
                  "icon-image": "pin-cp-out-of-service",
                  "marker_title": "PS_67DF25E57A981\n$0.00",
                  "earning": "0.00"
              },
              "geometry": {
                  "type": "Point",
                  "coordinates": [
                      "2.9176092880736184",
                      "36.64575836483359"
                  ]
              }
          },
          ....
      ]
  }

Export power centers as Excel

GET
https://api.powerly.app
/api/charge-points/export
requires authentication

Downloads all power centers owned by the current user in .xlsx format.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/export" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
file.xlsx
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get power center statistics

GET
https://api.powerly.app
/api/charge-points/{charge_point_id}/stats
requires authentication

Returns detailed analytics about the selected power center.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
architecto
id
integer
required

The ID of the powercenter.

Example:
4
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/architecto/stats" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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": "05-05-2025"
    },
    "thisMonth": {
        "earnings": "0.00",
        "chargingTime": "0.00",
        "energyConsumed": "0.00",
        "ordersNb": 0,
        "date": "12-04-2025"
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get single power center as GeoJSON

GET
https://api.powerly.app
/api/charge-points/{charge_point_id}/geojson
requires authentication

Returns a GeoJSON representation of a specific power center.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
cum
id
integer
required

The ID of the powercenter.

Example:
10
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/cum/geojson" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {
                "id": 24,
                "identifier": "PS_67DF25E57A981",
                "category": "EV_CHARGER",
                "price_unit": "minutes",
                "title": "test open source API",
                "description": null,
                "latitude": "36.64575836483359",
                "longitude": "2.9176092880736184",
                "address_line_1": "Tassala",
                "address_line_2": null,
                "address_line_3": null,
                "zipcode": null,
                "city": null,
                "state": null,
                "status": "unavailable",
                "image": "http://localhost:8080/images/charge-point-1.jpeg",
                "contact_number": null,
                "open_time": null,
                "close_time": null,
                "user_id": 1,
                "price": null,
                "deleted_at": null,
                "listed": 0,
                "token": "EV_CHARGER_67DF25E57A988",
                "session_limit_type": null,
                "session_limit_value": 0,
                "created_at": "2025-03-22T21:04:37.000000Z",
                "updated_at": "2025-03-27T10:13:18.000000Z",
                "external_details_id": null,
                "identifier_update": 0,
                "start_energy_value": 0,
                "configured": 0,
                "connected": 0,
                "busy": 0,
                "reserved": 0,
                "charge_point_type_id": null,
                "charging_site_id": null,
                "media": [],
                "icon-image": "pin-cp-out-of-service",
                "marker_title": "PS_67DF25E57A981\n$0.00",
                "earning": "0.00"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    "2.9176092880736184",
                    "36.64575836483359"
                ]
            }
        }
    ]
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

List power centers types

GET
https://api.powerly.app
/api/charge-points/types
requires authentication

All power centers types.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/types" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
             "id": 5,
              "name": "Rapid",
              "description": "50 kW - Rapid DC charging.",
              "img": "https://storage.powerly.app/types/rapid.png",
              "current_type": "DC",
              "max_power": "50.00"
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

List power centers connectors

GET
https://api.powerly.app
/api/charge-points/connectors
requires authentication

All power centers connectors.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/connectors" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 3,
              "name": "Type 1 - J1772",
              "icon": "https://storage.powerly.app/connectors/Type 1.png",
              "type": "",
              "max_power": 0
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

List power centers amenities

GET
https://api.powerly.app
/api/charge-points/amenities
requires authentication

All power centers amenities.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/amenities" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 1,
              "name": "Lodging",
              "icon": "https://storage.powerly.app/amenities/Lodging.png",
              "description": null
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

GET api/charge-points/check-subscription-limitation

GET
https://api.powerly.app
/api/charge-points/check-subscription-limitation
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/check-subscription-limitation" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": 0,
    "error": "Unauthenticated"
}

List power centers

GET
https://api.powerly.app
/api/charge-points
requires authentication

All power centers owned by the current user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[
          {
              "id": 24,
              "title": "test open source API",
              "identifier": "PS_67DF25E57A981",
              "listed": 0,
              "status": "unavailable",
              "earning": "0.00",
              "rating": "0.00"
          },
          ...
      ]
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Create a power center

POST
https://api.powerly.app
/api/charge-points
requires authentication

Creates a new power center with the provided attributes.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-points" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"nihil\",
    \"identifier\": \"dolor\",
    \"category\": \"rem\",
    \"address_line_1\": \"assumenda\",
    \"address_line_2\": \"occaecati\",
    \"address_line_3\": \"ea\",
    \"zipcode\": \"harum\",
    \"city\": \"eius\",
    \"state\": \"sunt\",
    \"latitude\": 33.3213,
    \"longitude\": 27781.4756
}"
Example response:
{
    "price_unit": "minutes",
    "user_id": 1,
    "title": "veniam",
    "identifier": "facilis",
    "token": "EV_CHARGER_68220FE7D87CD",
    "category": "EV_CHARGER",
    "address_line_1": "ut",
    "address_line_2": "est",
    "address_line_3": "amet",
    "zipcode": "rerum",
    "city": "facere",
    "state": "id",
    "latitude": 49.28628,
    "longitude": 144776,
    "updated_at": "2025-05-12T15:12:39.000000Z",
    "created_at": "2025-05-12T15:12:39.000000Z",
    "id": 25
}
{
    "identifier": [
        "The identifier has already been taken."
    ],
    "category": [
        "The selected category is invalid."
    ]
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get a power center by ID

GET
https://api.powerly.app
/api/charge-points/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the powercenter.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "id": 24,
    "identifier": "PS_67DF25E57A981",
    "category": "EV_CHARGER",
    "title": "test open source API",
    "description": null,
    "latitude": "36.64575836483359",
    "longitude": "2.9176092880736184",
    "listed": false,
    "distance": null,
    "type": null,
    "status": "unavailable",
    "image": "http://localhost:8080/images/charge-point-1.jpeg",
    "session_limit_type": null,
    "session_limit_value": 0,
    "online_status": 0,
    "configured": 0,
    "rating": "0.00",
    "owner_id": 1,
    "address": {
        "address_line_1": "Tassala",
        "address_line_2": null,
        "address_line_3": null,
        "zipcode": null,
        "city": null,
        "state": null
    },
    "token": "EV_CHARGER_67DF25E57A988",
    "contact_number": null,
    "open_time": null,
    "close_time": null,
    "total_earnings": "0.00",
    "total_energy": 0,
    "total_sessions_time": 0,
    "connectors": [
        {
            "id": 3,
            "name": "Type 1 - J1772",
            "icon": "https://storage.powerly.app/connectors/Type 1.png",
            "type": "",
            "max_power": 0,
            "status": "unavailable",
            "number": 1
        }
    ],
    "amenities": [],
    "price_unit": "minutes",
    "orders_count": 0,
    "price": "0.00",
    "price_usd": 0,
    "is_external": false,
    "is_in_use": false,
    "is_reserved": false,
    "available": false,
    "next_reservation_near_now": null,
    "external_details": null,
    "reservation_fee": "68.10",
    "booked_by_current_user": false,
    "used_by_current_user": false,
    "earning": "0.00"
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Update a power center

PUT
PATCH
https://api.powerly.app
/api/charge-points/{id}
requires authentication

Updates an existing power center.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the powercenter.

Example:
20

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/charge-points/20" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"FastCharge Station 101\",
    \"description\": \"Available 24\\/7 near the main square.\",
    \"latitude\": 25.276987,
    \"longitude\": 55.296249,
    \"address_line_1\": \"123 Main Street\",
    \"address_line_2\": \"Suite 4B\",
    \"address_line_3\": \"Business Complex\",
    \"zipcode\": \"12345\",
    \"city\": \"Dubai\",
    \"state\": \"Dubai\",
    \"contact_number\": \"+971500000000\",
    \"open_time\": \"08:00:00\",
    \"close_time\": \"22:00:00\",
    \"price\": 15.5,
    \"price_currency\": \"AED\",
    \"category\": \"EV_CHARGER\",
    \"amenities\": [
        1
    ],
    \"connectors\": [
        {
            \"id\": 1,
            \"number\": 2
        },
        {
            \"id\": 3,
            \"number\": 1
        }
    ],
    \"price_unit\": \"minutes\",
    \"session_limit_value\": 60,
    \"session_limit_type\": \"minutes\",
    \"listed\": false,
    \"type\": 2,
    \"secure\": false
}"
Example response:
{
      "id": 25
      "price_unit": "minutes",
      "user_id": 1,
      "title": "veniam",
      "identifier": "facilis",
      "token": "EV_CHARGER_68220FE7D87CD",
      "category": "EV_CHARGER",
      "address_line_1": "ut",
      "address_line_2": "est",
      "address_line_3": "amet",
      "zipcode": "rerum",
      "city": "facere",
      "state": "id",
      "latitude": 49.28628,
      "longitude": 144776,
      "updated_at": "2025-05-12T15:12:39.000000Z",
      "created_at": "2025-05-12T15:12:39.000000Z",
  }
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "The price field must have 2 decimal places.",
    "errors": {
        "price": [
            "The price field must have 2 decimal places."
        ],
        "type": [
            "The selected type is invalid."
        ],
        "amenities.0": [
            "The selected amenities.0 is invalid."
        ],
        "connectors.0.id": [
            "The selected connectors.0.id is invalid."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a power center

DELETE
https://api.powerly.app
/api/charge-points/{id}
requires authentication

Deletes the specified power center.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the powercenter.

Example:
18
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/charge-points/18" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "done",
    "msg_arabic": "تمت العمليه بنجاح"
}
{
    "error": "Failed to delete Chargepoint"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "error": "Invalid Resource Requested"
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Allowed users CRUD


Allowed users list

GET
https://api.powerly.app
/api/charge-points/{charge_point_id}/allowed-users
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
molestiae
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/molestiae/allowed-users" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
  "success": 1,
  "msg": "Done!",
  "results": [
    {
      "id": 24,
      "email": "[email protected]",
      "name": "john DOE",
      "first_name": "john",
      "last_name": "DOE"
    },
    ...
  ]
}

Allowed users list (datatable)

GET
https://api.powerly.app
/api/charge-points/{charge_point_id}/allowed-users/datatable
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
sunt

Query Parameters

search
string

Optional search query to filter users.

Example:
delectus
itemsPerPage
integer

Number of items per page (-1 for all).

Example:
14
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/sunt/allowed-users/datatable?search=delectus&itemsPerPage=14" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
  "success": 1,
  "msg": "Done!",
  "results": {
    "data": [
      {
        "id": 24,
        "email": "[email protected]",
        "name": "john DOE",
        "first_name": "john",
        "last_name": "DOE"
      },
      ...
    ],
    "meta": {
      "per_page": 15,
      "total": 55
    }
  }
}

Add a user to allowed users.

POST
https://api.powerly.app
/api/charge-points/{charge_point_id}/allowed-users
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
temporibus

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-points/temporibus/allowed-users" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"emails\": \"error\"
}"

Remove a user from allowed users.

DELETE
https://api.powerly.app
/api/charge-points/{charge_point_id}/allowed-users/{user_id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
iure
user_id
string
required

The ID of the user.

Example:
et
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/charge-points/iure/allowed-users/et" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Allowed users list

GET
https://api.powerly.app
/api/charge-point-groups/{charge_point_group_id}/allowed-users
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_group_id
integer
required

The ID of the charge point group.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-point-groups/1/allowed-users" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
  "success": 1,
  "msg": "Done!",
  "results": [
    {
      "id": 24,
      "email": "[email protected]",
      "name": "john DOE",
      "first_name": "john",
      "last_name": "DOE"
    },
    ...
  ]
}

Allowed users list (datatable)

GET
https://api.powerly.app
/api/charge-point-groups/{charge_point_group_id}/allowed-users/datatable
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_group_id
integer
required

The ID of the charge point group.

Example:
1

Query Parameters

search
string

Optional search query to filter users.

Example:
cum
itemsPerPage
integer

Number of items per page (-1 for all).

Example:
6
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-point-groups/1/allowed-users/datatable?search=cum&itemsPerPage=6" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
  "success": 1,
  "msg": "Done!",
  "results": {
    "data": [
      {
        "id": 24,
        "email": "[email protected]",
        "name": "john DOE",
        "first_name": "john",
        "last_name": "DOE"
      },
      ...
    ],
    "meta": {
      "per_page": 15,
      "total": 55
    }
  }
}

Add a user to allowed users.

POST
https://api.powerly.app
/api/charge-point-groups/{charge_point_group_id}/allowed-users
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_group_id
integer
required

The ID of the charge point group.

Example:
1

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-point-groups/1/allowed-users" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"emails\": \"recusandae\"
}"

Remove a user from allowed users.

DELETE
https://api.powerly.app
/api/charge-point-groups/{charge_point_group_id}/allowed-users/{user_id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_group_id
integer
required

The ID of the charge point group.

Example:
1
user_id
string
required

The ID of the user.

Example:
quod
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/charge-point-groups/1/allowed-users/quod" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Media CRUD


Get a list of media for a given power center.

GET
https://api.powerly.app
/api/charge-points/{charge_point_id}/media
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
nobis
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/nobis/media" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 2,
              "title": "test",
              "url": "http://localhost:8080/storage/media/PdOY4INfZK4x2XYDQe5Hz5cA5jDJ1rzVVzL0fvuI.jpg",
              "type": "photo"
          },
         ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Store a new media for a power center.

POST
https://api.powerly.app
/api/charge-points/{charge_point_id}/media
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
porro

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-points/porro/media" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "title[]=ojtnlnd"\
    --form "media[]=@/tmp/phpWCtcNY" 
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 2,
              "title": "test",
              "url": "http://localhost:8080/storage/media/PdOY4INfZK4x2XYDQe5Hz5cA5jDJ1rzVVzL0fvuI.jpg",
              "type": "photo"
          },
         ...
      ]
  }
{
  "success": 0,
  "message": "You have reached the maximum number (8) of media uploads in this Device.",
  "errors": {
    "media": [
      "You have reached the maximum number (8) of media uploads in this Device."
    ]
    "media.0": [
      "The media must be an image."
    ]
  }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a media.

DELETE
https://api.powerly.app
/api/media/{media_id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

media_id
integer
required

The ID of the media.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/media/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Range prices CRUD


Get a list of range prices for a given power center.

GET
https://api.powerly.app
/api/charge-points/{charge_point_id}/charge-point-prices
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
sit
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-points/sit/charge-point-prices" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 1,
              "price": "649310.24",
              "startingTime": "10:00",
              "endingTime": "13:00"
          },
         ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Store a new range price for a power center.

POST
https://api.powerly.app
/api/charge-points/{charge_point_id}/charge-point-prices
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

charge_point_id
string
required

The ID of the charge point.

Example:
ea

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-points/ea/charge-point-prices" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price\": 209668.310226701,
    \"startingTime\": \"06:48\",
    \"endingTime\": \"06:48\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 5,
        "price": "32.15",
        "startingTime": "07:57",
        "endingTime": "08:57"
    }
}
{
    "success": 0,
    "message": "The price must be a number.",
    "errors": {
        "price": [
            "The price must be a number."
        ],
        "ending_time": [
            "The ending time does not match the format H:i.",
            "The ending time must be a date after starting time."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Retrieve a specific range price.

GET
https://api.powerly.app
/api/charge-point-prices/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charge point price.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-point-prices/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "price": "649310.24",
        "startingTime": "10:00",
        "endingTime": "13:00"
    }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Update an existing range price.

PUT
PATCH
https://api.powerly.app
/api/charge-point-prices/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charge point price.

Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/charge-point-prices/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"price\": 139145419.945,
    \"startingTime\": \"06:48\",
    \"endingTime\": \"06:48\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "price": "694.67",
        "startingTime": "08:19",
        "endingTime": "09:19"
    }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "The price must be a number.",
    "errors": {
        "price": [
            "The price must be a number."
        ],
        "ending_time": [
            "The ending time does not match the format H:i.",
            "The ending time must be a date after starting time."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a range price.

DELETE
https://api.powerly.app
/api/charge-point-prices/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charge point price.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/charge-point-prices/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Groups CRUD


Groups list. (datatable)

GET
https://api.powerly.app
/api/charge-point-groups/datatable
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

search
string

Optional search query to filter groups.

Example:
quia
itemsPerPage
integer

Number of groups per page.

Example:
14
power-centers
boolean

If set to true, includes associated power centers in the response.

Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-point-groups/datatable?search=quia&itemsPerPage=14&power-centers=" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 935,
                  "name": "Voluptatem qui cum.",
                  "companyName": null,
                  "licenseCode": null,
                  "chargePointsNumber": 0,
                  "chargePointsIds": [],
                  "power_centers": []
              },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 1083
          }
      }
  }
 @response 500 {"success": 0,"msg": "Unauthenticated.","msg_arabic": "Unauthenticated."}

Groups list.

GET
https://api.powerly.app
/api/charge-point-groups
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

power-centers
boolean

If set to true, includes associated power centers in the response.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-point-groups?power-centers=1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 935,
                  "name": "Voluptatem qui cum.",
                  "companyName": null,
                  "licenseCode": null,
                  "chargePointsNumber": 0,
                  "chargePointsIds": [],
                  "power_centers": []
              },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 1083
          }
      }
  }
 @response 500 {"success": 0,"msg": "Unauthenticated.","msg_arabic": "Unauthenticated."}

Create a new group.

POST
https://api.powerly.app
/api/charge-point-groups
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charge-point-groups" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"rqdvxpkcslxenodhlfszmdtgutbnnuusdmypnslov\",
    \"companyName\": \"eiqupwevsbqbxpzzobejflxquoxzq\",
    \"licenseCode\": \"uiowijfjbepqiksqzadfzxzab\",
    \"chargePoints\": [
        \"est\"
    ]
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "name": "Iusto sint enim doloremque.",
        "companyName": null,
        "licenseCode": null,
        "chargePointsNumber": 0,
        "chargePointsIds": []
    }
}
{
  "success": 0,
  "message": "Validation error",
  "errors": {
    "name": ["The name field is required."]
  }
}
 @response 500 {"success": 0,"msg": "Unauthenticated.","msg_arabic": "Unauthenticated."}

Get details of a specific group.

GET
https://api.powerly.app
/api/charge-point-groups/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charge point group.

Example:
1

Query Parameters

power-centers
boolean

If set to true, includes associated power centers in the response.

Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charge-point-groups/1?power-centers=" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "id": 1,
          "name": "Iusto sint enim doloremque.",
          "companyName": null,
          "licenseCode": null,
          "chargePointsNumber": 0,
          "chargePointsIds": []
      }
  }
 @response 500 {"success": 0,"msg": "Unauthenticated.","msg_arabic": "Unauthenticated."}

Update an existing group.

PUT
PATCH
https://api.powerly.app
/api/charge-point-groups/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charge point group.

Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/charge-point-groups/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"apuhqvjksegituttsqeodcgmhugnhkmrazerziwuwgiipxcbvkhtitjzeyuvzn\",
    \"companyName\": \"vmvtgqdsxwpdxrfuypytuswofqaswngbbijrtlapozupvvuywy\",
    \"licenseCode\": \"mizofaaodthocybyktdigbyg\",
    \"chargePoints\": [
        \"tempora\"
    ]
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "name": "Iusto sint enim doloremque.",
        "companyName": null,
        "licenseCode": null,
        "chargePointsNumber": 0,
        "chargePointsIds": []
    }
}
{
    "success": 0,
    "message": "The API key is invalid or missing."
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "Validation failed.",
    "errors": {
        "name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a group.

DELETE
https://api.powerly.app
/api/charge-point-groups/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charge point group.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/charge-point-groups/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Sites CRUD


Sites list (datatable).

GET
https://api.powerly.app
/api/charging-sites/datatable
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

search
string

Optional search query to filter sites.

Example:
ut
itemsPerPage
integer

Number of sites per page. Defaults to 15.

Example:
4
power-centers
boolean

If set to true, includes associated power centers in the response.

Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charging-sites/datatable?search=ut&itemsPerPage=4&power-centers=" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "data": [
              {
                  "id": 164,
                  "categoryId": null,
                  "name": "Site 11",
                  "status": true,
                  "active": true,
                  "startDate": null,
                  "endDate": null,
                  "integrationCode": null,
                  "chargePointIds": [
                      20,
                      21
                  ],
                  "address": {
                      "id": 161,
                      "latitude": "28.608637026617",
                      "longitude": "14.589843749997",
                      "country": {
                          "id": 195,
                          "name": "Algeria"
                      },
                      "state": "test",
                      "city": "Douera",
                      "zipcode": "16049",
                      "address_line_1": "CITY 100 LOGS DEKAKNA DOUERA",
                      "address_line_2": null,
                      "address_line_3": null
                  },
                  "power_centers": []
              },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 108
          }
      }
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Sites list.

GET
https://api.powerly.app
/api/charging-sites
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

power-centers
boolean

If set to true, includes associated power centers in the response.

Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charging-sites?power-centers=" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": [
          {
              "id": 164,
              "categoryId": null,
              "name": "Site 11",
              "status": true,
              "active": true,
              "startDate": null,
              "endDate": null,
              "integrationCode": null,
              "chargePointIds": [
                  20,
                  21
              ],
              "address": {
                 "id": 161,
                 "latitude": "28.608637026617",
                 "longitude": "14.589843749997",
                 "country": {
                     "id": 195,
                     "name": "Algeria"
                 },
                 "state": "test",
                 "city": "Douera",
                 "zipcode": "16049",
                 "address_line_1": "CITY 100 LOGS DEKAKNA DOUERA",
                 "address_line_2": null,
                 "address_line_3": null
             },
             "power_centers": []
          },
          ...
      ]
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Create a new site.

POST
https://api.powerly.app
/api/charging-sites
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/charging-sites" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"czcfyeuglyyjpmpiqcqddczbv\",
    \"category\": 8,
    \"status\": true,
    \"startDate\": \"1996-02-18\",
    \"endDate\": \"2106-04-15\",
    \"integrationCode\": \"reprehenderit\",
    \"chargePoints\": [
        19
    ],
    \"address\": {
        \"country_id\": 2,
        \"state\": \"est\",
        \"city\": \"dolores\",
        \"zipcode\": \"mcnxs\",
        \"address_line_1\": \"id\",
        \"address_line_2\": \"ab\",
        \"latitude\": 84579.102492,
        \"longitude\": 351754954.025
    }
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 159,
        "categoryId": 51,
        "name": "test",
        "status": true,
        "active": true,
        "startDate": "2024-10-10",
        "endDate": "2024-10-11",
        "integrationCode": null,
        "chargePointIds": [],
        "address": {
            "id": 161,
            "latitude": "28.608637026617",
            "longitude": "14.589843749997",
            "country": {
                "id": 195,
                "name": "Algeria"
            },
            "state": "test",
            "city": "Douera",
            "zipcode": "16049",
            "address_line_1": "CITY 100 LOGS DEKAKNA DOUERA",
            "address_line_2": null,
            "address_line_3": null
        },
        "power_centers": []
    }
}
{
    "success": 0,
    "message": "Validation error.",
    "errors": {
        "name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get details of a specific site.

GET
https://api.powerly.app
/api/charging-sites/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charging site.

Example:
1

Query Parameters

power-centers
boolean

If set to true, includes associated power centers in the response.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/charging-sites/1?power-centers=1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 159,
        "categoryId": 51,
        "name": "test",
        "status": true,
        "active": true,
        "startDate": "2024-10-10",
        "endDate": "2024-10-11",
        "integrationCode": null,
        "chargePointIds": [],
        "address": {
            "id": 161,
            "latitude": "28.608637026617",
            "longitude": "14.589843749997",
            "country": {
                "id": 195,
                "name": "Algeria"
            },
            "state": "test",
            "city": "Douera",
            "zipcode": "16049",
            "address_line_1": "CITY 100 LOGS DEKAKNA DOUERA",
            "address_line_2": null,
            "address_line_3": null
        },
        "power_centers": []
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Update an existing site.

PUT
PATCH
https://api.powerly.app
/api/charging-sites/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charging site.

Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/charging-sites/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"eykveiihogvhlpyqiqysdifeuoanmcmlmkcqqzjmpgegbncmrksjjfkqhyymjbaw\",
    \"category\": 20,
    \"status\": true,
    \"startDate\": \"2009-09-10\",
    \"endDate\": \"2088-06-25\",
    \"integrationCode\": \"dolor\",
    \"chargePoints\": [
        3
    ],
    \"address\": {
        \"country_id\": 10,
        \"state\": \"quis\",
        \"city\": \"ex\",
        \"zipcode\": \"mzanh\",
        \"address_line_1\": \"enim\",
        \"address_line_2\": \"inventore\",
        \"latitude\": 897.9,
        \"longitude\": 2056342
    }
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 159,
        "categoryId": 51,
        "name": "test",
        "status": true,
        "active": true,
        "startDate": "2024-10-10",
        "endDate": "2024-10-11",
        "integrationCode": null,
        "chargePointIds": [],
        "address": {
            "id": 161,
            "latitude": "28.608637026617",
            "longitude": "14.589843749997",
            "country": {
                "id": 195,
                "name": "Algeria"
            },
            "state": "test",
            "city": "Douera",
            "zipcode": "16049",
            "address_line_1": "CITY 100 LOGS DEKAKNA DOUERA",
            "address_line_2": null,
            "address_line_3": null
        },
        "power_centers": []
    }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "Validation error.",
    "errors": {
        "name": [
            "The name field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a site.

DELETE
https://api.powerly.app
/api/charging-sites/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the charging site.

Example:
1
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/charging-sites/1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Workers CRUD

Workers list. (datatable)

GET
https://api.powerly.app
/api/workers/datatable
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

search
string

Optional search query to filter categories.

Example:
soluta
itemsPerPage
integer

Number of items per page (-1 for all).

Example:
4
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers/datatable?search=soluta&itemsPerPage=4" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "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"
                },
              ...
          ],
          "meta": {
              "per_page": 15,
              "total": 55
          }
      }
 }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Reset a worker's balance.

GET
https://api.powerly.app
/api/workers/{worker_id}/reset-balance
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

worker_id
integer
required

The ID of the worker.

Example:
9
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers/9/reset-balance" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get worker statistics.

GET
https://api.powerly.app
/api/workers/{worker_id}/stats
requires authentication

Retrieves various statistics (e.g., total transactions, earnings, etc.) for a specific worker owned by the authenticated user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

worker_id
integer
required

The ID of the worker.

Example:
16
worker
string

Worker required The ID of the worker to retrieve statistics for.

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers/16/stats" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
 "success": 1,
 "msg": "Done!",
 "msg_arabic": "تمت العمليه بنجاح",
 "results": {
     "thisMonthStats": 120,
     "thisYearStats": 5432,
     "todaysStats": 10,
 }
}
{
    "success": 0,
    "error": "You don't have permissions to access localhost on this server."
}
{
    "success": 0,
    "msg": "Worker not found.",
    "msg_arabic": "العامل غير موجود."
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get worker transactions.

GET
https://api.powerly.app
/api/workers/{worker_id}/transactions
requires authentication

Retrieves a paginated list of transactions associated with a specific worker owned by the authenticated user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

worker_id
integer
required

The ID of the worker.

Example:
1
worker
string

Worker required The ID of the worker to retrieve transactions for.

Example:
1

Query Parameters

search
string

Optional search query to filter transactions (e.g., by type, amount).

Example:
vitae
itemsPerPage
integer

Number of items per page (-1 for all).

Example:
15
page
integer

The page number to retrieve.

Example:
1
type
string

Optional filter by transaction type (e.g., 'withdraw', 'debit', 'deposit').

Example:
deposit
confirmed
string

Optional filter by transaction status (e.g., 1, 0).

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers/1/transactions?search=vitae&itemsPerPage=15&page=1&type=deposit&confirmed=1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
 "success": 1,
 "msg": "Done!",
 "msg_arabic": "تمت العمليه بنجاح",
 "results": {
 "data": [
     {
         "id": 30,
         "amount": "100",
         "confirmed": true,
         "date": "2025-06-23 10:59:54",
         "type": "deposit"
     },...
 ],
 "meta": {
     "per_page": 15,
     "total": 50
   }
 }
}
{
    "success": 0,
    "error": "You don't have permissions to access localhost on this server."
}
{
    "success": 0,
    "msg": "Worker not found.",
    "msg_arabic": "العامل غير موجود."
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Export worker transactions to Excel.

GET
https://api.powerly.app
/api/workers/{worker_id}/transactions/export
requires authentication

Exports transactions for a specific worker owned by the authenticated user into an XLSX file. The export can be filtered by various parameters.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

worker_id
integer
required

The ID of the worker.

Example:
12
worker
string

Worker required The ID of the worker whose transactions to export.

Example:
1

Query Parameters

type
string

Optional filter by transaction type (e.g., 'withdraw', 'debit', 'deposit').

Example:
deposit
confirmed
string

Optional filter by transaction status (e.g., 1, 0).

Example:
1
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers/12/transactions/export?type=deposit&confirmed=1" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Binary file (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
{
    "success": 0,
    "error": "You don't have permissions to access localhost on this server."
}
{
    "success": 0,
    "msg": "Worker not found.",
    "msg_arabic": "العامل غير موجود."
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Workers list.

GET
https://api.powerly.app
/api/workers
requires authentication

All workers owned by the current user.

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

search
string

Optional search query to filter workers.

Example:
exercitationem
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers?search=exercitationem" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
      "success": 1,
      "msg": "Done!",
      "msg_arabic": "تمت العمليه بنجاح",
      "results": {
          "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"
              },
              ...
          ],
          "meta": {
              "per_page": -1,
              "total": 3
          }
      }
  }
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Create a new worker.

POST
https://api.powerly.app
/api/workers
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.powerly.app/api/workers" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --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\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "first_name": "yasser",
        "last_name": "belhimer",
        "name": "yasser belhimer",
        "email": "[email protected]",
        "rfid": null,
        "expire_at": "1970-01-01",
        "cash_on_hands": null
    }
}
{
    "success": 0,
    "message": "The firstname field is required.",
    "errors": {
        "first_name": [
            "The firstname field is required."
        ],
        "last_name": [
            "The lastname field is required."
        ],
        "email": [
            "The e-mail address field is required."
        ],
        "rfid": [
            "The rfid field is required."
        ],
        "expire_at": [
            "The expiration date field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Get details of a specific worker.

GET
https://api.powerly.app
/api/workers/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the worker.

Example:
11
Example request:
curl --request GET \
    --get "https://api.powerly.app/api/workers/11" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "first_name": "yasser",
        "last_name": "belhimer",
        "name": "yasser belhimer",
        "email": "[email protected]",
        "rfid": null,
        "expire_at": "1970-01-01",
        "cash_on_hands": null
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Update an existing worker.

PUT
PATCH
https://api.powerly.app
/api/workers/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the worker.

Example:
9

Body Parameters

Example request:
curl --request PUT \
    "https://api.powerly.app/api/workers/9" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --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\"
}"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح",
    "results": {
        "id": 1,
        "first_name": "yasser",
        "last_name": "belhimer",
        "name": "yasser belhimer",
        "email": "[email protected]",
        "rfid": null,
        "expire_at": "1970-01-01",
        "cash_on_hands": null
    }
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "message": "The firstname field is required.",
    "errors": {
        "first_name": [
            "The firstname field is required."
        ],
        "last_name": [
            "The lastname field is required."
        ],
        "email": [
            "The e-mail address field is required."
        ],
        "rfid": [
            "The rfid field is required."
        ],
        "expire_at": [
            "The expiration date field is required."
        ]
    }
}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}

Delete a worker.

DELETE
https://api.powerly.app
/api/workers/{id}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_BEARER_TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the worker.

Example:
20
Example request:
curl --request DELETE \
    "https://api.powerly.app/api/workers/20" \
    --header "Authorization: Bearer {YOUR_BEARER_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "success": 1,
    "msg": "Done!",
    "msg_arabic": "تمت العمليه بنجاح"
}
{"success": 0,"error": "You don't have permissions to access localhost on this server.}
{
    "success": 0,
    "msg": "Unauthenticated.",
    "msg_arabic": "Unauthenticated."
}