# Litmus Edge Manager 3.0.x - Admin Console: Asset Hub

## Get Asset Hub Settings

**GET** `{{LEM_adminURL}}/admin/v1/asset-hub/settings`

> **New in 3.0.**

# Get Asset Hub Settings

Asset Hub connects LEM to the Litmus portal's catalog of asset models, which companies can then browse and import (see `Digital Twins > Asset Hub`). This returns the connection settings and their live state. The client secret is never returned.
## Endpoint

```http
GET {{LEM_adminURL}}/admin/v1/asset-hub/settings
```
## Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

| URL prefix | Auth header |
|---|---|
| `{{LEM_URL}}/api/v1/...` (main fleet API) | `X-AuthToken: <token>` |
| `{{LEM_adminURL}}/admin/v1/...` (admin console, port 8446) | `X-AuthToken: <token>` |
| `{{LEM_URL}}/mpcs/...` (Marketplace Catalog) | `Authorization: <token>` (3.0.x also accepts `X-AuthToken`) |
## Response

```json
{
  "configured": false,
  "portalUrl": "https://portal.litmus.io",
  "clientId": "",
  "state": "NOT_CONFIGURED",
  "scopes": null,
  "lastVerifiedAt": null
}
```

## Errors

| HTTP status         | When it happens                                                                |
|---------------------|--------------------------------------------------------------------------------|
| `400 Bad Request`   | Missing or malformed query/body parameter.                                     |
| `401 Unauthorized`  | Missing or invalid credentials.                                                |
| `403 Forbidden`     | Token lacks permission for this operation.                                     |
| `404 Not Found`     | Target entity does not exist.                                                  |
| `5xx`               | Service is unreachable, restarting, or internally errored. Inspect device logs under `System > Support`. |

> **TLS note**: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.


### Response

**Status**: 200 OK

```json
{
  "configured": false,
  "portalUrl": "https://portal.litmus.io",
  "clientId": "",
  "state": "NOT_CONFIGURED",
  "scopes": null,
  "lastVerifiedAt": null
}
```

---

## Save Asset Hub Settings

**POST** `{{LEM_adminURL}}/admin/v1/asset-hub/settings`

> **New in 3.0.**

# Save Asset Hub Settings

Verifies portal credentials and, if they work, saves them as the Asset Hub connection.
## Endpoint

```http
POST {{LEM_adminURL}}/admin/v1/asset-hub/settings
```
## Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

| URL prefix | Auth header |
|---|---|
| `{{LEM_URL}}/api/v1/...` (main fleet API) | `X-AuthToken: <token>` |
| `{{LEM_adminURL}}/admin/v1/...` (admin console, port 8446) | `X-AuthToken: <token>` |
| `{{LEM_URL}}/mpcs/...` (Marketplace Catalog) | `Authorization: <token>` (3.0.x also accepts `X-AuthToken`) |
## Request body

```json
{ "clientId": "<portal client id>", "clientSecret": "<portal client secret>" }
```

## Response

The updated settings, as in `Get Asset Hub Settings`.
## Errors

| HTTP status         | When it happens                                                                |
|---------------------|--------------------------------------------------------------------------------|
| `400 Bad Request`   | Missing or malformed query/body parameter.                                     |
| `401 Unauthorized`  | Missing or invalid credentials.                                                |
| `403 Forbidden`     | Token lacks permission for this operation.                                     |
| `404 Not Found`     | Target entity does not exist.                                                  |
| `5xx`               | Service is unreachable, restarting, or internally errored. Inspect device logs under `System > Support`. |

> **TLS note**: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.


### Request Body

```json
{
  "clientId": "string",
  "clientSecret": "string"
}
```

---

## Delete Asset Hub Settings

**DELETE** `{{LEM_adminURL}}/admin/v1/asset-hub/settings`

> **New in 3.0.**

# Delete Asset Hub Settings

Removes the saved Asset Hub credentials, disconnecting LEM from the portal catalog.
## Endpoint

```http
DELETE {{LEM_adminURL}}/admin/v1/asset-hub/settings
```
## Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

| URL prefix | Auth header |
|---|---|
| `{{LEM_URL}}/api/v1/...` (main fleet API) | `X-AuthToken: <token>` |
| `{{LEM_adminURL}}/admin/v1/...` (admin console, port 8446) | `X-AuthToken: <token>` |
| `{{LEM_URL}}/mpcs/...` (Marketplace Catalog) | `Authorization: <token>` (3.0.x also accepts `X-AuthToken`) |
## Errors

| HTTP status         | When it happens                                                                |
|---------------------|--------------------------------------------------------------------------------|
| `400 Bad Request`   | Missing or malformed query/body parameter.                                     |
| `401 Unauthorized`  | Missing or invalid credentials.                                                |
| `403 Forbidden`     | Token lacks permission for this operation.                                     |
| `404 Not Found`     | Target entity does not exist.                                                  |
| `5xx`               | Service is unreachable, restarting, or internally errored. Inspect device logs under `System > Support`. |

> **TLS note**: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.


---

## Validate Asset Hub Settings

**POST** `{{LEM_adminURL}}/admin/v1/asset-hub/settings/validate`

> **New in 3.0.**

# Validate Asset Hub Settings

Checks portal credentials without saving them.
## Endpoint

```http
POST {{LEM_adminURL}}/admin/v1/asset-hub/settings/validate
```
## Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

| URL prefix | Auth header |
|---|---|
| `{{LEM_URL}}/api/v1/...` (main fleet API) | `X-AuthToken: <token>` |
| `{{LEM_adminURL}}/admin/v1/...` (admin console, port 8446) | `X-AuthToken: <token>` |
| `{{LEM_URL}}/mpcs/...` (Marketplace Catalog) | `Authorization: <token>` (3.0.x also accepts `X-AuthToken`) |
## Request body

Same as `Save Asset Hub Settings`.
## Errors

| HTTP status         | When it happens                                                                |
|---------------------|--------------------------------------------------------------------------------|
| `400 Bad Request`   | Missing or malformed query/body parameter.                                     |
| `401 Unauthorized`  | Missing or invalid credentials.                                                |
| `403 Forbidden`     | Token lacks permission for this operation.                                     |
| `404 Not Found`     | Target entity does not exist.                                                  |
| `5xx`               | Service is unreachable, restarting, or internally errored. Inspect device logs under `System > Support`. |

> **TLS note**: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.


### Request Body

```json
{
  "clientId": "string",
  "clientSecret": "string"
}
```

---

## Resume Asset Hub Telemetry

**POST** `{{LEM_adminURL}}/admin/v1/asset-hub/telemetry/unpark`

> **New in 3.0.**

# Resume Asset Hub Telemetry

Re-queues Asset Hub telemetry events that LEM parked (held back) instead of sending to the portal, so they are sent again.
## Endpoint

```http
POST {{LEM_adminURL}}/admin/v1/asset-hub/telemetry/unpark
```
## Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

| URL prefix | Auth header |
|---|---|
| `{{LEM_URL}}/api/v1/...` (main fleet API) | `X-AuthToken: <token>` |
| `{{LEM_adminURL}}/admin/v1/...` (admin console, port 8446) | `X-AuthToken: <token>` |
| `{{LEM_URL}}/mpcs/...` (Marketplace Catalog) | `Authorization: <token>` (3.0.x also accepts `X-AuthToken`) |
## Errors

| HTTP status         | When it happens                                                                |
|---------------------|--------------------------------------------------------------------------------|
| `400 Bad Request`   | Missing or malformed query/body parameter.                                     |
| `401 Unauthorized`  | Missing or invalid credentials.                                                |
| `403 Forbidden`     | Token lacks permission for this operation.                                     |
| `404 Not Found`     | Target entity does not exist.                                                  |
| `5xx`               | Service is unreachable, restarting, or internally errored. Inspect device logs under `System > Support`. |

> **TLS note**: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.


---

