# getAppInfo

Command (Application).

Retrieves version and licence information

Reports what this BeNav installation actually is: application and SDK versions, the map release and
the countries it covers, the licence identifiers, and which optional services the licence enables,
traffic, hybrid routing, address autocomplete, EV points of interest.

The client application can use it to check that a device is fit for the job before relying on a
feature, and support teams can use it to establish what is installed without asking the driver to read
values off a settings screen.

**Worth knowing**

- Fields the licence does not carry are **omitted from the response entirely**
  rather than returned empty, on a perpetual licence there is no `expirationDate` key at
  all. Read the response defensively: the example below shows every field a licence *can*
  carry, not a set that is always present.

**Example: checking coverage before dispatching**

A dispatcher is about to assign a cross-border run. The client application reads
`mapsCoverage` from the device and sees that the installed map covers only France, so it
either assigns the job to a differently-equipped vehicle or triggers a map update first, rather than
discovering the gap when the driver reaches the border.

## Command

```
{
  "jsonrpc": "2.0",
  "method": "getAppInfo",
  "id": "1"
}
```

## Response

### Success

```
{
    "id": "1",
    "result": {
        "purchaseUuid": "502780ac-7d22-427c-9da2-7c4b129130a7",
        "licenseKey": "def6e074-2c94-4c09-936f-59430d7e4aa2",
        "deviceId": "f9c45d75eb7d2704",
        "expirationDate": "Wed Dec 31 12:00:00 GMT+01:00 2025",
        "applicationVersion": "1.3.0",
        "msdkVersion": "2.2.0",
        "mapsVersion": "TomTom 2024.03",
        "mapsCoverage": "FRA|MCO",
        "hybrid": true,
        "traffic": true,
        "autocomplete": "herehlp",
        "evPois": "michelin"
    },
    "jsonrpc": "2.0"
}
```

### Error

Generic errors.
