swagger: '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 Geofence 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 host: foo-api.esper.cloud basePath: /api schemes: - https tags: - name: Geofence description: APIs for geofence management externalDocs: description: Find out more about Geofence url: https://docs.esper.io/home/console.html#geofence paths: /v0/enterprise/{enterprise_id}/geofence/: get: operationId: getAllGeofences summary: List Geofences in Enterprise description: API to view all the geofences in an enterprise produces: - application/json parameters: - name: enterprise_id in: path description: A UUID string identifying the enterprise. required: true type: string format: uuid - name: search in: query description: A search term. required: false type: string - name: limit in: query description: Number of results to return per page. required: false type: integer - name: offset in: query description: The initial index from which to return the results. required: false type: integer responses: '200': description: successful operation schema: required: - count - results type: object properties: count: type: integer next: type: string format: url x-nullable: true previous: type: string format: url x-nullable: true results: type: array items: $ref: '#/definitions/Geofence' security: - apiKey: [] tags: - Geofence post: operationId: createGeofence summary: Create a geofence description: Returns Geofence instance produces: - application/json parameters: - name: data in: body required: true schema: $ref: '#/definitions/Geofence' - name: enterprise_id in: path description: A UUID string identifying the enterprise. required: true type: string format: uuid responses: '201': description: successful operation schema: $ref: '#/definitions/Geofence' security: - apiKey: [] tags: - Geofence /v0/enterprise/{enterprise_id}/geofence/{geofence_id}/: parameters: - name: geofence_id in: path description: A UUID string identifying the geofence. required: true type: string format: uuid - name: enterprise_id description: A UUID string identifying the enterprise. in: path required: true type: string format: uuid get: operationId: getGeofence summary: Get geofence information description: Returns geofence instance produces: - application/json parameters: [] responses: '200': description: successful operation schema: $ref: '#/definitions/Geofence' security: - apiKey: [] tags: - Geofence put: operationId: updateGeofence summary: Update geofence information description: Returns geofence instance produces: - application/json parameters: - name: data in: body required: true schema: $ref: '#/definitions/Geofence' responses: '200': description: successful operation schema: $ref: '#/definitions/Geofence' security: - apiKey: [] tags: - Geofence patch: operationId: partialUpdateGeofence summary: Partially updates geofence information description: Returns geofence instance produces: - application/json parameters: - name: data in: body required: true schema: $ref: '#/definitions/GeofenceUpdate' responses: '200': description: successful operation schema: $ref: '#/definitions/Geofence' security: - apiKey: [] tags: - Geofence delete: operationId: deleteGeofence summary: Delete a geofence description: Empty response produces: - application/json parameters: [] responses: '204': description: successful operation security: - apiKey: [] tags: - Geofence definitions: Geofence: required: - name - latitude - longitude type: object properties: id: title: Geofence id description: id of the geofence type: string format: uuid readOnly: true name: title: Geofence name description: Name of the geofence type: string description: title: Geofence description description: A description about the geofence type: string enterprise: title: Enterprise id description: id of the enterprise resource type: string format: uuid readOnly: true latitude: title: Geofence latitude description: Latitude corresponding to the geofence type: string format: decimal longitude: title: Geofence longitude description: Longitude corresponding to the geofence type: string format: decimal radius: title: Geofence radius description: The radius within which the geofence should be applied type: integer radius_unit: title: Unit of radius description: The unit in which the radius is taken, eg - kilometers, meters etc type: string enum: - KILOMETERS - METERS - MILES device_actions: title: Device Actions description: The actions to be performed on the device type: array items: type: string enum: - LOCK_DOWN - BEEP device_count: title: Device count description: Number of devices type: integer readOnly: true created_by: title: Created by description: The user who created the geofence type: string readOnly: true created_on: title: Creation date and time description: Date and time of when the geofence was created type: string format: date-time readOnly: true updated_on: title: Updation date and time description: Date and time of when the geofence was updated type: string format: date-time readOnly: true GeofenceUpdate: type: object properties: name: title: Geofence name description: Name of the geofence type: string description: title: Geofence description description: A description about the geofence type: string latitude: title: Geofence latitude description: Latitude corresponding to the geofence type: string format: decimal longitude: title: Geofence longitude description: Longitude corresponding to the geofence type: string format: decimal radius: title: Geofence radius description: The radius within which the geofence should be applied type: integer radius_unit: title: Unit of radius description: The unit in which the radius is taken, eg - kilometers, meters etc type: string enum: - KILOMETERS - METERS - MILES device_actions: title: Device Actions description: The actions to be performed on the device type: array items: type: string enum: - LOCK_DOWN - BEEP securityDefinitions: 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 `-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://-api.esper.cloud/api/enterprise//device/ \\\n -H 'Authorization: Bearer ' \\\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