# 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

Public endpoints

### Health Check

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

## Auth

Authentication and authorization endpoints

### User Signup

 - [POST /auth/signup](https://docs.exolink.com/apis/exolink_api/auth/auth_signup.md): Register a new user account

### Confirm User Signup

 - [POST /auth/confirm](https://docs.exolink.com/apis/exolink_api/auth/auth_confirm.md): Confirm user registration with verification code

### User Login

 - [POST /auth/login](https://docs.exolink.com/apis/exolink_api/auth/auth_login.md): Authenticate user and return access tokens

### Refresh Access Token

 - [POST /auth/refresh](https://docs.exolink.com/apis/exolink_api/auth/auth_refresh.md): Get new access token using refresh token

### Initiate Password Reset

 - [POST /auth/forgot](https://docs.exolink.com/apis/exolink_api/auth/auth_forgot.md): Send password reset code to user email

### Validate Access Token

 - [GET /auth/valid](https://docs.exolink.com/apis/exolink_api/auth/auth_valid.md): Check if the provided access token is valid

## User

User management endpoints

### Get User

 - [GET /user/{userId}](https://docs.exolink.com/apis/exolink_api/user/get_user.md): Retrieve user information

### Update User

 - [PUT /user/{userId}](https://docs.exolink.com/apis/exolink_api/user/update_user.md): Update user profile information

### Delete User

 - [DELETE /user/{userId}](https://docs.exolink.com/apis/exolink_api/user/delete_user.md): Delete user account

### Logout User

 - [GET /user/{userId}/logout](https://docs.exolink.com/apis/exolink_api/user/user_logout.md): Logout user and invalidate tokens

### Confirm MFA Setup

 - [POST /user/{userId}/confirm](https://docs.exolink.com/apis/exolink_api/user/user_confirm_mfa.md): Confirm multi-factor authentication setup

### Get User Settings

 - [GET /user/{userId}/settings](https://docs.exolink.com/apis/exolink_api/user/get_user_settings.md): Retrieve user settings and preferences

### Update User Settings

 - [PUT /user/{userId}/settings](https://docs.exolink.com/apis/exolink_api/user/update_user_settings.md): Update user settings and preferences

### Get User Tenants

 - [GET /user/{userId}/tenant](https://docs.exolink.com/apis/exolink_api/user/get_user_tenants.md): List all tenants the user has access to

### Create Tenant

 - [POST /user/{userId}/tenant](https://docs.exolink.com/apis/exolink_api/user/create_user_tenant.md): Create a new tenant for the user

## Product

Product and pricing endpoints

### List Products

 - [GET /product](https://docs.exolink.com/apis/exolink_api/product/list_products.md): Get list of available products and pricing

### Get Product

 - [GET /product/{productId}](https://docs.exolink.com/apis/exolink_api/product/get_product.md): Get details of a specific product

## Tenant

Tenant management endpoints

### Get Tenant

 - [GET /tenant/{tenant}](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant.md): Retrieve tenant information

### Update Tenant

 - [PUT /tenant/{tenant}](https://docs.exolink.com/apis/exolink_api/tenant/update_tenant.md): Update tenant information

### Get Tenant Statistics

 - [GET /tenant/{tenant}/stats](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_stats.md): Retrieve tenant usage statistics

### Get Subscription

 - [GET /tenant/{tenant}/subscription](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_subscription.md): Retrieve tenant subscription information

### List Tenant Users

 - [GET /tenant/{tenant}/user](https://docs.exolink.com/apis/exolink_api/tenant/list_tenant_users.md): Get list of users in the tenant

### Bulk Set User Roles

 - [PUT /tenant/{tenant}/user](https://docs.exolink.com/apis/exolink_api/tenant/bulk_set_user_roles.md): Set roles for multiple users

### Set User Role

 - [PUT /tenant/{tenant}/user/{userId}](https://docs.exolink.com/apis/exolink_api/tenant/set_user_role.md): Set role for a specific user

### Remove User from Tenant

 - [DELETE /tenant/{tenant}/user/{userId}](https://docs.exolink.com/apis/exolink_api/tenant/remove_tenant_user.md): Remove user from the tenant

### Create Invite

 - [POST /tenant/{tenant}/invite](https://docs.exolink.com/apis/exolink_api/tenant/create_tenant_invite.md): Create invitation for new tenant user

### List IPs

 - [GET /tenant/{tenant}/ips](https://docs.exolink.com/apis/exolink_api/tenant/list_tenant_ips.md): Get IP whitelist for the tenant

### Add IP

 - [POST /tenant/{tenant}/ips](https://docs.exolink.com/apis/exolink_api/tenant/add_tenant_ip.md): Add IP to whitelist

### Delete IP

 - [DELETE /tenant/{tenant}/ips/{ipId}](https://docs.exolink.com/apis/exolink_api/tenant/delete_tenant_ip.md): Remove IP from whitelist

### Get Metrics

 - [GET /tenant/{tenant}/metrics](https://docs.exolink.com/apis/exolink_api/tenant/get_tenant_metrics.md): Get tenant usage metrics

### List Profiles

 - [GET /tenant/{tenant}/profile](https://docs.exolink.com/apis/exolink_api/tenant/list_profiles.md): Get list of charger configuration profiles

### Create Profile

 - [POST /tenant/{tenant}/profile](https://docs.exolink.com/apis/exolink_api/tenant/create_profile.md): Create a new configuration profile

### Get Profile

 - [GET /tenant/{tenant}/profile/{profileId}](https://docs.exolink.com/apis/exolink_api/tenant/get_profile.md): Get details of a specific profile

### Update Profile

 - [PUT /tenant/{tenant}/profile/{profileId}](https://docs.exolink.com/apis/exolink_api/tenant/update_profile.md): Update profile information

### Delete Profile

 - [DELETE /tenant/{tenant}/profile/{profileId}](https://docs.exolink.com/apis/exolink_api/tenant/delete_profile.md): Delete a configuration profile

### Get Provision Status

 - [GET /tenant/{tenant}/provision](https://docs.exolink.com/apis/exolink_api/tenant/get_provision_status.md): Get current provisioning status

### Start Provisioning

 - [POST /tenant/{tenant}/provision](https://docs.exolink.com/apis/exolink_api/tenant/start_provisioning.md): Start charger provisioning mode

### Stop Provisioning

 - [DELETE /tenant/{tenant}/provision](https://docs.exolink.com/apis/exolink_api/tenant/stop_provisioning.md): Stop charger provisioning mode

### Get Billing Portal Session

 - [GET /tenant/{tenant}/billing](https://docs.exolink.com/apis/exolink_api/tenant/get_billing_portal.md): Get Stripe billing portal session URL

## CPMS

CPMS management endpoints

### List 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

### Create CPMS

 - [POST /tenant/{tenant}/cpms](https://docs.exolink.com/apis/exolink_api/cpms/create_cpms.md): Create a new CPMS backend

### Get CPMS

 - [GET /tenant/{tenant}/cpms/{cpmsId}](https://docs.exolink.com/apis/exolink_api/cpms/get_cpms.md): Get details of a specific CPMS backend

### Update CPMS

 - [PUT /tenant/{tenant}/cpms/{cpmsId}](https://docs.exolink.com/apis/exolink_api/cpms/update_cpms.md): Update CPMS backend information

### Delete CPMS

 - [DELETE /tenant/{tenant}/cpms/{cpmsId}](https://docs.exolink.com/apis/exolink_api/cpms/delete_cpms.md): Delete a CPMS backend

## Charger

Charger management endpoints

### List Chargers

 - [GET /tenant/{tenant}/charger](https://docs.exolink.com/apis/exolink_api/charger/list_chargers.md): Return the list of chargers for the given tenant

### Create Charger

 - [POST /tenant/{tenant}/charger](https://docs.exolink.com/apis/exolink_api/charger/create_charger.md): Create a new charger

### Batch Update Chargers

 - [PUT /tenant/{tenant}/charger](https://docs.exolink.com/apis/exolink_api/charger/batch_update_chargers.md): Update multiple chargers at once

### Get Charger

 - [GET /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/get_charger.md): Get details of a specific charger

### Update Charger

 - [PUT /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/update_charger.md): Update charger information

### Delete Charger

 - [DELETE /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/delete_charger.md): Delete a charger

### Send Charger Action

 - [PATCH /tenant/{tenant}/charger/{chargerId}](https://docs.exolink.com/apis/exolink_api/charger/send_charger_action.md): Send action command to charger

### Get Charger Status

 - [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

Lab management endpoints

### List Labs

 - [GET /tenant/{tenant}/lab](https://docs.exolink.com/apis/exolink_api/lab/list_labs.md): Get list of lab environments

### Create Lab

 - [POST /tenant/{tenant}/lab](https://docs.exolink.com/apis/exolink_api/lab/create_lab.md): Create a new lab environment

### Update Lab

 - [PUT /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/update_lab.md): Update lab information

### Update Lab Task

 - [PATCH /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/update_lab_task.md): Update lab task configuration

### Delete Lab

 - [DELETE /tenant/{tenant}/lab/{labId}](https://docs.exolink.com/apis/exolink_api/lab/delete_lab.md): Delete a lab environment

### List Config Versions

 - [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 Latest Config

 - [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 Config Version

 - [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 Latest Lab 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

Log endpoints

### Get Audit 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 OCPP Logs

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

## Domain

Custom Domain endpoints

### Get Domain

 - [GET /tenant/{tenant}/domain](https://docs.exolink.com/apis/exolink_api/domain/get_tenant_domain.md): Get custom domain configuration

### Create Domain

 - [POST /tenant/{tenant}/domain](https://docs.exolink.com/apis/exolink_api/domain/create_tenant_domain.md): Configure custom domain for tenant

### Delete Domain

 - [DELETE /tenant/{tenant}/domain](https://docs.exolink.com/apis/exolink_api/domain/delete_tenant_domain.md): Remove custom domain configuration

