Esper tenant_DEP Tokens API

APIs to create and access DEP tokens. Learn more about [DEP tokens](https://help.esper.io/hc/en-us/articles/20361103311761-Setting-Up-Apple-MDM-Management)

Operations 4

POST /tenant/v0/deptokens/ Generate the public key file #
GET /tenant/v0/deptokens/ Get all DEP tokens #
GET /tenant/v0/deptokens/{id}/ Get dep token by id #
PUT /tenant/v0/deptokens/{id}/ Upload dep token to a tenant #

Work with this as data

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-tenant-dep-tokens-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 Specification

esper-tenant-dep-tokens-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ESPER API REFERENCE tenant_DEP Tokens API
  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: tenant_DEP Tokens
  description: APIs to create and access DEP tokens. Learn more about DEP tokens
  x-displayName: DEP Tokens
paths:
  /tenant/v0/deptokens/:
    post:
      x-badges:
      - name: Stable
        color: green
      summary: Generate the public key file
      description: '⚠️ iOS/iPadOS/tvOS only.


        Generates and downloads the Esper public key file (.pem) required to register an MDM server entry and create a DEP token in Apple Business Manager.


        This is the first step in the DEP token setup workflow: the returned public key file must be uploaded to Apple Business Manager to generate the encrypted server token (.p7m) that is then uploaded back to Esper.


        **About Generate DEP Public Key**


        Device Enrollment Program (DEP) tokens allow Esper to communicate with Apple Business Manager (ABM) to automatically enroll DEP-provisioned iOS devices. The process begins with generating an Esper public key, which ABM uses to encrypt the server token it returns. This key exchange is required by Apple as a security measure in the MDM server registration flow. The response is a plain-text PEM file delivered as an attachment (Esper_Public_Key.pem), not a JSON object. The resulting DEP token record is created in state CSR_GENERATED until the server token is uploaded via PUT /api/tenant/v0/deptokens/{id}/.Key Fields / Query Parameters


        Request body is optional (DEP_Token_POST schema is an empty object).

        Response is a text/plain PEM-formatted public key file with Content-Disposition: attachment; filename="Esper_Public_Key.pem".


        **Common Use Cases**


        Initial DEP token setup for a new Esper tenant provisioning iOS devices through Apple Business


        Regenerating a public key when rotating DEP credentials


        Starting the renewal process for an expiring DEP token


        **Best Practices**


        Upload the public key to ABM promptly; do not share the file externally.


        After uploading to ABM and downloading the resulting server token, proceed to PUT /api/tenant/v0/deptokens/{id}/ to complete the registration — use GET /api/tenant/v0/deptokens/ to retrieve the id of the newly created CSR_GENERATED record.


        Use a consistent Apple Business account across all DEP token operations to avoid mismatch errors.


        **Workflow**


        Call POST /api/tenant/v0/deptokens/ to generate and download Esper_Public_Key.pem.


        In Apple Business Manager, go to Devices > Management > Add device management service and upload the Esper public key.


        Save the MDM server entry, then download the resulting server token (.p7m) via the ellipsis menu.


        Upload the .p7m to Esper via PUT /api/tenant/v0/deptokens/{id}/ using the id of the CSR_GENERATED record.'
      operationId: DEPToken
      tags:
      - tenant_DEP Tokens
      security:
      - tenant_apiKey: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tenant_DEP_Token_POST'
      responses:
        '200':
          description: Public key generation for ABM
          headers:
            Content-Disposition:
              schema:
                type: string
                example: attachment; filename="Esper_Public_Key.pem"
          content:
            text/plain; charset=utf-8:
              schema:
                type: string
                properties:
                  content:
                    type: string
                example: '-----BEGIN PUBLIC KEY----- MIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgE7FsxhVgAauNzV2S+B2O2TVpcKc /aPylhD8Abq0/5swcu3XFseP/GVttTH7JzSLLKdpyculA/DWfc73OP+r4LeswbAc pyvI8uDVCexU7YsND00Vs/L1i9RZXpCBk0oNECjIKQ6ex7ccI6VzZaTH6DallGkY eUcBApaAiL5QILTlAgMBAAE= -----END PUBLIC KEY-----'
        '400':
          description: Public key generation error - Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_400_Bad_Data'
        '401':
          description: Public key generation error - Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_401_Unauthorized'
        '500':
          description: Public key generation error - Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_500_Internal_Server_Error'
    get:
      x-badges:
      - name: Stable
        color: green
      summary: Get all DEP tokens
      description: '⚠️ iOS/iPadOS/tvOS only.


        Returns a paginated list of all DEP tokens registered to the Esper tenant, with optional filtering by token state.


        Use this endpoint to audit DEP token status across the tenant, identify tokens pending completion, and retrieve id values needed for upload or individual retrieval operations.


        **About List DEP Tokens**


        DEP tokens are credentials that authorize Esper to communicate with Apple Business Manager for automatic iOS device enrollment. Each token progresses through two states. CSR_GENERATED (the Esper public key has been generated but the ABM server token has not yet been uploaded) and COMPLETED (the full token exchange is done and the integration is active). A tenant may have multiple DEP tokens, each corresponding to a different ABM MDM server entry or Apple Business location.


        **Key Fields / Query Parameters**


        state (query, optional) — Filter results by token state-- CSR_GENERATED or COMPLETED.


        id — UUID of the DEP token record; used in GET /api/tenant/v0/deptokens/{id}/ and PUT /api/tenant/v0/deptokens/{id}/.


        token_name — Human-readable label assigned to the token during upload.


        meta.token_expiry_on — Expiry date of the DEP token; tokens expire annually and must be renewed.


        **Common Use Cases**


        Auditing all DEP tokens to identify any CSR_GENERATED records that represent incomplete setup flows


        Monitoring token expiry dates ahead of the annual renewal window


        Retrieving token id values to pass to the individual token endpoints


        **Best Practices**


        Filter by state=CSR_GENERATED periodically to surface abandoned token setup flows that were started but never completed.


        Track meta.token_expiry_on across all tokens; expired DEP tokens prevent automatic enrollment of new iOS devices.


        Use the returned id values to fetch full details via GET /api/tenant/v0/deptokens/{id}/ before performing uploads or updates.'
      operationId: ListDEPTokens
      tags:
      - tenant_DEP Tokens
      security:
      - tenant_apiKey: []
      parameters:
      - in: query
        name: state
        schema:
          type: string
          enum:
          - CSR_GENERATED
          - COMPLETED
      responses:
        '200':
          description: Lists all dep tokens for a tenant
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                  content:
                    type: object
                    properties:
                      count:
                        type: integer
                      next:
                        type: string
                      prev:
                        type: string
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/tenant_DEP_Token_GET'
        '401':
          description: Get DEP tokens error - Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_401_Unauthorized'
        '500':
          description: Get DEP tokens error - Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_500_Internal_Server_Error'
  /tenant/v0/deptokens/{id}/:
    get:
      x-badges:
      - name: Stable
        color: green
      summary: Get dep token by id
      description: 'Retrieves the details of a single DEP token by its UUID.


        Returns metadata including the token name, current state, expiry date, and audit timestamps — useful for checking the status of a specific token before renewal or upload operations.


        **About Get DEP Token by ID**


        DEP tokens in Esper go through a two-step setup: public key generation (CSR_GENERATED) followed by ABM server token upload (COMPLETED). This endpoint lets you inspect a specific token''s full record without fetching the entire list, which is especially useful in tenants with multiple active DEP tokens. The state field confirms whether the token exchange with Apple Business Manager is complete and the integration is ready for device enrollment.


        **Key Fields / Query Parameters**


        id (path, required, UUID) — The unique identifier of the DEP token record.


        state — Current token state: CSR_GENERATED or COMPLETED.


        token_name — The label assigned to the token during upload.


        meta.token_expiry_on — Token expiry date; critical for renewal planning.


        created_at / updated_at — Audit timestamps for when the token was created and last modified.


        **Common Use Cases**


        Checking whether a specific DEP token setup is complete before onboarding iOS devices


        Retrieving expiry information for a single token as part of a renewal workflow


        Confirming token state has transitioned to COMPLETED after uploading the ABM server token via PUT /api/tenant/v0/deptokens/{id}/


        **Best Practices**


        Call this endpoint after completing the ABM server token upload to confirm the state has transitioned to COMPLETED before attempting to enroll devices.


        Use meta.token_expiry_on to set renewal reminders well in advance — expired DEP tokens block automatic device enrollment.'
      operationId: DEPTokenBasedOnID
      parameters:
      - name: id
        in: path
        description: ID of the token object
        required: true
        schema:
          type: string
          format: UUID
      tags:
      - tenant_DEP Tokens
      security:
      - tenant_apiKey: []
      responses:
        '200':
          description: Get DEP token by id
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                  content:
                    type: object
                    properties:
                      schema:
                        $ref: '#/components/schemas/tenant_DEP_Token_GET'
        '401':
          description: Get DEP token by id error - Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_401_Unauthorized'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_404_Not_Found'
        '500':
          description: Get DEP token by id error - Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_500_Internal_Server_Error'
    put:
      x-badges:
      - name: Stable
        color: green
      summary: Upload dep token to a tenant
      description: 'Uploads a DEP token for a tenant''s Apple Business Manager public key.


        Uploads the .p7m token file downloaded from Apple Business Manager (ABM), associating it with the tenant''s existing DEP public key record identified by id.


        **About DEP Tokens**

        DEP (Apple''s Device Enrollment Program, now part of Apple Business Manager) requires exchanging a public key with Apple and uploading the resulting signed token back to Esper to complete the DEP server token setup. This is a required step before DEP profiles can be used for zero-touch iOS enrollment.


        **Key Fields / Query Parameters**

        - `id` — ID of the DEP public key record this token corresponds to

        - `file` — The .p7m token file downloaded from the ABM console

        - `token_name` — Name to assign to this DEP token


        **Common Use Cases**

        - Completing initial DEP/ABM setup for zero-touch iOS device enrollment

        - Renewing an expiring DEP server token from Apple Business Manager

        - Re-establishing DEP connectivity after a token was revoked or rotated in ABM


        **Best Practices**

        - Download the .p7m file directly from the ABM console for the matching public key — tokens are not interchangeable across public key records

        - Track token expiration and renew proactively in ABM before it lapses, since DEP enrollment stops working once a token expires

        - Give tokens a clear token_name if the tenant manages more than one ABM connection


        **Workflow**

        1. Generate/download the DEP public key from Esper and upload it to Apple Business Manager

        2. Download the resulting .p7m token file from ABM

        3. PUT that file to this endpoint with the corresponding id and a token_name'
      operationId: DEPTokenUpload
      parameters:
      - name: id
        in: path
        description: ID of the token object
        required: true
        schema:
          type: string
          format: UUID
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: .p7m file from abm console
                token_name:
                  type: string
              required:
              - file
              - token_name
      tags:
      - tenant_DEP Tokens
      security:
      - tenant_apiKey: []
      responses:
        '200':
          description: Upload dep token for a public key by id
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                  content:
                    type: object
                    properties:
                      schema:
                        $ref: '#/components/schemas/tenant_DEP_Token_GET'
        '400':
          description: Upload DEP token by id error - Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_400_Bad_Data'
        '401':
          description: Upload DEP token by id error - Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_401_Unauthorized'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_404_Not_Found'
        '500':
          description: Upload DEP token by id error - Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tenant_Error_500_Internal_Server_Error'
components:
  schemas:
    tenant_Error_401_Unauthorized:
      type: object
      properties:
        code:
          type: integer
          format: int32
          default: 401
        message:
          type: string
        content:
          type: object
      required:
      - code
      - message
    tenant_DEP_Token_POST:
      type: object
    tenant_Error_500_Internal_Server_Error:
      type: object
      properties:
        code:
          type: integer
          format: int32
          default: 500
        message:
          type: string
        content:
          type: object
      required:
      - code
      - message
    tenant_Error_404_Not_Found:
      type: object
      properties:
        code:
          type: integer
          format: int32
          default: 404
        message:
          type: string
        content:
          type: object
      required:
      - code
      - message
    tenant_Error_400_Bad_Data:
      type: object
      properties:
        code:
          type: integer
          format: int32
          default: 400
        message:
          type: string
        content:
          type: object
      required:
      - code
      - message
    tenant_DEP_Token_GET:
      type: object
      properties:
        id:
          type: string
          format: UUID
          description: id of DEP token
        token_name:
          type: string
          description: name of DEP Token
        meta:
          type: object
          description: meta information about the DEP token
          properties:
            token_expiry_on:
              type: string
        state:
          type: string
          description: state of DEP token upload
          enum:
          - CSR_GENERATED
          - COMPLETED
        created_by:
          type: string
          description: user id of the user
        updated_by:
          type: string
          description: user id of the user
        created_at:
          type: string
          description: Timestamp of DEP token creation
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of DEP token creation
          readOnly: true
  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
- name: BLUEPRINTS
  tags:
  - blueprints_Blueprints API
  - blueprints_Custom Actions API
  - blueprints_Background Scripts API
- name: PIPELINES
  tags:
  - pipelines_System Status Code
  - pipelines_System
  - pipelines_Pipelines
  - pipelines_Stages
  - pipelines_Target Lists
  - pipelines_Targets
  - pipelines_Device Groups
  - pipelines_Operation Lists
  - pipelines_Operations
  - pipelines_Pipeline Runs
  - pipelines_Stage Runs
  - pipelines_Target Runs
- name: DEVICE
  tags:
  - device_Device
  - device_Device Heartbeat
  - device_Device Apps
  - device_Device Enrollment in EMM
  - device_Operations
  - device_DeviceOperations
  - device_MultiOS Remote Viewer
- name: APPS MANAGEMENT
  tags:
  - apps_management_VPP License Management
  - apps_management_VPP App Management
  - apps_management_Tenant Apps
  - apps_management_Apple App Store
  - apps_management_App List
  - apps_management_Webclips
  - apps_management_Provisioning Profiles
  - apps_management_Preferred Regions
  - apps_management_OEM Config Schema
  - apps_management_Esper Apps
  - apps_management_Tenant Esper Apps
- name: COMMANDS
  tags:
  - commands_Command Request
  - commands_Command Status
- name: DRIFT
  tags:
  - drift_Converge
  - drift_Converge Command
  - drift_Blueprint Drift
- name: DEVICE ONBOARDING
  tags:
  - device_onboarding_DEP Sync Request
  - device_onboarding_ABM Provisioning
- name: TENANT
  tags:
  - tenant_APNs certificate
  - tenant_DEP Profile
  - tenant_DEP Tokens
  - tenant_VPP Token Management
  - tenant_Google Enterprise
  - tenant_MDM Service Config
- name: FOUNDATION
  tags:
  - foundation_FoundryBuilds
  - foundation_FoundryDeviceModels
  - foundation_FoundryEvents
- name: REPORTS
  tags:
  - reports_Reports API
- name: GEOFENCE
  tags:
  - geofence_Geofences


# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/esper/refs/heads/main/openapi/esper-tenant-dep-tokens-api-openapi.yml