Esper Group Commands API

APIs to run group commands. Command will be run on all the active devices in a group

Operations 2

POST /enterprise/{enterprise_id}/devicegroup/{group_id}/command/ Run commands on group devices #
GET /enterprise/{enterprise_id}/devicegroup/{group_id}/command/{command_id}/ Get group command status #

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-group-commands-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-group-commands-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 Group Commands 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: Group Commands
  description: APIs to run group commands. Command will be run on all the active devices in a group
  externalDocs:
    description: Find out more in `Actions` of group commands
    url: https://docs.esper.io/home/console.html#groups
paths:
  /enterprise/{enterprise_id}/devicegroup/{group_id}/command/:
    parameters:
    - name: enterprise_id
      in: path
      description: ID of the enterprise
      required: true
      schema:
        type: string
        format: uuid
    - name: group_id
      in: path
      description: ID of the group
      required: true
      schema:
        type: string
        format: uuid
    post:
      summary: Run commands on group devices
      description: Fire commands on all the group devices. Deprecated in favour of commands V2.
      deprecated: true
      operationId: runGroupCommand
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupCommand'
      security:
      - apiKey: []
      tags:
      - Group Commands
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupCommandRequest'
        description: Group command request
        required: true
  /enterprise/{enterprise_id}/devicegroup/{group_id}/command/{command_id}/:
    parameters:
    - name: command_id
      in: path
      description: A UUID string identifying this device command.
      required: true
      schema:
        type: string
        format: uuid
    - name: group_id
      in: path
      description: A UUID string identifying this group.
      required: true
      schema:
        type: string
        format: uuid
    - name: enterprise_id
      description: A UUID string identifying enterprise.
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      operationId: getGroupCommand
      summary: Get group command status
      description: Returns GroupCommand instance. Deprecated in favour of commands V2.
      deprecated: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupCommand'
      security:
      - apiKey: []
      tags:
      - Group Commands
components:
  schemas:
    GroupCommand:
      required:
      - command
      - enterprise
      - group
      type: object
      properties:
        id:
          title: Id
          type: string
          format: uuid
          readOnly: true
        schedule:
          title: Schedule
          type: string
        command:
          $ref: '#/components/schemas/GroupCommandEnum'
        command_args:
          $ref: '#/components/schemas/GroupCommandArgs'
        state:
          title: State
          type: string
          enum:
          - Command Initiated
          - Command Success
          - Command Failure
          - Command Scheduled
        details:
          title: Details
          type:
          - string
          - 'null'
        created_on:
          title: Created on
          type: string
          format: date-time
          readOnly: true
        updated_on:
          title: Updated on
          type: string
          format: date-time
          readOnly: true
        is_active:
          title: Is active
          type: boolean
        enterprise:
          title: Enterprise
          type: string
          format: url
        group:
          title: Group
          type: string
          format: url
        issued_by:
          title: Issued by
          type:
          - string
          - 'null'
          format: uri
    GroupCommandEnum:
      type: string
      description: 'Group Command Options


        ```

        * REBOOT: Reboot device

        * LOCK:  Lock device screen

        * INSTALL:  Install an app on device

        * UPDATE_HEARTBEAT: Ping Device

        ```

        '
      enum:
      - REBOOT
      - LOCK
      - INSTALL
      - UPDATE_HEARTBEAT
    GroupCommandRequest:
      required:
      - command
      type: object
      properties:
        command_args:
          $ref: '#/components/schemas/GroupCommandArgs'
        command:
          $ref: '#/components/schemas/GroupCommandEnum'
    GroupCommandArgs:
      title: Command args
      type: object
      properties:
        app_version:
          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