# Apps API

An AuterionOS app can use multiple APIs. The available APIs are determined by the target AuterionOS version, as well as the used API level specified in the app.

## Specifying API versions

Each AuterionOS app targets a specific API level. The API level an app targets, is specified in the `auterion-app.yml` file like so:

```
auterion-api-version: 2
```

## Available API versions

The following table identifies the feature sets of the different Auterion Apps API versions. Both versions are supported by auterion-cli, but apps targeting older versions of AuterionOS will have to be restricted to older API versions.

### Minimum AuterionOS version per API level

Newer versions of the Apps API are supported by more recent AuterionOS releases.

<table><thead><tr><th width="211">Apps API Version</th><th width="270">Minimum AuterionOS</th></tr></thead><tbody><tr><td>v1</td><td>2.7</td></tr><tr><td>v2</td><td>2.10</td></tr><tr><td>v3</td><td>3.2.9</td></tr><tr><td>v4</td><td>3.4.0</td></tr><tr><td>v6</td><td>4.1.0</td></tr><tr><td>v7</td><td>4.3.0</td></tr></tbody></table>

### Feature comparison of API versions

<table><thead><tr><th width="269.3333333333333">Feature</th><th width="90" data-type="checkbox">API v1</th><th width="90" data-type="checkbox">API v2</th><th width="90" data-type="checkbox">API v3</th><th width="91" data-type="checkbox">API v4</th><th width="93" data-type="checkbox">API v6</th><th data-type="checkbox">API v7</th></tr></thead><tbody><tr><td>Host Docker Network</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td>Virtual Docker Network, bridged</td><td>false</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="sensor-data">Sensor Data</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="payload-manager">Video Stream</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="photos">Photos</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="peripherals-hardware">Hardware Peripherals</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="file-storage">Persistent storage</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="communicating-with-the-autopilot">MAVLink</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="compose-override">Native Docker Compose</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="app-settings">App settings</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="user-interfaces-web">User Web Interfaces</a></td><td>false</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="ssh-access">Debugging Apps with SSH</a></td><td>false</td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="dds-ros2-configuration">DDS/ROS2 Configuration</a></td><td>false</td><td>false</td><td>false</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="build-arguments">Build Arguments</a></td><td>false</td><td>false</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="logging/logging-ros2-messages">Logging App messages</a></td><td>false</td><td>false</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="../auterion-sdk">Auterion SDK</a></td><td>false</td><td>false</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="app-settings">Parameters</a></td><td>false</td><td>false</td><td>false</td><td>false</td><td>true</td><td>true</td></tr><tr><td><a href="mountsets">Mountsets</a></td><td>false</td><td>false</td><td>false</td><td>false</td><td>false</td><td>true</td></tr></tbody></table>

For now, all API versions are supported. Some future versions of AuterionOS may lose support for older API versions. APIs within their version are stable, but APIs may change with newer API versions.
