Esper Application V1 API

APIs for application management

Business capability
IT Application Management BC-600.60

Operations 7

GET /v1/enterprise/{enterprise_id}/application/ List apps in enterprise #
GET /v1/enterprise/{enterprise_id}/application/{application_id}/ Get application information #
DELETE /v1/enterprise/{enterprise_id}/application/{application_id}/ Delete an application #
GET /v1/enterprise/{enterprise_id}/application/{application_id}/version/ List App versions #
GET /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/ Get app version information #
DELETE /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/ Delete app version #
PATCH /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/ Patch an App version instance #

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-application-v1-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

esper-application-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: "# Introduction\nEsper APIs are a set of REST-based APIs that help you programmatically control and monitor Android-based Dedicated Devices running the Esper agent using Esper Manage. With these APIs, you can orchestrate and manage devices that have been provisioned against your Esper Manage environment. Furthermore, these APIs allows you to manage the Android applications installed on your Dedicated Device fleet. To read more about the various capabilities of Esper APIs and Esper managed devices, please visit [esper.io](https://esper.io). This guide describes all the available APIs in detail, along with code samples for you to quickly ramp up to using them.\\\nTo use these APIs you will need to create a developer account with Esper and get access to the Esper Dev Console and the Esper ManageDashboard. You can find out more about Esper and sign up for free at [esper.io/signup](https://esper.io/signup)\\\nWe've done our best to keep this document up to date, but if you find any issues, please reach out to us at developer@esper.io.\n\n# SDK\n\n  You are welcome to use your favorite HTTP/REST library for your programming language in order to call these APIs, or you can use our SDK (currently supporting [python](https://github.com/esper-io/esper-client-py)) to do so.\n\n\n# Authentication\nThe client needs to send authentication details to access the Esper APIs by generating and applying an API key. Be sure to sign up for your free trial account with Esper Dev to generate your key:\n\n# Errors\nThe APIs use standard HTTP status codes to indicate success or failure. All error responses will have a JSON body in the following format:\n\n```\n{\n  \"errors\": [],\n  \"message\": \"error message\",\n  \"status\": 400\n}\n```\n* `errors` -  List of error details\n* `message` - Error description\n* `status` - HTTP status code\n"
  version: 1.0.0
  title: ESPER API REFERENCE Application Application V1 API
  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
servers:
- url: https://foo-api.esper.cloud/api
tags:
- name: Application V1
  description: APIs for application management
paths:
  /v1/enterprise/{enterprise_id}/application/:
    parameters:
    - name: enterprise_id
      description: A UUID string identifying this enterprise.
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getAllApplicationsV1
      summary: List apps in enterprise
      description: Returns Application list
      parameters:
      - name: application_name
        in: query
        description: filter by application name
        required: false
        schema:
          type: string
      - name: package_name
        in: query
        description: filter by package name
        required: false
        schema:
          type: string
      - name: package_name_exact
        in: query
        description: filter by package name (exact match)
        required: false
        schema:
          type: string
      - name: has_uploaded_version
        in: query
        description: Returns applications having atleast on version uploaded
        required: false
        schema:
          type: boolean
      - name: category
        in: query
        description: filter by category
        required: false
        schema:
          type: string
      - name: supported_sdk
        in: query
        description: filter by supported sdk versions
        required: false
        schema:
          type: integer
      - name: is_active
        in: query
        description: filter by active applications
        required: false
        schema:
          type: boolean
      - name: is_hidden
        in: query
        description: filter default esper apps
        required: false
        schema:
          type: boolean
          default: false
      - name: created_on_gt
        in: query
        description: filter applications created after a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: created_on_lt
        in: query
        description: filter applications created before a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: updated_on_gt
        in: query
        description: filter applications updated after a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: updated_on_lt
        in: query
        description: filter applications updated before a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
          default: 20
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: url
                  previous:
                    type:
                    - string
                    - 'null'
                    format: url
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApplicationV1'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
  /v1/enterprise/{enterprise_id}/application/{application_id}/:
    parameters:
    - name: application_id
      in: path
      description: A UUID string identifying this application.
      required: true
      schema:
        type: string
        format: uuid
    - name: enterprise_id
      description: A UUID string identifying enterprise.
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getApplicationv1
      summary: Get application information
      description: Returns Application instance
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationV1'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
    delete:
      operationId: deleteApplicationV1
      summary: Delete an application
      description: Empty response
      responses:
        '204':
          description: The resource was deleted successfully.
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden, no permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
  /v1/enterprise/{enterprise_id}/application/{application_id}/version/:
    parameters:
    - name: application_id
      in: path
      description: A UUID string identifying this application.
      required: true
      schema:
        type: string
        format: uuid
    - name: enterprise_id
      description: A UUID string identifying enterprise.
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getAppVersionsV1
      summary: List App versions
      description: Returns AppVersion list
      parameters:
      - name: version_code
        in: query
        description: filter by version code
        required: false
        schema:
          type: string
      - name: build_number
        in: query
        description: filter by build number
        required: false
        schema:
          type: string
      - name: is_g_play
        in: query
        description: filter google play applications
        required: false
        schema:
          type: boolean
      - name: approval_status
        in: query
        description: filter by approval status
        required: false
        schema:
          type: string
          enum:
          - AVAILABLE
          - ACCEPTED
          - APPROVED
          - REJECTED
      - name: is_enabled
        in: query
        description: filter by enabled versions
        required: false
        schema:
          type: boolean
      - name: is_default
        in: query
        description: filter by default versions
        required: false
        schema:
          type: boolean
      - name: created_on_gt
        in: query
        description: filter applications created after a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: created_on_lt
        in: query
        description: filter applications created before a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: updated_on_gt
        in: query
        description: filter applications updated after a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: updated_on_lt
        in: query
        description: filter applications updated before a given timestamp
        required: false
        schema:
          type: string
          format: datetime
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
          default: 0
      - name: ordering
        in: query
        description: 'Order result set by field name.


          ```

          * installed_count: order by asc

          * -installed_count: order by desc

          ```

          '
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                required:
                - count
                - results
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type:
                    - string
                    - 'null'
                    format: url
                  previous:
                    type:
                    - string
                    - 'null'
                    format: url
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppVersionV1'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
  /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/:
    parameters:
    - name: version_id
      in: path
      description: A UUID string identifying this app version.
      required: true
      schema:
        type: string
        format: uuid
    - name: application_id
      in: path
      description: A UUID string identifying this application.
      required: true
      schema:
        type: string
        format: uuid
    - name: enterprise_id
      description: A UUID string identifying enterprise.
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getAppVersionV1
      summary: Get app version information
      description: Returns AppVersion instance
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppVersionV1'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
    delete:
      operationId: deleteAppVersionV1
      summary: Delete app version
      description: Empty response
      parameters:
      - name: request_id
        in: query
        description: If this value exists in cache, delete the application and cache entry.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: No request id is provided and the application is linked to one or more templates. Returns a request_id. Call with this request id to delete the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppVersionDelete'
        '204':
          description: The resource was deleted successfully.
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden, no permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
    patch:
      operationId: patchAppVersionV1
      summary: Patch an App version instance
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppVersionV1'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authorization information is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden, no permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - apiKey: []
      tags:
      - Application V1
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                release_name:
                  title: Release name
                  description: Name of the Release
                  type: string
                is_default:
                  title: Is Default
                  description: Is the app version the deafult
                  type: boolean
                min_sdk_version:
                  title: Minimum SDK version
                  description: Version number of minimum SDK version that supports this app version
                  type: string
                build_number:
                  title: Build Number
                  description: Build number of this app version
                  type: string
                version_code:
                  title: Version Code
                  description: Verion code of this app version
                  type: string
                approval_status:
                  title: Approval Status
                  description: Approval status of this app version
                  type: string
                  enum:
                  - AVAILABLE
                  - ACCEPTED
                  - APPROVED
                  - REJECTED
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        errors:
          title: Messages describing the error
          type: array
          items:
            type: string
        message:
          title: Message describing the error
          type: string
        status:
          title: alias name
          type: integer
    AppVersionDelete:
      type: object
      properties:
        request_id:
          title: Request id
          type: string
          format: uuid
        templates:
          description: List of linked templates to an app version
          type: array
          items:
            type: object
            properties:
              id:
                title: Id
                description: Id of the linked template
                type: integer
              name:
                title: Name
                description: Name of the linked template
                type: string
    ApplicationV1:
      required:
      - application_name
      - package_name
      - enterprise
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
          readOnly: true
        latest_version:
          $ref: '#/components/schemas/ApplicationVersionV1'
        application_name:
          title: Application name
          type: string
          maxLength: 255
          minLength: 1
        package_name:
          title: Package name
          type: string
          maxLength: 255
          minLength: 1
          readOnly: true
        is_hidden:
          title: Is hidden
          type: boolean
        enterprise:
          title: Enterprise
          type: string
          format: url
    AppVersionV1:
      title: Application Version V1
      required:
      - version_code
      - enterprise
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
          readOnly: true
        installed_count:
          title: Installed count
          type: integer
          readOnly: true
        is_g_play:
          title: Is google play
          type: boolean
        app_file:
          title: App file url
          type:
          - string
          - 'null'
          format: url
        app_icon:
          title: App icon url
          type:
          - string
          - 'null'
          format: url
        version_code:
          title: Version code
          type:
          - string
          - 'null'
          maxLength: 50
          minLength: 1
        build_number:
          title: Build number
          type:
          - string
          - 'null'
          maxLength: 100
          minLength: 1
        min_sdk_version:
          title: Minimum sdk version
          type:
          - string
          - 'null'
          maxLength: 10
          minLength: 1
        enterprise:
          title: Enterprise URL
          type: string
          format: url
        application:
          title: Application URL
          type: string
          format: url
        release_name:
          title: Name of the release
          type:
          - string
          - 'null'
          maxLength: 255
        release_comments:
          title: Release comments
          type:
          - string
          - 'null'
        approval_status:
          title: Approval Status
          type: string
          maxLength: 50
          enum:
          - AVAILABLE
          - ACCEPTED
          - APPROVED
          - REJECTED
          default: APPROVED
        release_date:
          title: Release date
          type: string
          format: date-time
        size_in_mb:
          title: Size in mb
          type: number
          default: 0
        is_default:
          title: Is default
          type: boolean
          default: false
        created_on:
          title: Created on
          type: string
          format: date-time
          readOnly: true
    ApplicationVersionV1:
      title: Application Version V1
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
          readOnly: true
        version_code:
          title: Version code
          type: string
          maxLength: 50
          minLength: 1
        build_number:
          title: Build number
          type:
          - string
          - 'null'
          maxLength: 100
          minLength: 1
        hash_string:
          title: Hash string
          type: string
        min_sdk_version:
          title: Min sdk version
          type:
          - string
          - 'null'
          maxLength: 10
          minLength: 1
        target_sdk_version:
          title: Target sdk version
          type:
          - string
          - 'null'
          maxLength: 10
          minLength: 1
        icon_url:
          title: Url for the icon
          type: string
          format: url
        release_name:
          title: Name of the release
          type: string
  securitySchemes:
    apiKey:
      description: "#### API KEY - Access Token\nAccess token for APIs passed as authorization header in calls. You need to generate this from your Esper Dev 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 Dev account. Please follow the instructions [here](https://docs.esper.io/home/module/genapikey.html) 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 scheme [here](https://console-docs.esper.io/API/generate.html).\n"
      name: Authorization
      type: apiKey
      in: header
x-tagGroups:
- name: API Reference
  tags:
  - Enterprise
  - Application
  - Application V1
  - Device
  - Device Group
  - Commands
  - Group Commands
  - Token
  - Commands V2
  - Enterprise Policy
  - Geofence
  - Reports
  - Subscription
  - Content