# ESPER API REFERENCE # 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](https://help.esper.io/hc/en-us/articles/14199291792145-Getting-Started-with-APIs) * [Commonly used API examples](https://help.esper.io/hc/en-us/articles/16036992814609-Commonly-Used-APIs) * [API command examples](https://help.esper.io/hc/en-us/articles/16693582666769-Scheduling-API-Commands) * [Automated Script examples](https://help.esper.io/hc/en-us/articles/22957898441745-Automating-App-Updates-Using-the-API) * [And more](https://help.esper.io/hc/en-us/sections/11388094627857-API) # 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. # 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](https://status.esper.cloud/). # 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. Version: 1.0.0 License: Apache 2.0 ## Servers ``` https://{foo}-api.esper.cloud/api ``` Variables: - `foo`: Custom end point Default: "develop" ## Security ### apiKey #### API KEY - Access Token Access token for API is passed as authorization header in calls. You need to generate this from your Esper 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 account. Please follow the instructions [in this Help article](https://help.esper.io/hc/en-us/articles/12656959508497) to generate an access token. Once you have the access token, you need to send an authorization header as below ```bash curl -X GET \ https://-api.esper.cloud/api/enterprise//device/ \ -H 'Authorization: Bearer ' \ -H 'Content-Type: application/json' \ ``` > Please note the use of keyword **Bearer** before the token value. You can read more about api key authentication [here](https://help.esper.io/hc/en-us/articles/12656959508497). Type: http Scheme: bearer ### SCAPIAuthToken Type: http Scheme: bearer ### AuthToken Type: apiKey In: header Name: Authorization ### bearerAuth Type: http Scheme: bearer ## Download OpenAPI description [ESPER API REFERENCE](https://develop-api.esper.io/_bundle/openapi.yaml) ## Company Settings The Company Settings API manage the account information set up for your organization. Formerly known as Enterprise Information.  ### Get your company settings - [GET /v1/enterprise/{enterprise_id}/](https://develop-api.esper.io/openapi/company-settings/getenterprise.md): Returns company settings. Formerly known as get your enterprise information. ### Partially update company settings - [PATCH /v1/enterprise/{enterprise_id}/](https://develop-api.esper.io/openapi/company-settings/partialupdateenterprise.md): Returns updated company settings. Formerly known as partial update enterprise information. ## Application APIs for application management ### List apps in enterprise - [GET /enterprise/{enterprise_id}/application/](https://develop-api.esper.io/openapi/application/getallapplications.md): Returns Application list ### Get application information - [GET /enterprise/{enterprise_id}/application/{application_id}/](https://develop-api.esper.io/openapi/application/getapplication.md): Returns Application instance ### Delete an application - [DELETE /enterprise/{enterprise_id}/application/{application_id}/](https://develop-api.esper.io/openapi/application/deleteapplication.md): Empty response ### List App versions - [GET /enterprise/{enterprise_id}/application/{application_id}/version/](https://develop-api.esper.io/openapi/application/getappversions.md): Returns AppVersion list ### Get app version information - [GET /enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/](https://develop-api.esper.io/openapi/application/getappversion.md): Returns AppVersion instance ### Delete app version - [DELETE /enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/](https://develop-api.esper.io/openapi/application/deleteappversion.md): Empty response ### Patch an App version instance - [PATCH /enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/](https://develop-api.esper.io/openapi/application/patchappversion.md) ### List install devices - [GET /enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/installdevices](https://develop-api.esper.io/openapi/application/getinstalldevices.md): Returns list of devices with the specified app version installed ### Upload an application to enterprise - [POST /enterprise/{enterprise_id}/application/upload/](https://develop-api.esper.io/openapi/application/upload.md): Returns application ### List Google enterprises - [GET /v0/enterprise/{enterprise_id}/emm](https://develop-api.esper.io/openapi/application/getemminstances.md): Returns enterprise instances ### Get Google enterprise information - [GET /v0/enterprise/{enterprise_id}/emm/{emm_id}](https://develop-api.esper.io/openapi/application/getemminstance.md): Returns enterprise instance ### List webtokens - [GET /v0/enterprise/{enterprise_id}/emm/{emm_id}/webtoken/](https://develop-api.esper.io/openapi/application/getwebtokens.md): Returns list of webtokens ### Creates a webtoken instance - [POST /v0/enterprise/{enterprise_id}/emm/{emm_id}/webtoken/](https://develop-api.esper.io/openapi/application/createwebtoken.md): Returns webtoken instance ### Get webtoken instance - [GET /v0/enterprise/{enterprise_id}/emm/{emm_id}/webtoken/{webtoken_id}](https://develop-api.esper.io/openapi/application/getwebtokeninstance.md): Returns webtoken instance ### Updates webtoken instance - [PUT /v0/enterprise/{enterprise_id}/emm/{emm_id}/webtoken/{webtoken_id}](https://develop-api.esper.io/openapi/application/updatewebtokeninstance.md): Returns webtoken instance ### Patches webtoken instance - [PATCH /v0/enterprise/{enterprise_id}/emm/{emm_id}/webtoken/{webtoken_id}](https://develop-api.esper.io/openapi/application/patchwebtokeninstance.md): Returns webtoken instance ### Deletes a webtoken instance - [DELETE /v0/enterprise/{enterprise_id}/emm/{emm_id}/webtoken/{webtoken_id}](https://develop-api.esper.io/openapi/application/deletewebtokeninstance.md): Empty response ### List Google Play applications - [GET /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/](https://develop-api.esper.io/openapi/application/getgoogleapps.md): Returns list of Google Play applications ### Post a Google play application - [POST /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/](https://develop-api.esper.io/openapi/application/addgoogleapp.md): Returns instance of Google application ### Get application information - [GET /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/{product_id}](https://develop-api.esper.io/openapi/application/getappinfo.md): Returns application instance ### Update application instance - [PUT /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/{product_id}](https://develop-api.esper.io/openapi/application/updateappinfo.md): Returns application instance ### Patch application instance - [PATCH /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/{product_id}](https://develop-api.esper.io/openapi/application/patchappinfo.md): Returns application instance ### Delete application instance - [DELETE /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/{product_id}](https://develop-api.esper.io/openapi/application/deleteappinstance.md): Empty response ### List product installations - [GET /v0/enterprise/{enterprise_id}/emm/{emm_id}/product/{product_id}/install/](https://develop-api.esper.io/openapi/application/listproducts.md): Returns list of product installations ### Gets minimum information regarding application - [GET /v1/enterprise/{enterprise_id}/applications-minimal/](https://develop-api.esper.io/openapi/application/getminappinfo.md): Returns id and package name of application ## Application V1 APIs for application management ### List apps in enterprise - [GET /v1/enterprise/{enterprise_id}/application/](https://develop-api.esper.io/openapi/application-v1/getallapplicationsv1.md): Returns Application list ### Get application information - [GET /v1/enterprise/{enterprise_id}/application/{application_id}/](https://develop-api.esper.io/openapi/application-v1/getapplicationv1.md): Returns Application instance ### Delete an application - [DELETE /v1/enterprise/{enterprise_id}/application/{application_id}/](https://develop-api.esper.io/openapi/application-v1/deleteapplicationv1.md): Empty response ### List App versions - [GET /v1/enterprise/{enterprise_id}/application/{application_id}/version/](https://develop-api.esper.io/openapi/application-v1/getappversionsv1.md): Returns AppVersion list ### Get app version information - [GET /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/](https://develop-api.esper.io/openapi/application-v1/getappversionv1.md): Returns AppVersion instance ### Delete app version - [DELETE /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/](https://develop-api.esper.io/openapi/application-v1/deleteappversionv1.md): Empty response ### Patch an App version instance - [PATCH /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/](https://develop-api.esper.io/openapi/application-v1/patchappversionv1.md) ### List install devices - [GET /v1/enterprise/{enterprise_id}/application/{application_id}/version/{version_id}/installdevices](https://develop-api.esper.io/openapi/application-v1/getinstalldevicesv1.md): Returns list of devices with the specified app version installed ## AndroidDevice APIs for android device management ### Fetch all devices in an enterprise - [GET /enterprise/{enterprise_id}/device/](https://develop-api.esper.io/openapi/androiddevice/getalldevices.md): Returns a list of devices ### Fetch device details by ID - [GET /enterprise/{enterprise_id}/device/{device_id}/](https://develop-api.esper.io/openapi/androiddevice/getdevicebyid.md): Returns details of a device ### List all device apps - [GET /enterprise/{enterprise_id}/device/{device_id}/app/](https://develop-api.esper.io/openapi/androiddevice/getdeviceapps.md): Returns DeviceApp list ### Get device app details - [GET /enterprise/{enterprise_id}/device/{device_id}/app/{app_id}/](https://develop-api.esper.io/openapi/androiddevice/getdeviceappbyid.md): Returns DeviceApp instance ### List installed apps - [GET /enterprise/{enterprise_id}/device/{device_id}/install/](https://develop-api.esper.io/openapi/androiddevice/getappinstalls.md): Returns AppInstall list ### Get latest device event - [GET /enterprise/{enterprise_id}/device/{device_id}/status/](https://develop-api.esper.io/openapi/androiddevice/getdeviceevent.md): Returns DeviceStatus instance ### Download Event Feed for Device - [GET /enterprise/{enterprise_id}/device/{device_id}/download/eventfeed/](https://develop-api.esper.io/openapi/androiddevice/paths/~1enterprise~1%7Benterprise_id%7D~1device~1%7Bdevice_id%7D~1download~1eventfeed~1/get.md): Download Event Feed for device, ordered by date the event was created on ### Download Event Feed for Group - [GET /enterprise/{enterprise_id}/group/{group_id}/download/eventfeed/](https://develop-api.esper.io/openapi/androiddevice/paths/~1enterprise~1%7Benterprise_id%7D~1group~1%7Bgroup_id%7D~1download~1eventfeed~1/get.md): Download Event Feed for group, ordered by date the event was created on ### Lists event feed for device - [GET /v1/enterprise/{enterprise_id}/device/{device_id}/report/eventfeed/](https://develop-api.esper.io/openapi/androiddevice/geteventfeed.md): Returns event feed for device, ordered by date the event was created on ## Device Group APIs for device group management ### List device groups - [GET /enterprise/{enterprise_id}/devicegroup/](https://develop-api.esper.io/openapi/device-group/getallgroups.md): Get a list of groups in the Devices & Groups. ### Create a device group - [POST /enterprise/{enterprise_id}/devicegroup/](https://develop-api.esper.io/openapi/device-group/creategroup.md): Create a group in Devices & Groups. ### Get device group information - [GET /enterprise/{enterprise_id}/devicegroup/{group_id}/](https://develop-api.esper.io/openapi/device-group/getgroupbyid.md): Find a group by its ID. Use List groups to find a group’s ID in Devices & Groups. ### Update device group - [PUT /enterprise/{enterprise_id}/devicegroup/{group_id}/](https://develop-api.esper.io/openapi/device-group/updategroup.md): Update a group in Devices & Groups. ### Delete a device group - [DELETE /enterprise/{enterprise_id}/devicegroup/{group_id}/](https://develop-api.esper.io/openapi/device-group/deletegroup.md): Delete a group from Devices & Groups. ### Partially update a device group - [PATCH /enterprise/{enterprise_id}/devicegroup/{group_id}/](https://develop-api.esper.io/openapi/device-group/partialupdategroup.md): Partially update a group in Devices & Groups. ### Upload a thumbnail pic - [POST /enterprise/{enterprise_id}/devicegroup/thumbnail/](https://develop-api.esper.io/openapi/device-group/uploadgroupthumbnail.md): Upload an image to represent the group in Devices & Groups. ### List thumbnail pics - [GET /enterprise/{enterprise_id}/devicegroup/thumbnail/](https://develop-api.esper.io/openapi/device-group/listgroupthumbnail.md): Get a list of group thumbnail image files in Devices & Groups. ### Get thumbnail detail - [GET /enterprise/{enterprise_id}/devicegroup/thumbnail/{thumbnail_id}/](https://develop-api.esper.io/openapi/device-group/getgroupthumbnail.md): Get a thumbnail by its ID. Use List thumbnail pics to find thumbnail IDs. ### Delete group thumbnail - [DELETE /enterprise/{enterprise_id}/devicegroup/thumbnail/{thumbnail_id}/](https://develop-api.esper.io/openapi/device-group/deletegroupthumbnail.md): Delete a thumbnail in Devices & Groups. ### List the subgroups of list of groups - [GET /api/v2/subgroups/](https://develop-api.esper.io/openapi/device-group/getallsubgroups.md): Returns EnterpriseDeviceGroup list ## Token (Deprecated) ⚠️ **Deprecation Notice:** The following APIs will soon be deprecated. Use the console to manage API keys instead. ### Renew Token - [POST /v0/enterprise/{enterprise_id}/developerapp/{developerapp_id}/renew-token/](https://develop-api.esper.io/openapi/token-(deprecated)/renewtoken.md): API to renew your token ### Token Information - [GET /v1/token-info/](https://develop-api.esper.io/openapi/token-(deprecated)/gettokeninfo.md): API to get resource information associated with your token like your enterprise, user etc ## Commands V2 Commands V2.0 provides advanced device commands capabilities like queuing, support for offline devices, dynamic device set for commands and command history. Commands 2.0 is in active development and we will add support for all the commands soon ### List command requests - [GET /v0/enterprise/{enterprise_id}/command/](https://develop-api.esper.io/openapi/commands-v2/listcommandrequest.md): API to get and filter command requests ### Create a command request - [POST /v0/enterprise/{enterprise_id}/command/](https://develop-api.esper.io/openapi/commands-v2/createcommand.md): API to create a command request for the device. ### get status list for command request - [GET /v0/enterprise/{enterprise_id}/command/{request_id}/status/](https://develop-api.esper.io/openapi/commands-v2/getcommandrequeststatus.md): API to get and filter command request status ### get command history for device - [GET /v0/enterprise/{enterprise_id}/device/{device_id}/command-history/](https://develop-api.esper.io/openapi/commands-v2/getdevicecommandhistory.md): API to get and filter deivce command history ## Enterprise Policy APIs to Esper Compliance Policy ### List all policies in enterprise - [GET /enterprise/{enterprise_id}/policy/](https://develop-api.esper.io/openapi/enterprise-policy/listpolicies.md): Returns Policies list ### Create a new Enterprise Policy - [POST /enterprise/{enterprise_id}/policy/](https://develop-api.esper.io/openapi/enterprise-policy/createpolicy.md): API to create a new Enterprise Policy ### Get Enterprise Policy - [GET /enterprise/{enterprise_id}/policy/{policy_id}/](https://develop-api.esper.io/openapi/enterprise-policy/getpolicybyid.md): Returns EnterprisePolicy instance ### Update Enterprise Policy - [PUT /enterprise/{enterprise_id}/policy/{policy_id}/](https://develop-api.esper.io/openapi/enterprise-policy/updatepolicy.md): Returns Enterprise Policy instance ### Delete a Enterprise Policy - [DELETE /enterprise/{enterprise_id}/policy/{policy_id}/](https://develop-api.esper.io/openapi/enterprise-policy/deleteenterprisepolicy.md): Emtpy response ### Partial update EnterprisePolicy - [PATCH /enterprise/{enterprise_id}/policy/{policy_id}/](https://develop-api.esper.io/openapi/enterprise-policy/partialupdatepolicy.md): Returns EnterprisePolicy instance ## Geofence APIs for geofence management ### List Geofences in Enterprise - [GET /v0/enterprise/{enterprise_id}/geofence/](https://develop-api.esper.io/openapi/geofence/getallgeofences.md): API to view all the geofences in an enterprise ### Get geofence information - [GET /v0/enterprise/{enterprise_id}/geofence/{geofence_id}/](https://develop-api.esper.io/openapi/geofence/getgeofence.md): Returns geofence instance ### Update geofence information - [PUT /v0/enterprise/{enterprise_id}/geofence/{geofence_id}/](https://develop-api.esper.io/openapi/geofence/updategeofence.md): Returns geofence instance ### Delete a geofence - [DELETE /v0/enterprise/{enterprise_id}/geofence/{geofence_id}/](https://develop-api.esper.io/openapi/geofence/deletegeofence.md): Empty response ### Partially updates geofence information - [PATCH /v0/enterprise/{enterprise_id}/geofence/{geofence_id}/](https://develop-api.esper.io/openapi/geofence/partialupdategeofence.md): Returns geofence instance ### Create a geofence - [POST /v0/enterprise/{enterprise_id}/create-apply-geo-fence/](https://develop-api.esper.io/openapi/geofence/creategeofence.md): Returns Geofence instance ### List Geofences in Enterprise - [GET /v0/enterprise/{enterprise_id}/create-apply-geo-fence/](https://develop-api.esper.io/openapi/geofence/getgeofencelist.md): API to view all the geofences in an enterprise ### Get geofence information - [GET /v0/enterprise/{enterprise_id}/create-apply-geofence/{geofence_id}/](https://develop-api.esper.io/openapi/geofence/getthegeofence.md): Returns geofence instance ### Delete a geofence - [DELETE /v0/enterprise/{enterprise_id}/create-apply-geofence/{geofence_id}/](https://develop-api.esper.io/openapi/geofence/deletethegeofence.md): Empty response ## Content APIs to manage files ### List content - [GET /v0/enterprise/{enterprise_id}/content/](https://develop-api.esper.io/openapi/content/getallcontent.md): Get all files in a tenant ### Get content information - [GET /v0/enterprise/{enterprise_id}/content/{content_id}/](https://develop-api.esper.io/openapi/content/getcontent.md): Get information about a file ### Delete Content - [DELETE /v0/enterprise/{enterprise_id}/content/{content_id}/](https://develop-api.esper.io/openapi/content/deletecontent.md): Delete content. ### Patch a content instance - [PATCH /v0/enterprise/{enterprise_id}/content/{content_id}/](https://develop-api.esper.io/openapi/content/patchcontent.md) ### Upload new content - [POST /v0/enterprise/{enterprise_id}/content/upload/](https://develop-api.esper.io/openapi/content/postcontent.md): Uploaded content to Esper ### Upload file to Remote File Manager - [POST /v0/enterprise/{enterprise_id}/content/remote-file/](https://develop-api.esper.io/openapi/content/uploadremotefile.md): Upload file through SCAPI server to REMOTE_FILE_MANAGER bucket. Files are automatically deleted after 1 day. ### Generate download URL for existing file - [POST /v0/enterprise/{enterprise_id}/content/remote-file/generate_download_url/](https://develop-api.esper.io/openapi/content/generatedownloadurl.md): Generate a pre-signed download URL for an existing file in REMOTE_FILE_MANAGER bucket ## User (Deprecated) ⚠️ **Deprecation Notice:** The following APIs will soon be deprecated. Please transition to the User APIs. ### Create a new User - [POST /user/](https://develop-api.esper.io/openapi/user-(deprecated)/createuser.md): Create a new User ### Update a User - [PUT /user/{user_id}/](https://develop-api.esper.io/openapi/user-(deprecated)/updateuser.md): Update a User ### Partial update a User - [PATCH /user/{user_id}/](https://develop-api.esper.io/openapi/user-(deprecated)/partialupdateuser.md): Partial update a User ### Delete a user - [DELETE /user/{user_id}/](https://develop-api.esper.io/openapi/user-(deprecated)/userdelete.md) ## User APIs for User Management ### User information - [GET /user_info/](https://develop-api.esper.io/openapi/user/userinfo.md): User information ### Invite a user - [POST /authn2/v0/tenant/{enterprise_id}/invite](https://develop-api.esper.io/openapi/user/tenantuserinvite.md): Invite a user to a tenant ### List user invites - [GET /authn2/v0/tenant/{enterprise_id}/invite](https://develop-api.esper.io/openapi/user/gettenantuserinvites.md): List user invites in a tenant ### Delete a invite - [DELETE /authn2/v0/tenant/{enterprise_id}/invite/{invite_id}](https://develop-api.esper.io/openapi/user/deletetenantuserinvite.md): Delete a invite ### Get Users - [GET /user/](https://develop-api.esper.io/openapi/user/getusers.md): Get a list of users in the tenant ### Get User Information - [GET /user/{user_id}/](https://develop-api.esper.io/openapi/user/getuser.md): Get User Information ### Update user role - [PUT /authz2/v1/users/{user_id}](https://develop-api.esper.io/openapi/user/updatedifferentuser.md): Update user's role ### Update user profile - [PUT /authn2/v0/user/{user_id}](https://develop-api.esper.io/openapi/user/updateownuser.md): Update user's profile ### Get user groups - [GET /authz2/v1/users/{user_id}/groups](https://develop-api.esper.io/openapi/user/getusergroups.md): Get user's groups ### Delete a user from Enterprise - [DELETE /authn2/v0/tenant/{enterprise_id}/user/{user_id}/](https://develop-api.esper.io/openapi/user/deletetenantuser.md): Delete a user from Enterprise ### Get Users details - [GET /authn2/v1/users/](https://develop-api.esper.io/openapi/user/paths/~1authn2~1v1~1users~1/get.md): This endpoint allows to fetch user list of a tenant ## Blueprint (Deprecated) This is the API for the former Blueprints service. ⚠️ **Deprecation Notice:** The following APIs will soon be deprecated. Use [Blueprints API](https://api.esper.io/tag/Blueprints-API) instead. ### Get list of Blueprints for the group - [GET /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/listblueprint.md): Return list of Blueprint instances for the group. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Create a Blueprint - [POST /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/createblueprint.md): Returns the created Blueprint instance. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Get Blueprint detail - [GET /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/{blueprint_id}/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/getblueprint.md): Returns the details of a Blueprint instance. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Partial update a Blueprint - [PATCH /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/{blueprint_id}/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/partialupdateblueprint.md): Returns the details of the updated Blueprint instance. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Delete a Blueprint - [DELETE /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/{blueprint_id}/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/deleteblueprint.md): Deletes the requested Blueprint instance. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Get list of Blueprint Revisions - [GET /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/{blueprint_id}/revisions/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/listblueprintrevisions.md): Returns a list of Blueprint Revisions instances for the given Blueprint. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Get Blueprint Revision detail - [GET /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/{blueprint_id}/revisions/{revision_id}/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/getblueprintrevision.md): Returns the detail of Blueprint Revision instance. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Restore a Blueprint - [POST /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/restore/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/restoreblueprintrevision.md): Returns the Blueprint instance restored to the requested Blueprint Revision. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ### Upload a Blueprint - [POST /enterprise/{enterprise_id}/devicegroup/{group_id}/blueprint/upload/](https://develop-api.esper.io/openapi/blueprint-(deprecated)/uploadblueprint.md): Create a Blueprint by uploading a json file. ⚠️ Deprecation Notice: This endpoint will soon be deprecated. Use Blueprints API instead. ## Directory Record APIs for Directory Record management. These APIs are only available to the customers using the new Onboarding experience. ### Get all Directory Records - [GET /v1/enterprise/{enterprise_id}/directory_record/](https://develop-api.esper.io/openapi/directory-record/getdirectoryrecords.md): Returns a list of all Directory Record instances ### Create a new Directory Record - [POST /v1/enterprise/{enterprise_id}/directory_record/](https://develop-api.esper.io/openapi/directory-record/createdirectoryrecord.md): Returns the created Directory Record intance ### Get details about a Directory Record - [GET /v1/enterprise/{enterprise_id}/directory_record/{directory_record_id}/](https://develop-api.esper.io/openapi/directory-record/getdirectoryrecord.md): Returns detail of the Directory Record instance ### Update a Directory Record - [PUT /v1/enterprise/{enterprise_id}/directory_record/{directory_record_id}/](https://develop-api.esper.io/openapi/directory-record/updatedirectoryrecord.md): Returns the updated Directory Record instance ### Delete a Directory Record - [DELETE /v1/enterprise/{enterprise_id}/directory_record/{directory_record_id}/](https://develop-api.esper.io/openapi/directory-record/deletedirectoryrecord.md): Deletes the requested Directory Record instance ## Tile Icon APIs to manage tile icons. Tile icons allow Templates-based users to apply a icons to devices. ### Get List of Device Tile Icons - [GET /v1/enterprise/{enterprise_id}/tile-icons/](https://develop-api.esper.io/openapi/tile-icon/gettileicons.md): Returns list of tile icons ### Create a tile icon - [POST /v1/enterprise/{enterprise_id}/tile-icons/](https://develop-api.esper.io/openapi/tile-icon/addtileicon.md): Create a tile icon. ### Get instance of a tile icon - [GET /v1/enterprise/{enterprise_id}/tile-icons/{tileicons_id}/](https://develop-api.esper.io/openapi/tile-icon/gettileicon.md): Get a tile icon. ### Delete a tile icon - [DELETE /v1/enterprise/{enterprise_id}/tile-icons/{tileicons_id}/](https://develop-api.esper.io/openapi/tile-icon/deletetileicon.md): Deletes a title icon ### Set a tile icon for a device - [POST /v1/enterprise/{enterprise_id}/tile-icon-apply/](https://develop-api.esper.io/openapi/tile-icon/applytileicon.md): Apply a tile icon to a device. ### Removes tile icon for device - [POST /v1/enterprise/{enterprise_id}/tile-icon-unapply/](https://develop-api.esper.io/openapi/tile-icon/removetileicon.md): Returns the model of the device(s) ## Alerts ### List alert channels in enterprise - [GET /v1/enterprise/{enterprise_id}/alertchannels/](https://develop-api.esper.io/openapi/alerts/listalertchannels.md): Returns list of alert channels ### Creates alert channel - [POST /v1/enterprise/{enterprise_id}/alertchannels/](https://develop-api.esper.io/openapi/alerts/createalertchannel.md): Returns instance of alert channel ### Get alert channel - [GET /v1/enterprise/{enterprise_id}/alertchannels/{alert_id}](https://develop-api.esper.io/openapi/alerts/getalertchannel.md): Returns instance of alert channel ### Update alert channel information - [PUT /v1/enterprise/{enterprise_id}/alertchannels/{alert_id}](https://develop-api.esper.io/openapi/alerts/updatealertchannel.md): Returns alert channel instance ### Partially updates alert channel information - [PATCH /v1/enterprise/{enterprise_id}/alertchannels/{alert_id}](https://develop-api.esper.io/openapi/alerts/patchalertchannel.md): Returns alert channel instance ### Delete an alert channel - [DELETE /v1/enterprise/{enterprise_id}/alertchannels/{alert_id}](https://develop-api.esper.io/openapi/alerts/deletealertchannel.md): Empty response ## Alarms ### Get list of alarm rules - [GET /v1/enterprise/{enterprise_id}/alarmrules/](https://develop-api.esper.io/openapi/alarms/getalarmrules.md): Returns list of alarm rules ### Creates instance of alarm rules - [POST /v1/enterprise/{enterprise_id}/alarmrules/](https://develop-api.esper.io/openapi/alarms/addalarmrule.md): Returns instance of alarm rules ### Get instance of alarm rule - [GET /v1/enterprise/{enterprise_id}/alarmrules/{alarm_id}/](https://develop-api.esper.io/openapi/alarms/getalarmrule.md): Returns instance of alarm rule ### Update alarm rules - [PUT /v1/enterprise/{enterprise_id}/alarmrules/{alarm_id}/](https://develop-api.esper.io/openapi/alarms/updatealarmrule.md): Return instance of alarm rules ### Partially updates alarm rules - [PATCH /v1/enterprise/{enterprise_id}/alarmrules/{alarm_id}/](https://develop-api.esper.io/openapi/alarms/patchalarmrule.md): Returns instance of alarm rules ### Deletes alarm rule - [DELETE /v1/enterprise/{enterprise_id}/alarmrules/{alarm_id}/](https://develop-api.esper.io/openapi/alarms/deletealarmrule.md): Empty response ### Get history of alarm rule - [GET /v1/enterprise/{enterprise_id}/alarmrules/{alarm_id}/alarmhistory/](https://develop-api.esper.io/openapi/alarms/getalarmhistory.md): Returns instance of alarm rule history ## Wallpapers ### Get list of wallpapers - [GET /v1/enterprise/{enterprise_id}/wallpaper/](https://develop-api.esper.io/openapi/wallpapers/getwallpapers.md): Returns list of wallpapers ### Create wallpaper - [POST /v1/enterprise/{enterprise_id}/wallpaper/](https://develop-api.esper.io/openapi/wallpapers/addwallpaper.md): Returns instance of created wallpaper ### Get instance of wallpaper - [GET /v1/enterprise/{enterprise_id}/wallpaper/{wallpaper_id}/](https://develop-api.esper.io/openapi/wallpapers/getwallpaper.md): Returns instance of wallpaper ### Deletes instance of wallpaper - [DELETE /v1/enterprise/{enterprise_id}/wallpaper/{wallpaper_id}/](https://develop-api.esper.io/openapi/wallpapers/deletewallpaper.md): Empty response ## Device Telemetry ### Get list of device locations - [GET /v1/enterprise/{enterprise_id}/report/location/](https://develop-api.esper.io/openapi/device-telemetry/getdevicelocations.md): Returns list of device locations ### Get location of specific device - [GET /v1/enterprise/{enterprise_id}/report/location/{location_id}/](https://develop-api.esper.io/openapi/device-telemetry/getspecificlocations.md): Returns location information of device ### Get list of device tiles reports - [GET /v1/enterprise/{enterprise_id}/report/device-tiles/](https://develop-api.esper.io/openapi/device-telemetry/getdevicetilereports.md): Returns list of device tiles reports ### Get instance of device tiles report - [GET /v1/enterprise/{enterprise_id}/report/device-tiles/{device_tiles_id}/](https://develop-api.esper.io/openapi/device-telemetry/getdevicetilereport.md): Returns instance of device tiles report ### Get status metrics report for enterprise - [GET /v1/enterprise/{enterprise_id}/report/status-metrics/](https://develop-api.esper.io/openapi/device-telemetry/getstatusmetrics.md): Returns status metrics report for enterprise ### Get status metrics report for enterprise v2 - [GET /v2/enterprise/{enterprise_id}/report/status-metrics](https://develop-api.esper.io/openapi/device-telemetry/getstatusmetricsv2.md): Returns status metrics report for enterprise ## Daily and Custom Reports ### Get report information - [GET /enterprise/report/info/](https://develop-api.esper.io/openapi/daily-and-custom-reports/getreportinfo.md): Returns report information ### Get device status reports within specified date-time range - [GET /enterprise/report/device-report/](https://develop-api.esper.io/openapi/daily-and-custom-reports/getdevicereport.md): Returns device status reports within specified date-time range ### Get enterprise report - [GET /enterprise/report/enterprise-report/](https://develop-api.esper.io/openapi/daily-and-custom-reports/getenterprisereport.md): Returns enterprise report of devices within specified date-time range ### Get group report - [GET /enterprise/report/group-report/](https://develop-api.esper.io/openapi/daily-and-custom-reports/getgroupreport.md): Returns group report of devices within specified date-time range ### Get list of subscription reports - [GET /enterprise/report/subscription/](https://develop-api.esper.io/openapi/daily-and-custom-reports/getsubscriptionreports.md): Returns list of subscription reports ### Post subscription to enterprise - [POST /enterprise/report/subscription/](https://develop-api.esper.io/openapi/daily-and-custom-reports/addsubscription.md): Returns instance of created subscription ### Get instance of subscription - [GET /enterprise/report/subscription/{subscription_id}/](https://develop-api.esper.io/openapi/daily-and-custom-reports/getsubscriptionreport.md): Returns instance of subscription ### Update subscription - [PUT /enterprise/report/subscription/{subscription_id}/](https://develop-api.esper.io/openapi/daily-and-custom-reports/updatesubscriptionreport.md): Returns instance of updated subscription ### Partially update subscription - [PATCH /enterprise/report/subscription/{subscription_id}/](https://develop-api.esper.io/openapi/daily-and-custom-reports/patchsubscriptionreport.md): Returns instance of updated subscription ### Deletes instance of subscription - [DELETE /enterprise/report/subscription/{subscription_id}/](https://develop-api.esper.io/openapi/daily-and-custom-reports/deletesubscriptionreport.md): Empty response ## SSO Connections ### List SSO connections - [GET /authn2/v0/tenant/{enterprise_id}/connection](https://develop-api.esper.io/openapi/sso-connections/getconnections.md): List SSO connections of a tenant. Learn more about SSO Connections. ### Edit SSO connections - [PUT /authn2/v0/tenant/{enterprise_id}/connection/{connection_id}](https://develop-api.esper.io/openapi/sso-connections/editcustomconnection.md): Edit SSO connections ## Roles ### List Roles API - [GET /authz2/v1/roles/](https://develop-api.esper.io/openapi/roles/getroleurl.md): API to retrieve all the roles for the tenant ### Create a new role. Then optionally add scopes by using the Update Role Scopes API. No scopes are added by default. - [POST /authz2/v1/roles/](https://develop-api.esper.io/openapi/roles/postroleurl.md): Learn more about Creating Custom Roles. ### Get Role API - [GET /authz2/v1/roles/{role_id}](https://develop-api.esper.io/openapi/roles/getroleidurl.md): API to retrieve the role for the tenant ### Patch Role API - [PATCH /authz2/v1/roles/{role_id}](https://develop-api.esper.io/openapi/roles/updateroleidurl.md): API to update role details ### Delete Role API - [DELETE /authz2/v1/roles/{role_id}](https://develop-api.esper.io/openapi/roles/deleteroleidurl.md): API to delete the role for the tenant ### Update Role Scopes API - [PUT /authz2/v1/roles/{role_id}/scopes](https://develop-api.esper.io/openapi/roles/putrolescopeurl.md): API to update scopes of an roles for the tenant ### List Role Scopes API - [GET /authz2/v1/roles/{role_id}/scopes](https://develop-api.esper.io/openapi/roles/getrolescopeurl.md): API to retrieve scopes of an roles for the tenant ## Personal Access Token ### Generate a new personal access token - [POST /authn2/v0/personal-access-token/](https://develop-api.esper.io/openapi/personal-access-token/paths/~1authn2~1v0~1personal-access-token~1/post.md): This endpoint allows clients to generate a new personal access token for a specific user and tenant. ### Get tokens for corresponding user and tenant - [GET /authn2/v0/personal-access-token/](https://develop-api.esper.io/openapi/personal-access-token/paths/~1authn2~1v0~1personal-access-token~1/get.md): Get all tokens associated with the given user and tenant. ### Renew personal access token - [PUT /authn2/v0/personal-access-token/{personal_access_token_id}](https://develop-api.esper.io/openapi/personal-access-token/paths/~1authn2~1v0~1personal-access-token~1%7Bpersonal_access_token_id%7D/put.md): Renew token associated with the given token_id. ### Delete personal access token - [DELETE /authn2/v0/personal-access-token/{personal_access_token_id}](https://develop-api.esper.io/openapi/personal-access-token/paths/~1authn2~1v0~1personal-access-token~1%7Bpersonal_access_token_id%7D/delete.md): Delete token. ## Blueprints API APIs to manage blueprints. Learn more about [blueprints](https://help.esper.io/hc/en-us/articles/19118758564369-Introduction-to-Blueprints). ### Retrieve all blueprints - [GET /v2/blueprints/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1/get.md): Retrieve all blueprints ### Create a new blueprint - [POST /v2/blueprints/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1/post.md): Create a new blueprint ### Retrieve a blueprint by ID - [GET /v2/blueprints/{blueprint_id}/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1%7Bblueprint_id%7D~1/get.md): Retrieve a blueprint by ID ### Update a blueprint by ID - [PUT /v2/blueprints/{blueprint_id}/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1%7Bblueprint_id%7D~1/put.md): Update a blueprint by ID ### Delete a blueprint by ID - [DELETE /v2/blueprints/{blueprint_id}/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1%7Bblueprint_id%7D~1/delete.md): Delete a blueprint by ID ### Retrieve all versions of a blueprint - [GET /v2/blueprints/{blueprint_id}/versions/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1%7Bblueprint_id%7D~1versions~1/get.md): Retrieve all versions of a blueprint ### Retrieve a specific version of the blueprint - [GET /v2/blueprints/{blueprint_id}/versions/{version_id}/](https://develop-api.esper.io/openapi/blueprints-api/paths/~1v2~1blueprints~1%7Bblueprint_id%7D~1versions~1%7Bversion_id%7D~1/get.md): Retrieve a specific version of the blueprint ## Custom Actions API APIs to manage custom actions. Custom actions allow you to define custom scripts and commands that can be executed on Linux devices. Currently, only Linux platform is supported for custom actions. ### Retrieve all custom actions for the tenant - [GET /v2/custom-actions/](https://develop-api.esper.io/openapi/custom-actions-api/paths/~1v2~1custom-actions~1/get.md): Retrieve all custom actions for the tenant ### Create a new custom action - [POST /v2/custom-actions/](https://develop-api.esper.io/openapi/custom-actions-api/paths/~1v2~1custom-actions~1/post.md): Create a new custom action ### Retrieve a custom action by ID - [GET /v2/custom-actions/{custom_action_id}/](https://develop-api.esper.io/openapi/custom-actions-api/paths/~1v2~1custom-actions~1%7Bcustom_action_id%7D~1/get.md): Retrieve a custom action by ID ### Update a custom action by ID - [PUT /v2/custom-actions/{custom_action_id}/](https://develop-api.esper.io/openapi/custom-actions-api/paths/~1v2~1custom-actions~1%7Bcustom_action_id%7D~1/put.md): Update a custom action by ID ### Delete a custom action by ID - [DELETE /v2/custom-actions/{custom_action_id}/](https://develop-api.esper.io/openapi/custom-actions-api/paths/~1v2~1custom-actions~1%7Bcustom_action_id%7D~1/delete.md): Delete a custom action by ID ### Retrieve script content by ID - [GET /v2/scripts/{script_id}/](https://develop-api.esper.io/openapi/custom-actions-api/paths/~1v2~1scripts~1%7Bscript_id%7D~1/get.md): Retrieve script content by ID ## System System level APIs ### Health check endpoint - [GET /sys/health](https://develop-api.esper.io/openapi/system/getservicehealth.md) ## Pipelines Pipelines composition APIs ### Get all Pipelines for the Enterprise - [GET /pipelines/v0/pipelines/](https://develop-api.esper.io/openapi/pipelines/getpipelines.md): Returns all the Pipelines that are not deleted ### Create a new Pipeline - [POST /pipelines/v0/pipelines/](https://develop-api.esper.io/openapi/pipelines/createpipeline.md): Create a Pipeline for the enterprise using logged in user token ### Get a Pipeline - [GET /pipelines/v0/pipelines/{pipeline_id}/](https://develop-api.esper.io/openapi/pipelines/getpipeline.md) ### Update a Pipeline - [PUT /pipelines/v0/pipelines/{pipeline_id}/](https://develop-api.esper.io/openapi/pipelines/updatepipeline.md) ### Delete a Pipeline - [DELETE /pipelines/v0/pipelines/{pipeline_id}/](https://develop-api.esper.io/openapi/pipelines/deletepipeline.md) ## Stages APIs to modify Stage information ### Get all Pipeline stages - [GET /pipelines/v0/pipelines/{pipeline_id}/stages/](https://develop-api.esper.io/openapi/stages/getpipelinestages.md) ### Create a Pipeline stage - [POST /pipelines/v0/pipelines/{pipeline_id}/stages/](https://develop-api.esper.io/openapi/stages/createpipelinestage.md) ### Get a Pipeline Stage - [GET /pipelines/v0/pipelines/{pipeline_id}/stages/{stage_id}/](https://develop-api.esper.io/openapi/stages/getpipelinestage.md) ### Update a Pipeline Stage - [PUT /pipelines/v0/pipelines/{pipeline_id}/stages/{stage_id}/](https://develop-api.esper.io/openapi/stages/updatepipelinestage.md) ### Delete a pipeline stage - [DELETE /pipelines/v0/pipelines/{pipeline_id}/stages/{stage_id}/](https://develop-api.esper.io/openapi/stages/deletepipelinestage.md) ### Get all Target Lists attached to the Stage - [GET /pipelines/v0/stages/{stage_id}/targetlists/](https://develop-api.esper.io/openapi/stages/getstagetargetlists.md) ### Attach the Target List to the Stage - [POST /pipelines/v0/stages/{stage_id}/targetlists/](https://develop-api.esper.io/openapi/stages/addstagetargetlist.md) ### Detach the Target List from the Stage - [DELETE /pipelines/v0/stages/{stage_id}/targetlists/{targetlist_id}/](https://develop-api.esper.io/openapi/stages/deletestagetargetlist.md) ## Target Lists APIs to modify Target List ### Get all Target Lists in Pipeline - [GET /pipelines/v0/pipelines/{pipeline_id}/targetlists/](https://develop-api.esper.io/openapi/target-lists/getpipelinetargetlists.md) ### Create a Target List - [POST /pipelines/v0/pipelines/{pipeline_id}/targetlists/](https://develop-api.esper.io/openapi/target-lists/addpipelinetargetlist.md) ### Get a Pipeline Target list - [GET /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/](https://develop-api.esper.io/openapi/target-lists/getpipelinetargetlist.md) ### Update a Pipeline Target List - [PUT /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/](https://develop-api.esper.io/openapi/target-lists/updatepipelinetargetlist.md) ### Delete a Pipeline Target list - [DELETE /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/](https://develop-api.esper.io/openapi/target-lists/deletepipelinetargetlist.md) ## Targets Targets subsystem ### Get all Targets in the Target List - [GET /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/targets/](https://develop-api.esper.io/openapi/targets/gettargetlisttargets.md) ### Create a target for the target list - [POST /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/targets/](https://develop-api.esper.io/openapi/targets/createtargetlisttargets.md) ### Get one target from target list - [GET /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/targets/{target_id}/](https://develop-api.esper.io/openapi/targets/gettargetlisttarget.md) ### Update a target in the target list - [PUT /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/targets/{target_id}/](https://develop-api.esper.io/openapi/targets/updatetargetlisttarget.md) ### Delete a Target or Device from a Target List - [DELETE /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/targets/{target_id}/](https://develop-api.esper.io/openapi/targets/deletetargetlisttarget.md) ### Bulk add targets to a target list - [POST /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/targets-bulk/](https://develop-api.esper.io/openapi/targets/bulkaddtargetlisttargets.md): Adds multiple targets to a target list. Creates target records if they don't exist, then links them to the target list. Existing targets in the list are left unchanged (skipped). Behaves the same as legacy /targets/ API. device_name should be provided for proper target run creation. device_alias can be provided as a direct property and will be stored in device_meta. ## Device Groups APIs to modify Device Groups ### Get all Device Groups in the Target List - [GET /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/devicegroups/](https://develop-api.esper.io/openapi/device-groups/gettargetlistdevicegroups.md) ### Add a Device Group to the Target List - [POST /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/devicegroups/](https://develop-api.esper.io/openapi/device-groups/addtargetlistdevicegroups.md) ### Delete Device Group from a Target List - [DELETE /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/devicegroups/{devicegroup_id}/](https://develop-api.esper.io/openapi/device-groups/deletetargetlistdevicegroup.md) ### Get all Devices in the device group - [GET /pipelines/v0/pipelines/{pipeline_id}/targetlists/{targetlist_id}/devicegroups/{device_group_id}/devices/](https://develop-api.esper.io/openapi/device-groups/getdevicegroupdevices.md) ## Operation Lists APIs to modify Operation List ### Get all Operation Lists attached to the Stage - [GET /pipelines/v0/stages/{stage_id}/operationlists/](https://develop-api.esper.io/openapi/operation-lists/getstageoperationlists.md) ### Create an Operation list for the Stage - [POST /pipelines/v0/stages/{stage_id}/operationlists/](https://develop-api.esper.io/openapi/operation-lists/addstageoperationlist.md) ### Update an Operation List - [PUT /pipelines/v0/stages/{stage_id}/operationlists/{operationlist_id}/](https://develop-api.esper.io/openapi/operation-lists/updatepipelineoperationlist.md) ### Delete stage operation list - [DELETE /pipelines/v0/stages/{stage_id}/operationlists/{operationlist_id}/](https://develop-api.esper.io/openapi/operation-lists/deletestageoperationlist.md) ## Operations Operations subsystem ### Get all Operations in the Operation List - [GET /pipelines/v0/operationlists/{operationlist_id}/operations/](https://develop-api.esper.io/openapi/operations/getoperationlistoperations.md) ### Create an Operation for Operation List - [POST /pipelines/v0/operationlists/{operationlist_id}/operations/](https://develop-api.esper.io/openapi/operations/addoperationlistoperations.md) ### Get an Operation from the operation list - [GET /pipelines/v0/operationlists/{operationlist_id}/operations/{operation_id}/](https://develop-api.esper.io/openapi/operations/getoperationlistoperation.md) ### Update an Operation - [PUT /pipelines/v0/operationlists/{operationlist_id}/operations/{operation_id}/](https://develop-api.esper.io/openapi/operations/updateoperationlistoperation.md) ### Delete an Operation list operation - [DELETE /pipelines/v0/operationlists/{operationlist_id}/operations/{operation_id}/](https://develop-api.esper.io/openapi/operations/deleteoperationlistoperation.md) ## Pipeline Runs APIs to manage Pipeline Runs. Pipeline run status descriptions * PENDING - Pipeline run created. * QUEUED - Pipeline run queued for processing. * PROCESSING - Pipeline run received by scheduler for processing. (Processing a pipeline involves performing the operations required before starting a pipeline) * RUNNING - Pipeline run has started running. * WAITING - Pipeline run is waiting for an action (manual/automatic). * COMPLETE - The pipeline run has completed processing i.e. All stage runs are processed. A complete pipeline run can move to success or failure. * SUCCESS - A completed pipeline run moves to success if all stage runs are successful. * FAILURE - A completed pipeline run moves to failure if all stage runs are not successful. * CANCELLED - Pipeline run is cancelled by the user. * TIMEOUT - The pipeline run has a timed out. This happens when the pipeline has not completed processing even after the timeout period (Default 21 days). * INVALID - A pipeline run moves to invalid state when Pipeline run has no stageruns i.e pipeline has zero stages. ### Get all Runs for the Pipelines in the Enterprise - [GET /pipelines/v0/runs/](https://develop-api.esper.io/openapi/pipeline-runs/getallpipelineruns.md) ### Get all Runs for the Pipeline - [GET /pipelines/v0/pipelines/{pipeline_id}/runs/](https://develop-api.esper.io/openapi/pipeline-runs/getpipelineruns.md) ### Create a Pipeline Run - [POST /pipelines/v0/pipelines/{pipeline_id}/runs/](https://develop-api.esper.io/openapi/pipeline-runs/createpipelinerun.md) ### Get Pipeline run by pipeline run id - [GET /pipelines/v0/pipelines/{pipeline_id}/runs/{pipeline_run_id}/](https://develop-api.esper.io/openapi/pipeline-runs/getpipelinerun.md) ### Update a Pipeline Run - [PUT /pipelines/v0/pipelines/{pipeline_id}/runs/{pipeline_run_id}/](https://develop-api.esper.io/openapi/pipeline-runs/updatepipelinerun.md) ### Delete a Pipeline Run - [DELETE /pipelines/v0/pipelines/{pipeline_id}/runs/{pipeline_run_id}/](https://develop-api.esper.io/openapi/pipeline-runs/deletepipelinerun.md) ## Stage Runs APIs to manage Stage Runs. Stage run status descriptions * PENDING - Stage run created. * QUEUED - Stage run queued for processing. * PROCESSING - Stage run received by scheduler for processing.(Processing a stage run can involve performing the operations required before starting a stage run. In this case creating the target runs for the stage.) * RUNNING - Stage run has started running. * COMPLETE - Stage run moves to complete if all target runs are complete (target runs are complete if they are in a terminal state). * SUCCESS - A completed stage run moves to success if all target runs are successful. * FAILURE - A completed stage moves to failure if all target runs are not successful. * CANCELLED - Stage run cancelled by user. * TIMEOUT - The stage run has a timed out. This happens when the stage run has not completed processing even after the timeout period (Default 7 days). * INVALID - A stage run moves to invalid state when a. The associated stage has no targets. b. The associated stage has no operations. ### Get all Stage Runs for the Pipeline Run - [GET /pipelines/v0/runs/{pipeline_run_id}/stageruns/](https://develop-api.esper.io/openapi/stage-runs/getpipelinerunstageruns.md) ### Get Pipeline Stage run by stage run Id - [GET /pipelines/v0/runs/{pipeline_run_id}/stageruns/{stage_run_id}/](https://develop-api.esper.io/openapi/stage-runs/getpipelinerunstagerun.md) ### Update a Pipeline Stage Run - [PUT /pipelines/v0/runs/{pipeline_run_id}/stageruns/{stage_run_id}/](https://develop-api.esper.io/openapi/stage-runs/updatepipelinerunstagerun.md) ### Get all Operations for the Stage Run - [GET /pipelines/v0/stageruns/{stage_run_id}/operations/](https://develop-api.esper.io/openapi/stage-runs/getpipelinestagerunoperations.md) ### Get single Operation for the Stage Run - [GET /pipelines/v0/stageruns/{stage_run_id}/operations/{stage_run_operation_id}/](https://develop-api.esper.io/openapi/stage-runs/getpipelinestagerunoperation.md) ## Target Runs APIs to manage Target Runs. Target run status descriptions * PENDING - Target run created. * QUEUED - Target run queued for processing. * PROCESSING - Target run received by scheduler for processing (During target run processing the command request for the target run is created). * DISPATCHED - Target run moves to dispatched when a command is successfully queued for the target run. (Command status - QUEUED) * RUNNING - Target run moves to running state when the command has been sent to the device (Command status - INITIATED, ACKNOWLEDGED, INPROGRESS) * COMPLETE - Target run moves to complete state when it has completed running (Command status - FAILURE, SUCCESS, TIMEOUT, CANCELLED) * SUCCESS - A completed target run moves to success when the associated command is successful (Command status - SUCCESS) * FAILURE - A completed target run moves to success when the associated command is unsuccessful (Command status - FAILED, TIMEOUT, CANCELLED) * CANCELLED - Target run cancelled by the user (Target runs ind Pending, Queued and Processing state can be cancelled by the user) * TIMEOUT - The target run has a timed out. This happens when the target run has not completed processing even after the timeout period (7 days). * INVALID - Target run is invalid. ### Get all Target Runs for the Stage Run - [GET /pipelines/v0/stageruns/{stage_run_id}/targetruns/](https://develop-api.esper.io/openapi/target-runs/getpipelinestagetargetruns.md) ### Create a Target Runs for Stage Run - [POST /pipelines/v0/stageruns/{stage_run_id}/targetruns/](https://develop-api.esper.io/openapi/target-runs/createpipelinestagetargetruns.md) ### Get Target Run by Target Run ID - [GET /pipelines/v0/stageruns/{stage_run_id}/targetruns/{target_run_id}/](https://develop-api.esper.io/openapi/target-runs/getpipelinestagetargetrun.md) ### Update a Target Run - [PUT /pipelines/v0/stageruns/{stage_run_id}/targetruns/{target_run_id}/](https://develop-api.esper.io/openapi/target-runs/updatepipelinestagetargetrun.md) ### Get status of the command running for Target run - [GET /pipelines/v0/stageruns/{stage_run_id}/targetruns/{target_run_id}/command/](https://develop-api.esper.io/openapi/target-runs/gettargetruncommandstatus.md) ### Create an command processor request for Target Run - [POST /pipelines/v0/stageruns/{stage_run_id}/targetruns/{target_run_id}/command/](https://develop-api.esper.io/openapi/target-runs/createtargetruncommand.md) ### Update target run command information. - [PUT /pipelines/v0/stageruns/{stage_run_id}/targetruns/{target_run_id}/command/{command_id}/](https://develop-api.esper.io/openapi/target-runs/puttargetruncommandstatus.md) ## Device APIs to retrieve information about the device or delete the device. ### Get all devices in the tenant - [GET /device/v0/devices/](https://develop-api.esper.io/openapi/device/getdevicelist.md): Returns all the devices in the tenant ### Get details of a Device - [GET /device/v0/devices/{id}/](https://develop-api.esper.io/openapi/device/getdevicerequest.md) ### Delete a device. Currently supported by iOS, Linux and Windows devices. - [DELETE /device/v0/devices/{id}/](https://develop-api.esper.io/openapi/device/deletedevicerequest.md) ### Get details of Current Device State - [GET /device/v0/devices/{id}/devicestate](https://develop-api.esper.io/openapi/device/getdevicestaterequest.md) ### Get all distinct foundation versions - [GET /api/v2/foundationversions](https://develop-api.esper.io/openapi/device/getfoundationversionslist.md): Returns a list of distinct foundation versions present in the tenant's devices ## Device Heartbeat APIs to retrieve information about device's heartbeat which contains the last seen details. ### Get heartbeat of a device which contains last seen information - [GET /device/v0/heartbeat/{id}/](https://develop-api.esper.io/openapi/device-heartbeat/getdeviceheartbeat.md) ### Get list of heartbeat for all devices - [GET /v2/heartbeat/](https://develop-api.esper.io/openapi/device-heartbeat/getdeviceheartbeatlist.md) ## Device Apps APIs to get apps installed on iOS devices. Use [Application](https://api.esper.io/tag/Application/) to get apps for Android devices. ### Get all apps for a device in the tenant - [GET /v2/devices/{deviceId}/device-apps/](https://develop-api.esper.io/openapi/device-apps/paths/~1v2~1devices~1%7Bdeviceid%7D~1device-apps~1/get.md): Returns all the apps for a device ### Get list of devices with an app by app_id or app_version_id. - [GET /v2/device-apps](https://develop-api.esper.io/openapi/device-apps/paths/~1v2~1device-apps/get.md) ## Device Enrollment in EMM APIs to enroll device with Google EMM ### Get the Google EMM Policy details for a specific device. - [GET /v2/devices/{deviceId}/google-accounts/policy/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1policy~1/get.md) ### Update the Google EMM Policy details for a specific device. - [PUT /v2/devices/{deviceId}/google-accounts/policy/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1policy~1/put.md) ### Get the List of Google EMM Managed Devices for a user's devices. - [GET /api/v2/devices/{deviceId}/google-accounts/emm-managed/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1api~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1emm-managed~1/get.md) ### Return the Google account details of the EMM enrollment stored in the database for the specified device. - [GET /v2/devices/{deviceId}/google-accounts/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1/get.md) ### Update the Google account details of the EMM enrollment stored in the database for a specific device. - [PUT /v2/devices/{deviceId}/google-accounts/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1/put.md) ### Create a Google user and, if request body is not provided, generate a Google auth token for a specific device on the Google EMM side. - [POST /v2/devices/{deviceId}/google-accounts/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1/post.md) ### Unenrolls device from Google EMM and deletes the Google account details. - [DELETE /v2/devices/{deviceId}/google-accounts/](https://develop-api.esper.io/openapi/device-enrollment-in-emm/paths/~1v2~1devices~1%7Bdeviceid%7D~1google-accounts~1/delete.md) ## Operations [alpha] APIs to get information about operations ### Get all Operations in the Tenant - [GET /v0/operations/](https://develop-api.esper.io/openapi/operations-alpha/getoperationslist.md) ### Create a new Operation - [POST /v0/operations/](https://develop-api.esper.io/openapi/operations-alpha/createoperation.md) ### Get specific Operation details (Operation Status) - [GET /v0/operations/{operationId}/](https://develop-api.esper.io/openapi/operations-alpha/getoperation.md) ### Update the operation (Support status update as of now) - [PUT /v0/operations/{operationId}/](https://develop-api.esper.io/openapi/operations-alpha/paths/~1v0~1operations~1%7Boperationid%7D~1/put.md): This API allows updating the status of a specific operation by providing the operation ID. ## DeviceOperations [alpha] APIs to get information about device operations ### Get all DeviceOperations for a specific Operation - [GET /v0/operations/{operationsId}/devices/](https://develop-api.esper.io/openapi/deviceoperations-alpha/getdeviceoperations.md) ### Get a Operations for a device - [GET /v0/devices/{deviceId}/operations/](https://develop-api.esper.io/openapi/deviceoperations-alpha/paths/~1v0~1devices~1%7Bdeviceid%7D~1operations~1/get.md) ### Get a specific DeviceOperations for a specific Operation (Device Operation Status) - [GET /v0/operations/{operationsId}/devices/{deviceId}/](https://develop-api.esper.io/openapi/deviceoperations-alpha/getdeviceoperation.md) ### Update a specific DeviceOperation for a specific Operation - [PUT /v0/operations/{operationsId}/devices/{deviceId}/](https://develop-api.esper.io/openapi/deviceoperations-alpha/updatedeviceoperation.md) ## MultiOS Remote Viewer API to get Remote Viewer activity for the tenant. Currently supports only Android devices with DPC 8.4 and above along with RemoteViewer 3.x. ### Get RemoteViewer Activity Feed for the tenant - [GET /api/v2/rv-activity-feed/](https://develop-api.esper.io/openapi/multios-remote-viewer/paths/~1api~1v2~1rv-activity-feed~1/get.md) ## Device V2 ### Get all devices in the tenant - [GET /v2/devices/](https://develop-api.esper.io/openapi/device-v2/paths/~1v2~1devices~1/get.md): Returns all the devices in the tenant ### Retrieve detailed device information. - [GET /v2/devices/{id}](https://develop-api.esper.io/openapi/device-v2/paths/~1v2~1devices~1%7Bid%7D/get.md): Get device details for particular device id ## VPP License Management APIs for managing VPP licenses for apps. Learn more about [VPP licenses](https://help.esper.io/hc/en-us/articles/20361103311761-Setting-Up-Apple-MDM-Management). ### Get VPP License List - [GET /apps/v0/vpp](https://develop-api.esper.io/openapi/vpp-license-management/paths/~1apps~1v0~1vpp/get.md): API to get a list of VPP licenses with the given VPP token ### Get VPP License Info about an App - [GET /apps/v0/vpp/{appId}](https://develop-api.esper.io/openapi/vpp-license-management/paths/~1apps~1v0~1vpp~1%7Bappid%7D/get.md): API to get information about the VPP license for a given app ## VPP App Management APIs for getting information about VPP apps. Learn more about [VPP apps](https://help.esper.io/hc/en-us/articles/20518326865681-Managing-iOS-Applications). ### Get iOS App Info (v2) - [GET /v2/itunesapps](https://develop-api.esper.io/openapi/vpp-app-management/paths/~1v2~1itunesapps/get.md): API to get information about iOS apps based on their app IDs or Apple app IDs. ## Tenant Apps API to manage Enterprise iOS apps for a tenant. ### Upload tenant app for a tenant - [POST /v2/tenant-apps](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps/post.md) ### Get tenant apps for a tenant - [GET /v2/tenant-apps](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps/get.md) ### Get tenant app by ID - [GET /v2/tenant-apps/{appId}](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps~1%7Bappid%7D/get.md) ### Get tenant app versions by app ID - [GET /v2/tenant-apps/{appId}/versions](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps~1%7Bappid%7D~1versions/get.md) ### Get tenant app version by ID - [GET /v2/tenant-apps/{appId}/versions/{versionId}](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps~1%7Bappid%7D~1versions~1%7Bversionid%7D/get.md) ### Update tenant app version by ID - [PUT /v2/tenant-apps/{appId}/versions/{versionId}](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps~1%7Bappid%7D~1versions~1%7Bversionid%7D/put.md) ### Delete tenant app version by ID - [DELETE /v2/tenant-apps/{appId}/versions/{versionId}](https://develop-api.esper.io/openapi/tenant-apps/paths/~1v2~1tenant-apps~1%7Bappid%7D~1versions~1%7Bversionid%7D/delete.md) ## Apple App Store API to search apple app store for apps ### Search Apple App Store - [GET /v2/appleappstore/](https://develop-api.esper.io/openapi/apple-app-store/paths/~1v2~1appleappstore~1/get.md) ## App List Unified API to query Webclips and Tenant IOS Apps ### Get unified list of iOS apps (IPAs and Webclips) for a tenant - [GET /v2/apps](https://develop-api.esper.io/openapi/app-list/paths/~1v2~1apps/get.md) ## Webclips API to manage webclips for a tenant ### Create webclip for a tenant - [POST /v2/webclips](https://develop-api.esper.io/openapi/webclips/paths/~1v2~1webclips/post.md) ### Get webclips for a tenant - [GET /v2/webclips](https://develop-api.esper.io/openapi/webclips/paths/~1v2~1webclips/get.md) ### Get webclip by id for a tenant - [GET /v2/webclips/{webclipId}](https://develop-api.esper.io/openapi/webclips/paths/~1v2~1webclips~1%7Bwebclipid%7D/get.md) ### Delete webclip for a tenant - [DELETE /v2/webclips/{webclipId}](https://develop-api.esper.io/openapi/webclips/paths/~1v2~1webclips~1%7Bwebclipid%7D/delete.md) ## Provisioning Profiles APIs for managing iOS provisioning profiles for app distribution ### Upload provisioning profile for a tenant - [POST /v2/provisioning-profiles](https://develop-api.esper.io/openapi/provisioning-profiles/paths/~1v2~1provisioning-profiles/post.md): API to upload and validate iOS provisioning profiles for app distribution ### Get provisioning profiles for a tenant - [GET /v2/provisioning-profiles](https://develop-api.esper.io/openapi/provisioning-profiles/paths/~1v2~1provisioning-profiles/get.md): API to retrieve a list of iOS provisioning profiles with download URLs and pagination ### Get provisioning profile by ID - [GET /v2/provisioning-profiles/{id}](https://develop-api.esper.io/openapi/provisioning-profiles/paths/~1v2~1provisioning-profiles~1%7Bid%7D/get.md): API to retrieve a specific iOS provisioning profile by its ID with download URL ### Get provisioning profile versions list - [GET /v2/provisioning-profiles/{id}/versions](https://develop-api.esper.io/openapi/provisioning-profiles/paths/~1v2~1provisioning-profiles~1%7Bid%7D~1versions/get.md): API to retrieve all versions of a specific iOS provisioning profile ordered by expiration date descending, with pagination and search capabilities ### Get provisioning profile version by ID - [GET /v2/provisioning-profiles/{id}/versions/{versionId}](https://develop-api.esper.io/openapi/provisioning-profiles/paths/~1v2~1provisioning-profiles~1%7Bid%7D~1versions~1%7Bversionid%7D/get.md): API to retrieve a specific version of an iOS provisioning profile by profile ID and version ID with download URL ### Delete provisioning profile version by ID - [DELETE /v2/provisioning-profiles/{id}/versions/{versionId}](https://develop-api.esper.io/openapi/provisioning-profiles/paths/~1v2~1provisioning-profiles~1%7Bid%7D~1versions~1%7Bversionid%7D/delete.md): API to delete a specific version of an iOS provisioning profile by profile ID and version ID. Returns the deleted version information. ## Esper Apps ### Get esper app version details by ID - [GET /api/v2/esper-apps/{appId}/versions/{versionId}](https://develop-api.esper.io/openapi/esper-apps/paths/~1api~1v2~1esper-apps~1%7Bappid%7D~1versions~1%7Bversionid%7D/get.md) ## Tenant Esper Apps ### Get esper apps for a tenant - [GET /api/v2/tenant-esper-apps](https://develop-api.esper.io/openapi/tenant-esper-apps/paths/~1api~1v2~1tenant-esper-apps/get.md) ## Command Request APIs to view and manage command requests. Learn more about [commands](https://help.esper.io/hc/en-us/articles/16036992814609-Commonly-Used-APIs#h_01H2GZ8WM86BSQBGXE998QY8SM) or how to [schedule a command](https://help.esper.io/hc/en-us/articles/16036992814609-Commonly-Used-APIs#h_01H2GZ8WM86BSQBGXE998QY8SM). Scheduled commands are currently compatible with Android devices. ### List command requests - [GET /commands/v0/commands/](https://develop-api.esper.io/openapi/command-request/listcommandrequests.md): API to get and filter command requests ### Create a command request - [POST /commands/v0/commands/](https://develop-api.esper.io/openapi/command-request/createcommandrequest.md): API to create a command request for a set of devices or groups. Works for mixed-fleet devices (Android, iOS, etc.) if the command is supported. You can send the command immediately or schedule command for supported devices. Scheduled commands are currently compatible with Android devices. ### Get a command request - [GET /commands/v0/commands/{id}/](https://develop-api.esper.io/openapi/command-request/getcommandrequest.md): API to get a command request ### Get stats of a command request - [GET /commands/v0/commands/{id}/stats/](https://develop-api.esper.io/openapi/command-request/getcommandrequeststats.md): API to get a aggregrated status for a command request ## Command Status APIs to view, filter, and manage command requests. ### Get status list for command request - [GET /commands/v0/status/](https://develop-api.esper.io/openapi/command-status/getcommandrequeststatuses.md): API to get and filter command request status ### Get a command status - [GET /commands/v0/status/{id}/](https://develop-api.esper.io/openapi/command-status/getcommandstatus.md): API to get a command status ### Update command status - [PUT /commands/v0/status/{id}/](https://develop-api.esper.io/openapi/command-status/updatecommandstatus.md): API to update a command status state ### Get queued commands to be executed by the physical device. - [GET /v2/command-inbox/](https://develop-api.esper.io/openapi/command-status/getcommandinbox.md): API to get queued commands for a device ## Converge APIs to list and create converge actions for devices. Learn more about [converge](https://help.esper.io/hc/en-us/articles/24210344910865-Blueprint-Converge-and-Revert). ### List converge action - [GET /v2/converge](https://develop-api.esper.io/openapi/converge/listconverges.md): API to get and filter converge action ### Create a converge action - [POST /v2/converge](https://develop-api.esper.io/openapi/converge/createconverge.md): API to create a converge action for a device. ### Get converge action - [GET /v2/converge/{id}](https://develop-api.esper.io/openapi/converge/getconverge.md): API to get a converge action ## Converge Command API for converge command ### List commands fires for converge action - [GET /v2/converge/{id}/commands](https://develop-api.esper.io/openapi/converge-command/listconvergecommands.md): API to get and filter commands fired for converge action ## DEP Sync Request APIs to create and access DEP sync request information. Use DEP sync to sync the information from your Apple Business Manager account to the Esper console. ### List all DEP sync requests for the tenant - [GET /onboarding/v0/depsyncs/](https://develop-api.esper.io/openapi/dep-sync-request/listdepsyncrequest.md): Returns all the DEP sync requests for the tenant ### Create a DEP sync request - [POST /onboarding/v0/depsyncs/](https://develop-api.esper.io/openapi/dep-sync-request/createdepsyncrequest.md): API to create a DEP sync request. ### Get a DEP sync request - [GET /onboarding/v0/depsyncs/{id}/](https://develop-api.esper.io/openapi/dep-sync-request/getdepsyncrequest.md): API to get a DEP sync request ## ABM Provisioning APIs to perform ABM provisioning. Learn more about [ABM provisioning](https://help.esper.io/hc/en-us/articles/20361103311761-Setting-Up-Apple-MDM-Management) ### Create a ABM provisioning request by uploading file - [POST /v2/seamless/upload](https://develop-api.esper.io/openapi/abm-provisioning/paths/~1v2~1seamless~1upload/post.md) ### Create a ABM provisioning request using device serial number - [POST /v2/seamless](https://develop-api.esper.io/openapi/abm-provisioning/paths/~1v2~1seamless/post.md) ## APNs certificate APIs for managing APNS certificates. Learn more about [APNS certificates](https://help.esper.io/hc/en-us/articles/20361103311761-Setting-Up-Apple-MDM-Management) ### Get all APNs certificate meta data for the Tenant - [GET /tenant/v0/apnscertificates/](https://develop-api.esper.io/openapi/apns-certificate/listapnscerts.md): Returns all the APNs certificate meta information ### Get the CSR file to upload to the apple identity console - [POST /tenant/v0/apnscertificates/](https://develop-api.esper.io/openapi/apns-certificate/getapnscsr.md) ### Get APNs certificate meta information - [GET /tenant/v0/apnscertificates/{id}/](https://develop-api.esper.io/openapi/apns-certificate/getapnscert.md) ### Upload APNs certificate - [PUT /tenant/v0/apnscertificates/{id}/](https://develop-api.esper.io/openapi/apns-certificate/uploadapnscert.md): Upload the signed APNs certificate obtained from the apple identity console. ### Delete a APNs certificate - [DELETE /tenant/v0/apnscertificates/{id}/](https://develop-api.esper.io/openapi/apns-certificate/deleteapnscert.md) ## DEP Tokens 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) ### Generate the public key file - [POST /tenant/v0/deptokens/](https://develop-api.esper.io/openapi/dep-tokens/deptoken.md): Generate the public key file which is uploaded to Apple Business Manager(ABM) console to generate the DEP token. ### Get all DEP tokens - [GET /tenant/v0/deptokens/](https://develop-api.esper.io/openapi/dep-tokens/listdeptokens.md): Get the list of all DEP tokens available in the tenant ### Get dep token by id - [GET /tenant/v0/deptokens/{id}/](https://develop-api.esper.io/openapi/dep-tokens/deptokenbasedonid.md): Retrive information of a DEP token by ID ### Upload dep token to a tenant - [PUT /tenant/v0/deptokens/{id}/](https://develop-api.esper.io/openapi/dep-tokens/deptokenupload.md): Upload dep token for a public key for a tenant based on ID of DEP public key ## VPP Token Management APIs to create, access, and delete VPP tokens. Learn more about [VPP tokens](https://help.esper.io/hc/en-us/articles/20361103311761-Setting-Up-Apple-MDM-Management). ### Get all VPP tokens for the tenant - [GET /tenant/v0/vpptokens/](https://develop-api.esper.io/openapi/vpp-token-management/paths/~1tenant~1v0~1vpptokens~1/get.md): Returns all the VPP tokens for the tenant ### Store a VPP token - [POST /tenant/v0/vpptokens/](https://develop-api.esper.io/openapi/vpp-token-management/paths/~1tenant~1v0~1vpptokens~1/post.md): Uploads a VPP token ### Delete VPP Token - [DELETE /tenant/v0/vpptokens/{id}](https://develop-api.esper.io/openapi/vpp-token-management/paths/~1tenant~1v0~1vpptokens~1%7Bid%7D/delete.md): API to delete vpp token for a tenant ## Google Enterprise APIs to enroll the enterprise in Google EMM. ### Generate sign-up URL - [POST /v2/emm/enrollment/begin/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1enrollment~1begin~1/post.md) ### Return the enrollment status of the Enterprise - [GET /v2/emm/details/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1details~1/get.md) ### Creates a new Google Enterprise with the provided details - [POST /v2/emm/details/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1details~1/post.md) ### Create a Google Web Token - [POST /v2/emm/web-token/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1web-token~1/post.md) ### Complete EMM enrollment for a Google Enterprise - [POST /v2/emm/enrollment/complete/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1enrollment~1complete~1/post.md) ### Return the Google Service Account of the Enterprise - [GET /v2/emm/accounts/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1accounts~1/get.md) ### Creates a new Google Service Account with the provided details - [POST /v2/emm/accounts/](https://develop-api.esper.io/openapi/google-enterprise/paths/~1v2~1emm~1accounts~1/post.md) ## FoundryBuilds ### Get Foundry builds - [GET /v1/foundry/builds/](https://develop-api.esper.io/openapi/foundrybuilds/getfoundrybuilds.md): Returns a list of all specified builds. ### Get Foundry Build - [GET /v1/foundry/builds/{build_id}/](https://develop-api.esper.io/openapi/foundrybuilds/paths/~1v1~1foundry~1builds~1%7Bbuild_id%7D~1/get.md): Get a Foundry Build by unique ID ### Update Foundry build - [PUT /v1/foundry/builds/{build_id}/](https://develop-api.esper.io/openapi/foundrybuilds/updatefoundrybuild.md): Update a Foundry build based on given parameters ## FoundryDeviceModels ### Get device models - [GET /v1/foundry/device-models/](https://develop-api.esper.io/openapi/foundrydevicemodels/paths/~1v1~1foundry~1device-models~1/get.md): Get a list of device models ### Update Tenant Device Model - [PUT /v1/foundry/device-models/{device_model_id}/](https://develop-api.esper.io/openapi/foundrydevicemodels/paths/~1v1~1foundry~1device-models~1%7Bdevice_model_id%7D~1/put.md): Update a Tenant Device Model based on given parameters ## FoundryEvents ### Get Foundry events - [GET /v1/foundry/events/](https://develop-api.esper.io/openapi/foundryevents/paths/~1v1~1foundry~1events~1/get.md): Get a list of Foundry events ## Reports API APIs for managing reports.
Currently supports [App Reports](https://help.esper.io/hc/en-us/articles/27379366650257-App-Reports). ### Get report types - [GET /report/v0/report-types](https://develop-api.esper.io/openapi/reports-api/getreporttypes.md): Get report types ### Create Report - [POST /report/v0/reports](https://develop-api.esper.io/openapi/reports-api/createreportstatus.md): This API will return a report ID. Use this ID to call the "Get Report Status" API to check the report generation status and retrieve the results. Learn more. ### Get report status - [GET /report/v0/reports/{report_id}](https://develop-api.esper.io/openapi/reports-api/getreportstatus.md): Call this API with report ID generated from "Create Report" API to check the report generation status and retrieve the results. Learn more. ## Query API ### Create Query - [POST /data-tap/v0/queries](https://develop-api.esper.io/openapi/query-api/createquery.md): Creates a new SQL query for execution. Returns a query ID that can be used to check its execution status. ### Get Query Status - [GET /data-tap/v0/queries/{id}](https://develop-api.esper.io/openapi/query-api/getquerystatus.md): Returns the current status of a query and its results if available. ## Ingest API ### Refresh data - [POST /data-tap/v0/ingests](https://develop-api.esper.io/openapi/ingest-api/createingest.md): Creates a new job to refresh data. ### List All Ingest Jobs - [GET /data-tap/v0/ingests](https://develop-api.esper.io/openapi/ingest-api/listingest.md): Returns a list of all ingest jobs created by the tenant. ### Get Ingest Job Status - [GET /data-tap/v0/ingests/{id}](https://develop-api.esper.io/openapi/ingest-api/getingeststatus.md): Retrieves the current status of a specific ingest job.