Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/esper:esper-esper-cloud-api-personal-access-token-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: ESPER API REFERENCE esper_cloud_api_Personal Access Token…
x-logo:
url: esper-logo-white.svg
backgroundColor: '#141418'
altText: Logo
description: '# Introduction
Welcome to Esper’s API documentation. The Esper API allows users to accomplish operations outside of the console. Some common uses for our APIs include observing device information and console activity, installing and updating apps, uploading files, and sending files to devices. Our users have also used the API to automate app updates, perform bulk actions, and more. Esper API endpoints use REST-based architecture and return JSON responses. See our documentation for:
* Getting started guides
* Commonly used API examples
* API command examples
* Automated Script examples
* And more
# Authentication
You need to create an API Key to interact with our APIs. Learn more about generating an API Key. You can also learn more about Esper and sign up for an account at esper.io/signup. Some endpoints also require an Enterprise ID. This ID can be found in the API Management section of the Esper console. # Lifecycle Labels
Esper uses lifecycle labels to communicate the support status of each API endpoint. Use the following table to understand what each label means and how to respond. Badge
What it means
Recommended action
Stable
This endpoint is fully supported and safe for production use. No action needed. Beta
This endpoint is publicly available but may change. It is not recommended for production integrations. Use with caution. Monitor the API changelog for updates before relying on this endpoint. Legacy
This endpoint uses an older architecture and is still supported, but a newer equivalent exists. It is not recommended for new integrations. Plan migration to the recommended replacement when possible. See the endpoint description for the alternative. Deprecated
This endpoint has stopped being supported. A removal date may be added at a later time. A replacement is available or the feature is entirely retired. Migrate before the removal date listed in the endpoint description. Do not use this endpoint in new integrations. # Pagination
Responses may be paginated. Use the following parameters to query the data. A full list of parameters can be found on the endpoint’s documentation page. Parameter
Data Type
Explanation
limit
integer
Limit the data returned. Default = 20. offset
integer
Offset to the first item returned. Default = 0. ordering
string
Order the results set by the field name. Varies by endpoint. next
string
Paginate to the next response set. previous
string
Paginate to the last set response. # Errors
We use standard HTTP status codes for success or failure. A typical error response may look something like this:
```json
{
"errors": [],
"message": "error message",
"status": 400
}
```
* `errors` - List of error details
* `message` - Error description
* `status` - HTTP status code
Some common status codes and messages are:
Number
Message
Explanation
200
OK
The request succeeded. 201
Resource creation
A resource was created. 401
Unauthorized
The API key is invalid. 404
Not found
The resource was not found. 429
Rate limit exceeded
Too many requests. Wait a moment and try again. 500
Server error
Internal error. Wait a moment and try again. If the issue persists, contact Esper. See how our systems are doing by checking our status page. # Rate Limits
To ensure quality of service for all customers, we enforce rate limits for API requests. Most customers won’t hit this limit with normal use. In case you experience 429 or rate limit exceeded errors, we recommend the following:
* Try sending requests in batches. * Begin with about 20 requests at a time and building up from there. * Ensure your scripts are efficient and don’t contain redundant calls. * Reach out to your account manager to discuss your options.'
termsOfService: https://esper.io/terms-of-service
contact:
email: developer@esper.io
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
x-prefix-tag: esper cloud api
servers:
- url: https://{foo}-api.esper.cloud/api
variables:
foo:
default: develop
description: Custom end point
tags:
- name: esper_cloud_api_Personal Access Token
x-displayName: Personal Access Token
paths:
/authn2/v0/personal-access-token/:
post:
x-badges:
- name: Stable
color: green
tags:
- esper_cloud_api_Personal Access Token
summary: Generate a new personal access token
description: 'Generates a new personal access token (API key) for the authenticated user, scoped to the current tenant.
Use this endpoint to create a named, expiry-controlled API key for programmatic access to the Esper API.
**About Generate Personal Access Token**
Personal access tokens are named, expiry-controlled API keys tied to a specific user and tenant. They replace the legacy developer app token system (see POST /v0/enterprise/{enterprise_id}/developerapp/{developerapp_id}/renew-token/, which is deprecated). Personal access tokens are scoped to the authenticated caller — this endpoint generates an API key for the user associated with the API key making the request, and cannot be used to create API keys on behalf of other users. The full API key value is returned only in the response to this create call — it is not retrievable again via the list endpoint, which returns only the key prefix. Store the API key value securely immediately after creation.
**Key Fields / Request Body**
name — (required) a human-readable label for the API key, used to identify it in the token list
description — (required) a description of the API key''s intended use
expiry_at — (required) the expiry date as a Unix timestamp integer; set to -1 for a non-expiring API key
**Key Fields (Response)**
id — the UUID of the newly created token record; store this for use in renewal and deletion calls
token — the full API key value; this is the only time it is returned — store it securely immediately
prefix — a short prefix of the API key, used to identify it in future list responses
expiry_at — the expiry timestamp as set in the request
**Common Use Cases**
Creating an API key for a CI/CD pipeline or automated script
Generating a long-lived API key for an integration that cannot handle session-based authentication
Issuing a dedicated API key for a specific integration or team member
**Best Practices**
Store the token value from the response immediately and securely — it cannot be retrieved again after this call
Store the id alongside the API key value for future renewal or deletion via PUT and DELETE /authn2/v0/personal-access-token/{personal_access_token_id}
Set a meaningful expiry_at value rather than using -1 (no expiry) wherever possible — expiring API keys reduce the blast radius of credential leaks
Use distinct name and description values per API key to make the list endpoint actionable during audits
**Workflow**
POST to this endpoint with a name, description, and expiry_at
Immediately store the returned token value and id securely
Use the API key value in subsequent Esper API calls
Track the expiry_at and renew via PUT /authn2/v0/personal-access-token/{personal_access_token_id} before expiry'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: name for the token.
description:
type: string
description: description for the token.
expiry_at:
type: integer
description: exipy date for token.
required:
- name
- description
- expiry_at
responses:
'200':
description: Token successfully generated
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_PersonalAccessTokenCreateResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
operationId: postAuthn2V0PersonalAccessToken
x-operation-id-source: derived
get:
x-badges:
- name: Stable
color: green
tags:
- esper_cloud_api_Personal Access Token
summary: Get tokens for corresponding user and tenant
description: 'Returns the full list of tokens for the current user and tenant. Tokens are scoped to the authenticated caller. This endpoint only returns tokens belonging to the user associated with the API key making the request, not tokens for other users in the tenant. Use this endpoint to locate the id of a specific token for use with the renew (PUT) or delete (DELETE) endpoints.
Use this endpoint to audit active API keys, identify keys approaching expiry, or retrieve token IDs for renewal or deletion.
**About Get Personal Access Tokens**
Returns the full list of personal access tokens for the current user and tenant. Personal access tokens are scoped to the authenticated caller. This endpoint only returns API keys belonging to the user associated with the API key making the request, not those belonging to other users in the tenant. Use this endpoint to locate the id of a specific token for use with the renew (PUT) or delete (DELETE) endpoints.
**Key Fields (Response)**
id — the UUID of the token record; use with PUT and DELETE /authn2/v0/personal-access-token/{personal_access_token_id}
name — the human-readable label assigned at creation
description — the description assigned at creation
prefix — a short prefix of the API key; use this to identify which key corresponds to a known credential without exposing the secret
expiry_at — the expiry as a Unix timestamp; -1 indicates no expiry
created_at / updated_at — timestamps for the token record
legacy_token_id / legacy_developer_app_id — references to the legacy token system, if applicable
**Common Use Cases**
Auditing which API keys are active for the current user
Identifying API keys approaching expiry so they can be renewed before they stop working
Retrieving the id of a specific token for renewal or deletion when the ID was not stored at creation time
**Best Practices**
Use prefix values to match list entries to known API keys in your secrets store — the full key value is never returned here
Regularly review expiry_at values and renew any API keys that will expire before your next maintenance window
Treat any token with a legacy_token_id as a migration candidate — consider replacing it with a new personal access token and retiring the legacy credential
**Workflow**
Call GET /authn2/v0/personal-access-token/ to retrieve all API keys for the current user
Identify the target token by name, prefix, or expiry_at
Use the token id with PUT .../personal-access-token/{personal_access_token_id} to renew, or DELETE to revoke'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_PersonalAccessTokenGetResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
operationId: getAuthn2V0PersonalAccessToken
x-operation-id-source: derived
/authn2/v0/personal-access-token/{personal_access_token_id}:
put:
x-badges:
- name: Stable
color: green
tags:
- esper_cloud_api_Personal Access Token
summary: Renew personal access token
description: 'Renews a personal access token by updating its expiry date.
Use this endpoint to extend the validity of an existing API key before it expires, without needing to generate a new key and update credentials in all systems that use it.
**About Renew Personal Access Token**
Personal access tokens are API keys with an expiry date set at creation. This endpoint extends the expiry in place — the API key value itself does not change, only the expiry_at timestamp is updated. Personal access tokens are scoped to the authenticated caller — only API keys belonging to the user associated with the API key making the request can be renewed; those belonging to other users cannot be managed here. The API key value is returned in the response. API keys created with expiry_at: -1 (no expiry) can also be updated to add an expiry via this endpoint.
**Key Fields / Request Body**
expiry_at — (required) the new expiry date as a Unix timestamp integer; set to -1 for no expiry
**Key Fields (Response)**
id — the UUID of the token record
token — the API key value (unchanged); returned here for convenience
expiry_at — the updated expiry timestamp as set in the request
updated_at — timestamp confirming when the renewal was applied
**Common Use Cases**
Extending an API key''s validity before it expires to avoid service interruption in automated integrations
Converting an API key from a fixed expiry to no expiry (or vice versa) by updating expiry_at
Renewing an API key as part of a scheduled credential rotation policy
**Best Practices**
Use GET /authn2/v0/personal-access-token/ to retrieve the personal_access_token_id if it was not stored at creation time — match by name or prefix
Renew API keys before they expire rather than after — a lapsed key will cause API calls to fail until renewed or replaced
Keep a record of each API key''s expiry_at in your secrets management system so renewals can be scheduled proactively
**Workflow**
Call GET /authn2/v0/personal-access-token/ to identify the target token and retrieve its id if needed
PUT to this endpoint with the new expiry_at value
Confirm the updated expiry_at in the response'
parameters:
- $ref: '#/components/parameters/esper_cloud_api_PersonalAccessTokenID'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
expiry_at:
type: integer
description: exipy date for token.
required:
- expiry_at
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_PersonalAccessTokenUpdateResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
operationId: putAuthn2V0PersonalAccessTokenByPersonalAccessTokenId
x-operation-id-source: derived
delete:
x-badges:
- name: Stable
color: green
tags:
- esper_cloud_api_Personal Access Token
summary: Delete personal access token
description: 'Permanently revokes a personal access token (API key), immediately invalidating any API calls that use it.
Use this endpoint to decommission an API key that is no longer needed, has been compromised, or belongs to a user who is leaving the organization.
**About Delete Personal Access Token**
Deleting a personal access token permanently revokes the API key — any integration or script using it will receive authentication errors on its next call. Personal access tokens are scoped to the authenticated caller — only API keys belonging to the user associated with the API key making the request can be deleted; those belonging to other users cannot be managed here. Deletion is immediate with no grace period. Returns HTTP 204 on success with no response body. If an API key needs to be replaced rather than simply revoked, generate a new one via POST /authn2/v0/personal-access-token/ and update all dependent systems before deleting the old key.
**Key Parameters**
personal_access_token_id — the UUID of the token record to revoke; obtain from GET /authn2/v0/personal-access-token/
**Common Use Cases**
Revoking an API key that may have been exposed or compromised
Decommissioning an API key used by a departing team member or retired integration
Cleaning up unused or expired API keys during a credential audit
**Best Practices**
If the API key is in active use, generate and deploy a replacement via POST /authn2/v0/personal-access-token/ before deleting the old one to avoid service interruption
Use GET /authn2/v0/personal-access-token/ to confirm the correct personal_access_token_id by matching on name or prefix before deleting — revocation is immediate and irreversible
Confirm the 204 response before notifying stakeholders that the API key has been revoked
**Workflow**
Call GET /authn2/v0/personal-access-token/ to identify the target token and retrieve its id
If the API key is in active use, generate and deploy a replacement first
Call DELETE /authn2/v0/personal-access-token/{personal_access_token_id}
Confirm the 204 response indicating successful revocation'
parameters:
- $ref: '#/components/parameters/esper_cloud_api_PersonalAccessTokenID'
responses:
'204':
description: OK
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/esper_cloud_api_GenericErrorResponse'
operationId: deleteAuthn2V0PersonalAccessTokenByPersonalAccessTokenId
x-operation-id-source: derived
components:
schemas:
esper_cloud_api_PersonalAccessTokenUpdateResponse:
title: PersonalAccessTokenUpdateResponse
type: object
properties:
id:
type: string
format: uuid
description: Unique ID for the generated token.
name:
type: string
description: Name for the token.
description:
type: string
description: Description for the token.
created_at:
type: string
format: timestamp
description: Timestamp indicating when the token was created.
updated_at:
type: string
format: timestamp
description: Timestamp indicating when the token was last updated.
token:
type: string
description: The generated access token value.
prefix:
type: string
description: Prefix for the generated token value.
expiry_at:
type: integer
description: exipy date for token.
legacy_token_id:
type: integer
description: token id corresponding to legacy system
legacy_developer_app_id:
type: string
description: developer app id corresponding to legacy system
esper_cloud_api_PersonalAccessTokenCreateResponse:
title: PersonalAccessTokenCreateResponse
type: object
properties:
id:
type: string
format: uuid
description: Unique ID for the generated token.
name:
type: string
description: Name for the token.
description:
type: string
description: Description for the token.
created_at:
type: string
format: timestamp
description: Timestamp indicating when the token was created.
updated_at:
type: string
format: timestamp
description: Timestamp indicating when the token was last updated.
token:
type: string
description: The generated access token value.
prefix:
type: string
description: Prefix for the generated token value.
expiry_at:
type: integer
description: exipy date for token.
esper_cloud_api_PersonalAccessTokenGetResponse:
title: PersonalAccessTokenGetResponse
type: object
properties:
count:
type: integer
personal_access_tokens:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The unique identifier of the token.
name:
type: string
description: The name of the token.
description:
type: string
description: A description of the token.
created_at:
type: string
format: timestamp
description: Timestamp indicating when the token was created.
updated_at:
type: string
format: timestamp
description: Timestamp indicating when the token was updated.
prefix:
type: string
description: The token prefix.
token:
type: string
description: The token value.
expiry_at:
type: integer
description: exipy date for token, -1 indicates no expiry.
legacy_token_id:
type: integer
description: token id corresponding to legacy system
legacy_developer_app_id:
type: string
description: developer app id corresponding to legacy system
esper_cloud_api_GenericErrorResponse:
type: object
properties:
status:
type: integer
format: int32
description: Either 'status' or 'code' will be present, but not both.
code:
type: integer
format: int32
description: Either 'status' or 'code' will be present, but not both.
error:
type: string
description: Either 'error' or 'errors' will be present, but not both.
errors:
type: array
items:
type: string
description: Either 'error' or 'errors' will be present, but not both.
message:
title: Message describing the error
type: string
parameters:
esper_cloud_api_PersonalAccessTokenID:
name: personal_access_token_id
description: Personal Access Token Id
in: path
required: true
schema:
type: string
format: uuid
securitySchemes:
esper_cloud_api_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
pipelines_SCAPIAuthToken:
type: http
scheme: bearer
device_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
apps_management_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
commands_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
drift_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
device_onboarding_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
tenant_apiKey:
type: http
scheme: bearer
description: "#### API KEY - Access Token\nAccess token for API is passed as authorization header in calls. You need to generate this from your Esper Console at `<domain>-api.esper.cloud` where foo is the sub-domain name you gave for your Esper Dev environment when you signed up for your Esper account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token.\nOnce you have the access token, you need to send an authorization header as below\n\n```bash\n\n curl -X GET \\\n https://<domain>-api.esper.cloud/api/enterprise/<enterprise_id>/device/ \\\n -H 'Authorization: Bearer <ACCESS_TOKEN>' \\\n -H 'Content-Type: application/json' \\\n```\n\n> Please note the use of keyword **Bearer** before the token value.\n\n\nYou can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497).\n"
foundation_AuthToken:
type: apiKey
in: header
name: Authorization
reports_bearerAuth:
type: http
scheme: bearer
geofence_bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
x-tagGroups:
- name: ESPER CLOUD API
tags:
- esper_cloud_api_Company Settings
- esper_cloud_api_Application
- esper_cloud_api_Application V1
- esper_cloud_api_AndroidDevice
- esper_cloud_api_Device Group
- esper_cloud_api_Token (Deprecated)
- esper_cloud_api_Commands V2
- esper_cloud_api_Enterprise Policy
- esper_cloud_api_Geofence
- esper_cloud_api_Content
- esper_cloud_api_User (Deprecated)
- esper_cloud_api_User
- esper_cloud_api_Blueprint (Deprecated)
- esper_cloud_api_Directory Record
- esper_cloud_api_Tile Icon
- esper_cloud_api_Alerts
- esper_cloud_api_Alarms
- esper_cloud_api_Wallpapers
- esper_cloud_api_Device Telemetry
- esper_cloud_api_Daily and Custom Reports
- esper_cloud_api_SSO Connections
- esper_cloud_api_Roles
- esper_cloud_api_Personal Access Token
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/esper/refs/heads/main/openapi/esper-esper-cloud-api-personal-access-token-api-openapi.yml