# Exolink API

The Exolink API is RESTful and requests need to be authenticated.
The API accepts a JSON-encoded body, returns JSON-encoded responses, and uses standard HTTP response codes.


Version: 2.0.0

## Servers

Exolink Production
```
https://api.exolink.cloud
```

## Security

### bearerToken

Bearer token

Type: http
Scheme: bearer

## Download OpenAPI description

 - [Exolink API](https://docs.exolink.com/_bundle/apis/@2.0/exolink_api.yaml)

## Public

 - [GET /health](https://docs.exolink.com/apis/exolink_api/public/health_check.md): Service health monitoring endpoint
## Auth

 - [POST /auth/signup](https://docs.exolink.com/apis/exolink_api/auth/auth_signup.md): Register a new user account
 - [POST /auth/confirm](https://docs.exolink.com/apis/exolink_api/auth/auth_confirm.md): Confirm user registration with verification code
 - [POST /auth/login](https://docs.exolink.com/apis/exolink_api/auth/auth_login.md): Authenticate user, confirm multi-factor authentication and return access tokens
 - [POST /auth/refresh](https://docs.exolink.com/apis/exolink_api/auth/auth_refresh.md): Get new access token using refresh token
 - [POST /auth/forgot](https://docs.exolink.com/apis/exolink_api/auth/auth_forgot.md): Send password reset code to user email
 - [GET /auth/valid](https://docs.exolink.com/apis/exolink_api/auth/auth_valid.md): Check if the provided access token is valid
## User

 - [GET /user/{userId}](https://docs.exolink.com/apis/exolink_api/user/get_user.md): Retrieve user information
 - [PUT /user/{userId}](https://docs.exolink.com/apis/exolink_api/user/update_user.md): Update user profile information
 - [DELETE /user/{userId}](https://docs.exolink.com/apis/exolink_api/user/delete_user.md): Delete user account
 - [GET /user/{userId}/logout](https://docs.exolink.com/apis/exolink_api/user/user_logout.md): Logout user and invalidate tokens
 - [POST /user/{userId}/confirm](https://docs.exolink.com/apis/exolink_api/user/user_confirm_mfa.md): Confirm multi-factor authentication setup
 - [GET /user/{userId}/settings](https://docs.exolink.com/apis/exolink_api/user/get_user_settings.md): Retrieve user settings and preferences
 - [PUT /user/{userId}/settings](https://docs.exolink.com/apis/exolink_api/user/update_user_settings.md): Update user settings and preferences
 - [GET /user/{userId}/tenant](https://docs.exolink.com/apis/exolink_api/user/get_user_tenants.md): List all tenants the user has access to
 - [POST /user/{userId}/tenant](https://docs.exolink.com/apis/exolink_api/user/create_user_tenant.md): Create a new tenant for the user
## Product

 - [GET /product](https://docs.exolink.com/apis/exolink_api/product/list_products.md): Get list of available products and pricing
 - [GET /product/{productId}](https://docs.exolink.com/apis/exolink_api/product/get_product.md): Get details of a specific product
## Static

 - [GET /static/roles](https://docs.exolink.com/apis/exolink_api/static/get_static_roles.md): Get list of available user roles
## Tenant

 - [GET /tenant/{tenant}](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant.md): Retrieve tenant information
 - [PUT /tenant/{tenant}](https://docs.exolink.com/apis/exolink_api/tenant/update_tenant.md): Update tenant information
 - [GET /tenant/{tenant}/stats](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_stats.md): Retrieve tenant usage statistics
 - [GET /tenant/{tenant}/subscription](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_subscription.md): Retrieve tenant subscription information
 - [GET /tenant/{tenant}/user](https://docs.exolink.com/apis/exolink_api/tenant/list_tenant_users.md): Get list of users in the tenant
 - [PUT /tenant/{tenant}/user](https://docs.exolink.com/apis/exolink_api/tenant/bulk_set_user_roles.md): Set roles for multiple users
 - [PUT /tenant/{tenant}/user/{userId}](https://docs.exolink.com/apis/exolink_api/tenant/set_user_role.md): Set role for a specific user
 - [DELETE /tenant/{tenant}/user/{userId}](https://docs.exolink.com/apis/exolink_api/tenant/remove_tenant_user.md): Remove user from the tenant
 - [POST /tenant/{tenant}/invite](https://docs.exolink.com/apis/exolink_api/tenant/create_tenant_invite.md): Create invitation for new tenant user
 - [GET /tenant/{tenant}/ips](https://docs.exolink.com/apis/exolink_api/tenant/list_tenant_ips.md): Get IP whitelist for the tenant
 - [POST /tenant/{tenant}/ips](https://docs.exolink.com/apis/exolink_api/tenant/add_tenant_ip.md): Add IP to whitelist
 - [DELETE /tenant/{tenant}/ips/{ipId}](https://docs.exolink.com/apis/exolink_api/tenant/delete_tenant_ip.md): Remove IP from whitelist
 - [GET /tenant/{tenant}/metrics](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_metrics.md): Get tenant usage metrics
 - [GET /tenant/{tenant}/domain](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_domain.md): Get custom domain configuration
 - [GET /tenant/{tenant}/billing](https://docs.exolink.com/apis/exolink_api/tenant/get_billing_portal.md): Get Stripe billing portal session URL
## Profile

 - [GET /tenant/{tenant}/profile](https://docs.exolink.com/apis/exolink_api/profile/list_profiles.md): Get list of charger profiles
 - [POST /tenant/{tenant}/profile](https://docs.exolink.com/apis/exolink_api/profile/create_profile.md): Create a new charger profile
 - [GET /tenant/{tenant}/profile/{profileId}](https://docs.exolink.com/apis/exolink_api/profile/get_profile.md): Get details of a specific profile
 - [PUT /tenant/{tenant}/profile/{profileId}](https://docs.exolink.com/apis/exolink_api/profile/update_profile.md): Update profile information
 - [DELETE /tenant/{tenant}/profile/{profileId}](https://docs.exolink.com/apis/exolink_api/profile/delete_profile.md): Delete a configuration profile
 - [GET /tenant/{tenant}/provision](https://docs.exolink.com/apis/exolink_api/profile/get_provision_status.md): Get current discovery status
 - [POST /tenant/{tenant}/provision](https://docs.exolink.com/apis/exolink_api/profile/start_provisioning.md): Start charger discovery mode
 - [DELETE /tenant/{tenant}/provision](https://docs.exolink.com/apis/exolink_api/profile/stop_provisioning.md): Stop charger discovery mode
## CPMS

 - [GET /tenant/{tenant}/cpms](https://docs.exolink.com/apis/exolink_api/cpms/list_cpms.md): Return the list of CPMS for the given tenant
 - [POST /tenant/{tenant}/cpms](https://docs.exolink.com/apis/exolink_api/cpms/create_cpms.md): Create a new CPMS backend
 - [GET /tenant/{tenant}/cpms/{cpmsId}](https://docs.exolink.com/apis/exolink_api/cpms/get_cpms.md): Get details of a specific CPMS backend
 - [PUT /tenant/{tenant}/cpms/{cpmsId}](https://docs.exolink.com/apis/exolink_api/cpms/update_cpms.md): Update CPMS backend information
 - [DELETE /tenant/{tenant}/cpms/{cpmsId}](https://docs.exolink.com/apis/exolink_api/cpms/delete_cpms.md): Delete a CPMS backend
## Charger

 - [GET /tenant/{tenant}/charger](https://docs.exolink.com/apis/exolink_api/charger/list_chargers.md): Return the list of chargers for the given tenant
 - [POST /tenant/{tenant}/charger](https://docs.exolink.com/apis/exolink_api/charger/create_charger.md): Create a new charger
 - [PUT /tenant/{tenant}/charger](https://docs.exolink.com/apis/exolink_api/charger/batch_update_chargers.md): Update multiple chargers at once
 - [GET /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/get_charger.md): Get details of a specific charger
 - [PUT /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/update_charger.md): Update charger information
 - [DELETE /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/delete_charger.md): Delete a charger
 - [PATCH /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/send_charger_action.md): Send action command to charger
 - [GET /tenant/{tenant}/charger/{chargerId}/status](https://docs.exolink.com/apis/exolink_api/charger/get_charger_status.md): Get real-time status of a charger
## Lab

 - [GET /tenant/{tenant}/lab](https://docs.exolink.com/apis/exolink_api/lab/list_labs.md): Get list of lab environments
 - [POST /tenant/{tenant}/lab](https://docs.exolink.com/apis/exolink_api/lab/create_lab.md): Create a new lab environment
 - [GET /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/get_lab.md): Get details of a specific lab
 - [PUT /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/update_lab.md): Update lab information
 - [PATCH /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/update_lab_task.md): Update lab task configuration
 - [DELETE /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/delete_lab.md): Delete a lab environment
 - [GET /tenant/{tenant}/lab/{labId}/config](https://docs.exolink.com/apis/exolink_api/lab/list_lab_configs.md): Get list of lab configuration versions
 - [GET /tenant/{tenant}/lab/{labId}/config/latest](https://docs.exolink.com/apis/exolink_api/lab/get_lab_config_latest.md): Get latest lab configuration
 - [GET /tenant/{tenant}/lab/{labId}/config/{configId}](https://docs.exolink.com/apis/exolink_api/lab/get_lab_config.md): Get specific lab configuration version
 - [GET /tenant/{tenant}/lab/version](https://docs.exolink.com/apis/exolink_api/lab/get_lab_version.md): Get latest available lab software version
## Logs

 - [GET /tenant/{tenant}/logs/audit](https://docs.exolink.com/apis/exolink_api/logs/get_audit_logs.md): Get audit logs for the tenant
 - [GET /tenant/{tenant}/logs/ocpp](https://docs.exolink.com/apis/exolink_api/logs/get_ocpp_logs.md): Get OCPP communication logs
