Applications

Introduction

Access Token

Access tokens are the secret passwords that gives access to your resources through the APIs. You can create an API token from the Cloud as described in the introduction.
Make sure to keep your tokens secret and to not publish them publicly to prevent any security breach.

API in use

The Cloud API centralizes all your teams, workspaces, devices, applications, logs and telemetries. hub.stereolabs.com/api/v1

List apps

List all applications in the specified team. Those applications are available to all workspaces in the team.
  • team_id string
    optional Filter apps of a single team by providing the team ID as query parameter. ?team_id=54321
  • apps array
    List of applications in the team and their details.
  • apps.latest_release array
    Information about the latest release of the application.
  • /apps
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/apps
    HTTP/1.1 200 OK
    {
      "apps": [
        {
          "id": "101112",
          "workspace_id": "12345",
          "name": "My first app",
          "created_at": "1584106887741",
          "description": "Runs on test devices",
          "permissions": {
            "camera": true
          },
          "auto_install": false,
          "restart_policy": "always",
          "user_data": {
            "customValue": 42
          },
          "latest_release": {
            "id": "131415",
            "name": "1.0.0",
            "created_at": "1584106887955",
            "description": "Initial release"
          }
        },
        ...
      ]
    }

    Get app information

    Get details about a specific application.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • id integer
    Unique identifier of the application.
  • team_id string
    Unique identifier of the team owning this application.
  • name string
    Name of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • description string
    Verbose description of the application.
  • permissions object
    Contains the application permissions, for example whether it uses the camera or not.
  • auto_install boolean
    Whether this app should be automatically installed on new devices in the team's workspaces.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • user_data object
    Format-free json field to store any custom information related to the application.
  • latest_release object
    Latest release of the application.
  • /apps/:appNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "team_id": "54321",
      "name": "My first app",
      "created_at": "1584106887741",
      "description": "Runs on test devices",
      "permissions": {
        "camera": true
      },
      "auto_install": false,
      "restart_policy": "always",
      "user_data": {
        "customValue": 42
      },
      "latest_release": {
        "id": "131415",
        "app_id": "101112",
        "name": "1.0.0",
        "created_at": "1584106887955",
        "description": "Initial release",
        "size": 1.5,
        "type":"docker-compose",
        "default_parameters": {
          "reported": {},
          "requested": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          }
        },
        "override_policy": {
          "requested": {
            "customParameter": true
          }
        }
      }
    }

    Upload app

    Upload an app as a packaged ZIP file. Information like the app name and its options should be contained in an app.json file at the root of the ZIP file.
  • file form_file_entry
    The ZIP file corresponding to this application.
  • team_id form_integer_entry
    The unique identifier of the team this app should be uploaded in.
  • id integer
    Unique identifier of the application.
  • team_id string
    Unique identifier of the team owning this application.
  • name string
    Name of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • description string
    Verbose description of the application.
  • permissions object
    Contains the application permissions, for example whether it uses the camera or not.
  • auto_install string
    Whether this app should be automatically installed on new devices in the team's workspaces.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • user_data object
    Format-free json field to store any custom information related to the application.
  • latest_release object
    Latest release of the application.
  • /apps
    curl -s \
      -H "Content-Type:multipart/form-data" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/apps \
      --form "file=@/home/user/first_app.zip"  --form "team_id=54321"
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "team_id": "54321",
      "name": "My first app",
      "created_at": "1584106887741",
      "description": "Runs on test devices",
      "permissions": {
        "camera": true
      },
      "auto_install": false,
      "restart_policy": "always",
      "user_data": {
        "customValue": 42
      },
      "latest_release": {
        "id": "131415",
        "app_id": "101112",
        "name": "1.0.0",
        "created_at": "1584106887955",
        "description": "Initial release",
        "size": 1.5,
        "type":"docker-compose",
        "default_parameters": {
          "reported": {},
          "requested": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          }
        },
        "override_policy": {
          "requested": {
            "customParameter": true
          }
        }
      }
    }

    Update application information

    Update application information like its name, its description, user_data and more.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • name string
    optional New name for the application.
  • description string
    optional Updated verbose description of the application.
  • user_data object
    optional Updated custom information related to this application.
  • permissions object
    optional Updated permissions for this application.
  • auto_install boolean
    optional true if this app should automatically be installed on all devices in the workspace, or false to only install it when deployed on a specific device.
  • restart_policy string
    optional always if the application should restart when it goes out of the running status unexpectedly, or never.
  • id integer
    Unique identifier of the application.
  • team_id string
    Unique identifier of the team owning this application.
  • name string
    Name of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • description string
    Verbose description of the application.
  • permissions object
    Contains the application permissions, for example whether it uses the camera or not.
  • auto_install boolean
    Whether this app should be automatically installed on new devices in the team's workspaces.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • user_data object
    Format-free json field to store any custom information related to the application.
  • /apps/:appNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X PUT \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId \
      -d '{ 
      "name": "Updated app name",
      "description": "Runs on all test devices"
      "user_data": {
        "customValue": 42
      }
    }'
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "team_id": "54321",
      "name": "Updated app name",
      "created_at": "1584106887741",
      "description": "Runs on all test devices",
      "permissions": {
        "camera": true
      },
      "auto_install": false,
      "restart_policy": "always",
      "user_data": {
        "customValue": 42
      }
    }

    Delete application

    Delete an application, all its deployments and all its releases.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • /apps/:appNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X DELETE \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId
    HTTP/1.1 200 OK
    {}

    List app deployments in a workspace

    List all applications currently in use in the workspace by any of its device.
  • :workspaceId integer
    ID of the target workspace.
  • apps array
    List of applications currently in use in the workspace and their details.
  • apps.deployments array
    List of current deployments of this application on workspace's devices and their details.
  • /workspaces/:workspaceId/apps
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/apps
    HTTP/1.1 200 OK
    {
      "apps": [
        {
          "id": "101112",
          "name": "My first app",
          "description": "Runs on test devices",
          "created_at": "1584106887741",
          "permissions": {
            "camera": true
          },
          "user_data": {
            "customValue": 42
          },
          "restart_policy": "always",
          "deployments": [
            {
              "deployment_id": 987654,
              "deployed_at": 1584106888050,
              "device_id": 67890,
              "status": "running",
              "warnings": false,
              "errors": false,
              "parameters": {
                "reported": {
                  "core": {
                    "disable_app": false
                  },
                  "customParameter": 42
                },
                "requested": {
                  "core": {
                    "autorun": true,
                    "disable_app": false
                  },
                  "customParameter": 42
                }
              }
            },
            ...
          ]
        },
        ...
      ]
    }

    List app deployments on a device

    List all the applications deployed on a device.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • apps array
    List of applications currently in use in the workspace and their details.
  • apps.deployment object
    Current deployment of this application on the device and its details
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps
    HTTP/1.1 200 OK
    {
      "apps": [
        {
          "id": "101112",
          "name": "My first app",
          "description": "Runs on test devices",
          "created_at": "1584106887741",
          "permissions": {
            "camera": true
          },
          "user_data": {
            "customValue": 42
          },
          "restart_policy": "always",
          "deployment": {
            "deployment_id": 987654,
            "deployed_at": 1584106888050,
            "device_id": 67890,
            "status": "running",
            "warnings": false,
            "errors": false,
            "parameters": {
              "reported": {
                "core": {
                  "disable_app": false
                },
                "customParameter": 42
              },
              "requested": {
                "core": {
                  "autorun": true,
                  "disable_app": false
                },
                "customParameter": 42
              }
            }
          }
        },
        ...
      ]
    }

    Get app deployment

    Get details of an application deployed on a device.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • id integer
    ID of the application.
  • name string
    Application's name.
  • description string
    Verbose description of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • permissions object
    Contains the application permissions, for example whether it uses the camera or not.
  • user_data object
    Custom data attached to the application.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • release object
    The details of the application's release the device is running.
  • deployment object
    The details of the application instance on the device.
  • deployment.deployment_id integer
    Unique identifier of this application deployment on the device.
  • deployment.deployed_at timestamp
    Datetime of the application deployment on the device (epoch, milliseconds).
  • deployment.device_id string
    Unique identifier of the device the application is running on.
  • deployment.status string
    Current status of the application reported by the device. Possible values are:
    • "downloading": Device is downloading the application.
    • "building": Application is being installed on the device. For docker-compose apps, docker-compose build and docker-compose pull commands are used.
    • "built": Application has just been installed but parameters.requested.core.autorun was set to false.
    • "launching": Application is starting and will end up in running status if everything goes right. For docker-compose apps, docker-compose up commands is used.
    • "running": Application is currently running on the device. For docker-compose apps, its services are actually running.
    • "restarting": Application is being stopped and will launched right after. For docker-compose apps, the docker-compose down command is used.
    • "stopping": Application is stopping. For docker-compose apps,docker-compose down command is used.
    • "stopped": Application is stopped and waiting to be launched. For docker-compose apps, its services are not running.
    • "failed": Application reported an error during the downloading, building or launching steps. This status will also be reported if its execution is interrupted (exit code > 0).
    • "paused": Execution of the application has been paused, this can occur during an Edge Agent update. For docker-compose apps, the docker-compose pause command is used.
    • "removing": Application is being stopped and its files deleted from the device.
    • "": No status has been reported yet.
  • deployment.errors
    deployment.warnings
    boolean
    boolean
    Whether the application instance has reported warning or error logs. (Logs marked as read are ignored.)
  • parameters object
    Requested and reported values of the parameters set for this application deployment.
  • parameters.requested.core.autorun
    parameters.reported.core.autorun
    object
    object
    Whether the application should be launched right after its installation on the device.
  • parameters.requested
    reported.core.disable_app
    object
    object
    Whether the application should run on the device or be disabled.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "name": "My first app",
      "description": "Runs on test devices",
      "created_at": "1584106887741",
      "permissions": {
        "camera": true
      },
      "user_data": {
        "customValue": 42
      },
      "restart_policy": "always",
      "deployment": {
        "deployment_id": 987654,
        "deployed_at": 1584106888050,
        "device_id": 67890,
        "status": "running",
        "warnings": false,
        "errors": false,
        "parameters": {
          "reported": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          },
          "requested": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          }
        }
      }
    }

    Deploy application on device

    Deploys the latest release of an application on a device. If another release of the same application is already installed on the device, it will be replaced by the latest one.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • disable_app boolean
    optional Whether the application should be disabled at the moment of its deployment. A disabled app won't be starting its installation until it gets enabled.
  • id integer
    ID of the application.
  • name string
    Application's name.
  • description string
    Verbose description of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • permissions object
    Contains the application permissions, for example whether it uses the camera or not.
  • user_data object
    Custom data attached to the application.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • release object
    The details of the application's release the device is running.
  • deployment object
    The details of the application instance on the device.
  • deployment.deployment_id integer
    Unique identifier of this application deployment on the device.
  • deployment.deployed_at timestamp
    Datetime of the application deployment on the device (epoch, milliseconds).
  • deployment.device_id string
    Unique identifier of the device the application is running on.
  • deployment.status string
    Current status of the application reported by the device. Possible values are:
    • "downloading": Device is downloading the application.
    • "building": Application is being installed on the device. For docker-compose apps, docker-compose build and docker-compose pull commands are used.
    • "built": Application has just been installed but parameters.requested.core.autorun was set to false.
    • "launching": Application is starting and will end up in running status if everything goes right. For docker-compose apps, docker-compose up commands is used.
    • "running": Application is currently running on the device. For docker-compose apps, its services are actually running.
    • "restarting": Application is being stopped and will launched right after. For docker-compose apps, the docker-compose down command is used.
    • "stopping": Application is stopping. For docker-compose apps,docker-compose down command is used.
    • "stopped": Application is stopped and waiting to be launched. For docker-compose apps, its services are not running.
    • "failed": Application reported an error during the downloading, building or launching steps. This status will also be reported if its execution is interrupted (exit code > 0).
    • "paused": Execution of the application has been paused, this can occur during an Edge Agent update. For docker-compose apps, the docker-compose pause command is used.
    • "removing": Application is being stopped and its files deleted from the device.
    • "": No status has been reported yet.
  • deployment.errors
    deployment.warnings
    boolean
    boolean
    Whether the application instance has reported warning or error logs. (Logs marked as read are ignored.)
  • parameters object
    Requested and reported values of the parameters set for this application deployment.
  • parameters.requested.core.autorun
    parameters.reported.core.autorun
    object
    object
    Whether the application should be launched right after its installation on the device.
  • parameters.requested
    reported.core.disable_app
    object
    object
    Whether the application should run on the device or be disabled.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId \
      -d '{
      "disable_app": false
    }'
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "name": "My first app",
      "description": "Runs on test devices",
      "created_at": "1584106887741",
      "permissions": {
        "camera": true
      },
      "user_data": {
        "customValue": 42
      },
      "restart_policy": "always",
      "deployment": {
        "deployment_id": 987654,
        "deployed_at": 1584106888050,
        "device_id": 67890,
        "status": "running",
        "warnings": false,
        "errors": false,
        "parameters": {
          "reported": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          },
          "requested": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          }
        }
      }
    }

    Deploy an application release on a device

    Deploys the specified application release on the target device. If another release of the same application is already installed on the device, it will be replaced by the requested one.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • :releaseNameOrId integer
    ID or url-encoded name of the target application release.
  • disable_app boolean
    optional Whether the application should be disabled at the moment of its deployment. A disabled app won't be starting its installation until it gets enabled.
  • id integer
    ID of the application.
  • name string
    Application's name.
  • description string
    Verbose description of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • permissions object
    Contains the application permissions, for example whether it uses the camera or not.
  • user_data object
    Custom data attached to the application.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • release object
    The details of the application's release the device is running.
  • deployment object
    The details of the application instance on the device.
  • deployment.deployment_id integer
    Unique identifier of this application deployment on the device.
  • deployment.deployed_at timestamp
    Datetime of the application deployment on the device (epoch, milliseconds).
  • deployment.device_id string
    Unique identifier of the device the application is running on.
  • deployment.status string
    Current status of the application reported by the device. Possible values are:
    • "downloading": Device is downloading the application.
    • "building": Application is being installed on the device. For docker-compose apps, docker-compose build and docker-compose pull commands are used.
    • "built": Application has just been installed but parameters.requested.core.autorun was set to false.
    • "launching": Application is starting and will end up in running status if everything goes right. For docker-compose apps, docker-compose up commands is used.
    • "running": Application is currently running on the device. For docker-compose apps, its services are actually running.
    • "restarting": Application is being stopped and will launched right after. For docker-compose apps, the docker-compose down command is used.
    • "stopping": Application is stopping. For docker-compose apps,docker-compose down command is used.
    • "stopped": Application is stopped and waiting to be launched. For docker-compose apps, its services are not running.
    • "failed": Application reported an error during the downloading, building or launching steps. This status will also be reported if its execution is interrupted (exit code > 0).
    • "paused": Execution of the application has been paused, this can occur during an Edge Agent update. For docker-compose apps, the docker-compose pause command is used.
    • "removing": Application is being stopped and its files deleted from the device.
    • "": No status has been reported yet.
  • deployment.errors
    deployment.warnings
    boolean
    boolean
    Whether the application instance has reported warning or error logs. (Logs marked as read are ignored.)
  • parameters object
    Requested and reported values of the parameters set for this application deployment.
  • parameters.requested.core.autorun
    parameters.reported.core.autorun
    object
    object
    Whether the application should be launched right after its installation on the device.
  • parameters.requested
    reported.core.disable_app
    object
    object
    Whether the application should run on the device or be disabled.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/releases/:releaseNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/releases/:releaseNameOrId \
      -d '{
      "disable_app": false
    }'
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "name": "My first app",
      "description": "Runs on test devices",
      "created_at": "1584106887741",
      "permissions": {
        "camera": true
      },
      "user_data": {
        "customValue": 42
      },
      "restart_policy": "always",
      "deployment": {
        "deployment_id": 987654,
        "deployed_at": 1584106888050,
        "device_id": 67890,
        "status": "running",
        "warnings": false,
        "errors": false,
        "parameters": {
          "reported": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          },
          "requested": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          }
        }
      }
    }

    Update application parameters on device

    Updates the value of a parameter that only applies when a specific application is deployed on a specific device.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • key:value string:value
    Name of the parameter to update and its json-valid value. This parameter will be created automatically if it does not exist.

    Multiple key-values can be provided in a single request.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request \
      -d '{
      "customParameter": 42
    }'
    HTTP/1.1 200 OK
    {}

    Delete application parameters on device

    Deletes a parameter that only applies when a specific application is deployed on a specific device.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • key:null string:value
    key is the name of the parameter to delete by assigning it the null value.

    Multiple key-values can be provided in a single request.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request \
      -d '{
      "customParameter": null
    }'
    HTTP/1.1 200 OK
    {}

    Enable application on device

    Starts the execution of an already-deployed application on a device based on the device ID and application ID.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • key:value string:value
    core.disable_app: false to run the application on the device.
    core.autorun: true can be added if the application autorun is currently disabled and pending in "built" status.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request \
      -d '{
      "core.disable_app": false,
      "core.autorun": true
    }'
    HTTP/1.1 200 OK
    {}

    Restart application on device

    Triggers a restart of an application on a device based on the device ID and application ID.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/restart
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/restart
    HTTP/1.1 200 OK
    {}

    Disable application on device

    Stops the execution of an application on a device based on the device ID and application ID.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • key:value string:value
    core.disable_app: true to stop the execution of the application on the device.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/request \
      -d '{
      "core.disable_app": true
    }'
    HTTP/1.1 200 OK
    {}

    Uninstall application from device

    Uninstalls an application from a device based on the application ID.
  • :workspaceId integer
    ID of the target workspace.
  • :deviceNameOrId integer
    ID or url-encoded name of the target device.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • /workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/releases/:releaseNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X DELETE \
     https://hub.stereolabs.com/api/v1/workspaces/:workspaceId/devices/:deviceNameOrId/apps/:appNameOrId/releases/:releaseNameOrId
    HTTP/1.1 200 OK
    {}

    List all application releases

    List all releases for the given application.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • releases array
    List of releases available for this application and their details.
  • /apps/:appNameOrId/releases
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId/releases
    HTTP/1.1 200 OK
    {
      "releases": [
        {
          "id": "131415",
          "app_id": "101112",
          "name": "1.0.0",
          "created_at": "1584106887955",
          "description": "First release",
          "size": 4.2, //KB
          "type": "docker-compose",
          "default_parameters": {
            "reported": {},
            "requested": {
              "core": {
                "autorun": true,
                "disable_app": false
              },
              "customParameter": 42
            }
          },
          "override_policy": {
            "requested": {
              "customParameter": true
            }
          }
        },
        ...
      ]
    }

    Get application release

    Get details about a specific release of an application.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • :releaseNameOrId integer
    ID or url-encoded name of the target release.
  • id integer
    ID of the release.
  • app_id integer
    ID of the application this release is linked to.
  • name string
    Name of this release.
  • created_at timestamp
    Datetime of the release creation (epoch, milliseconds).
  • description string
    Verbose description of this release.
  • size number
    Size in KB of this release file.
  • type string
    Type of the application. Only "docker-compose" is supported for now.
  • default_parameters object
    Default parameters used when deploying this release on a device.
    • requested.core.autorun: true if the application should be launched right after its installation on a device. false if the application should only get installed without launching.
    • requested.core.disable_app: true if the application shouldn't start its installation when it is deployed on a device. false otherwise.
  • override_policy object
    When the release of an app is updated on a device, the override policy defines whether the previous parameters should be kept (default) or overridden, on a per-parameter basis.
    To override a parameter (applying the value from default_parameters), a key of the same name (in the same tree) should be added to the override_policy with a value set to true.
    If the key doesn't exist, or the value is set to false, the previous parameter (from the previous deployment) will be used. Notice that the policy can be applied to the root of an object to override all the parameters within.
  • /apps/:appNameOrId/releases/:releaseNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId/releases/:releaseNameOrId
    HTTP/1.1 200 OK
    {
      "id": "131415",
      "app_id": "101112",
      "name": "1.0.0",
      "created_at": "1584106887955",
      "description": "First release",
      "size": 4.2, //KB
      "type": "docker-compose",
      "default_parameters": {
        "reported": {},
        "requested": {
          "core": {
            "autorun": true,
            "disable_app": false
          },
          "customParameter": 42
        }
      },
      "override_policy": {
        "requested": {
          "customParameter": true
        }
      }
    }

    Upload application release

    Upload a new release as a packaged ZIP file. Information like the release name and its options should be contained in an app.json file at the root of the ZIP file.
  • file form_file_entry
    The ZIP file corresponding to this release.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • id integer
    Unique identifier of the application the release has been uploaded in.
  • team_id string
    Unique identifier of the team owning this application.
  • name string
    Name of the application.
  • created_at timestamp
    Datetime of the application creation (epoch, milliseconds).
  • description string
    Verbose description of the application.
  • permissions object
    Contains the application permissions, like whether it uses the camera or not.
  • auto_install string
    Whether this app should be automatically installed on new devices in the team's workspaces.
  • restart_policy string
    always if the application should restart when it goes out of the running status unexpectedly, or never.
  • user_data object
    Format-free json field to store any custom information related to the application.
  • latest_release object
    Latest release of the application, corresponding to the release that has been uploaded.
  • latest_release.id integer
    ID of the release.
  • latest_release.app_id integer
    ID of the application this release is linked to.
  • latest_release.name string
    Name of this release.
  • latest_release.created_at timestamp
    Datetime of the release creation (epoch, milliseconds).
  • latest_release.description string
    Verbose description of this release.
  • latest_release.size number
    Size in KB of this release file.
  • latest_release.type string
    Type of the application. Only "docker-compose" is supported for now.
  • latest_release.default_parameters object
    Default parameters used when deploying this release on a device.
    • requested.core.autorun: true if the application should be launched right after its installation on a device. false if the application should only get installed without launching.
    • requested.core.disable_app: true if the application shouldn't start its installation when it is deployed on a device. false otherwise.
  • override_policy object
    When the release of an app is updated on a device, the override policy defines whether the previous parameters should be kept (default) or overridden, on a per-parameter basis.
    To override a parameter (applying the value from default_parameters), a key of the same name (in the same tree) should be added to the override_policy with a value set to true.
    If the key doesn't exist, or the value is set to false, the previous parameter (from the previous deployment) will be used. Notice that the policy can be applied to the root of an object to override all the parameters within.
  • /apps/:appNameOrId/releases
    curl -s \
      -H "Content-Type:multipart/form-data" \
      -H "Authorization:Bearer ${access_token}" \
      -X POST \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId/releases \
      --form "file=@/home/user/new_release.zip"
    HTTP/1.1 200 OK
    {
      "id": "101112",
      "team_id": "54321",
      "name": "My first app",
      "created_at": "1584106887741",
      "description": "Runs on test devices",
      "permissions": {
        "camera": true
      },
      "auto_install": false,
      "restart_policy": "always",
      "user_data": {
        "customValue": 42
      },
      "latest_release": {
        "id": "192021",
        "app_id": "101112",
        "name": "2.0.0",
        "created_at": "1584106887955",
        "description": "Second release",
        "size": 1.5, //KB
        "type":"docker-compose",
        "default_parameters": {
          "reported": {},
          "requested": {
            "core": {
              "autorun": true,
              "disable_app": false
            },
            "customParameter": 42
          }
        },
        "override_policy": {
          "requested": {
            "customParameter": true
          }
        }
      }
    }

    Update application release information

    Update the name or the description of an existing application release.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • :releaseNameOrId integer
    ID or url-encoded name of the target release.
  • name string
    optional New name of the application release.
  • description string
    optional Updated verbose description of the release.
  • type string
    optional Updated type of the release. Only "docker-compose" is currently supported.
  • default_parameters string
    optional Updated default parameters to apply on new deployments of this release on devices.
  • override_policy string
    optional Updated override policy that will be applied on new deployments of this release on devices.
  • id integer
    ID of the release.
  • app_id integer
    ID of the application this release is linked to.
  • name string
    Name of this release.
  • created_at timestamp
    Datetime of the release creation (epoch, milliseconds).
  • description string
    Verbose description of this release.
  • size number
    Size in KB of this release file.
  • type string
    Type of the application. Only "docker-compose" is supported for now.
  • default_parameters object
    Default parameters used when deploying this release on a device.
    • requested.core.autorun: true if the application should be launched right after its installation on a device. false if the application should only get installed without launching.
    • requested.core.disable_app: true if the application shouldn't start its installation when it is deployed on a device. false otherwise.
  • override_policy object
    When the release of an app is updated on a device, the override policy defines whether the previous parameters should be kept (default) or overridden, on a per-parameter basis.
    To override a parameter (applying the value from default_parameters), a key of the same name (in the same tree) should be added to the override_policy with a value set to true.
    If the key doesn't exist, or the value is set to false, the previous parameter (from the previous deployment) will be used. Notice that the policy can be applied to the root of an object to override all the parameters within.
  • /apps/:appNameOrId/releases/:releaseNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X PUT \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId/releases/:releaseNameOrId \
      -d '{ 
      "name": "1.2.0",
      "description": "Add streaming feature"
    }'
    HTTP/1.1 200 OK
    {
      "id": "131415",
      "app_id": "101112",
      "name": "1.2.0",
      "created_at": "1584106887955",
      "description": "Add streaming feature",
      "size": 4.2, //KB
      "type": "docker-compose",
      "default_parameters": {
        "reported": {},
        "requested": {
          "core": {
            "autorun": true,
            "disable_app": false
          },
          "customParameter": 42
        }
      },
      "override_policy": {
        "requested": {
          "customParameter": true
        }
      }
    }

    Download application release files

    Download the ZIP file that has been uploaded when creating an application release.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • :releaseNameOrId integer
    ID or url-encoded name of the target release.
  • /apps/:appNameOrId/releases/:releaseNameOrId/download
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId/releases/:releaseNameOrId/download
    HTTP/1.1 200 OK
    application_release.zip file download

    Delete application release

    Delete the release of an application. This will automatically uninstall the application release from any device it is deployed on.
  • :appNameOrId integer
    ID or url-encoded name of the target application.
  • :releaseNameOrId integer
    ID or url-encoded name of the target release.
  • /apps/:appNameOrId/releases/:releaseNameOrId
    curl -s \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer ${access_token}" \
      -X DELETE \
     https://hub.stereolabs.com/api/v1/apps/:appNameOrId/releases/:releaseNameOrId
    HTTP/1.1 200 OK
    {}