# Board Connect device API (1)

HTTP API hosted on a Board device (port 8843) for developer tooling — discovery, pairing, and managing installed apps (APKs) and web-app bundles. Consumed by the Board Connect web UI and board-connect-cli. Served unauthenticated at GET /openapi.yaml for discovery. See board-eng-docs/design/sdk-platform/board-connect-webapp-workflow.md.

## [/paths/~1board~1info/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1board~1info/get) Discovery probe (unauthenticated)

### Responses

**200**

OK

get/board/info

http://{host}:8843/board/info

### Response samples

- 200

Content type

application/json

Copy
Expand all  Collapse all

```
{"name": "string",

"serial": "string",

"model": "string",

"os": "string",

"apiVersions": ["string"],

"capabilities": ["string"]
}
```

## [/paths/~1openapi.yaml/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1openapi.yaml/get) This spec (unauthenticated)

### Responses

**200**

OK

get/openapi.yaml

http://{host}:8843/openapi.yaml

## [/paths/~1v1~1pair/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1pair/post) Pair with a code shown on the device (manual / human flow)

##### Request Body schema: application/json  required

|     |     |
| --- | --- |
| code<br>required | string |
| label<br>required | string |

### Responses

**200**

Paired

**401**

Error

**409**

Error

**429**

Error

post/v1/pair

http://{host}:8843/v1/pair

### Request samples

- Payload

Content type

application/json

Copy

```
{"code": "string",

"label": "string"}
```

### Response samples

- 200
- 401
- 409
- 429

Content type

application/json

Copy

```
{"token": "string",

"id": 0}
```

## [/paths/~1v1~1pair~1request/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1pair~1request/post) Tap-to-approve pairing (agent flow) — long-polls until the user taps Approve on the device

##### Request Body schema: application/json  required

|     |     |
| --- | --- |
| clientName<br>required | string |

### Responses

**200**

Approved

**403**

pairing_disabled (the device setting is off)

**408**

timed out awaiting approval; retry

**429**

Error

post/v1/pair/request

http://{host}:8843/v1/pair/request

### Request samples

- Payload

Content type

application/json

Copy

```
{"clientName": "string"}
```

### Response samples

- 200
- 403
- 408
- 429

Content type

application/json

Copy

```
{"token": "string",

"id": 0}
```

## [/paths/~1v1~1board~1status/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1board~1status/get) Readiness

##### Authorizations:

_bearerAuth_

### Responses

**200**

OK

get/v1/board/status

http://{host}:8843/v1/board/status

### Response samples

- 200

Content type

application/json

Copy

```
{"ready": true}
```

## [/paths/~1v1~1board~1capabilities/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1board~1capabilities/get) Protocol version + capability tags

##### Authorizations:

_bearerAuth_

### Responses

**200**

OK

get/v1/board/capabilities

http://{host}:8843/v1/board/capabilities

### Response samples

- 200

Content type

application/json

Copy
Expand all  Collapse all

```
{"protocolVersion": 0,

"osVersion": "string",

"capabilities": ["string"]
}
```

## [/paths/~1v1~1board~1version/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1board~1version/get) OS version

##### Authorizations:

_bearerAuth_

### Responses

**200**

OK

get/v1/board/version

http://{host}:8843/v1/board/version

### Response samples

- 200

Content type

application/json

Copy

```
{"version": "string"}
```

## [/paths/~1v1~1apps/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps/get) List dev-installed apps (APKs + web apps)

##### Authorizations:

_bearerAuth_

### Responses

**200**

OK

get/v1/apps

http://{host}:8843/v1/apps

### Response samples

- 200

Content type

application/json

Copy
Expand all  Collapse all

```
{"apps": [{"packageName": "string",

"label": "string",

"versionName": "string",

"versionCode": 0,

"kind": "apk",

"appId": "28c365d5-df94-4a54-8217-3ce51d068868"}]}
```

## [/paths/~1v1~1apps/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps/post) Install an app (multipart). The bundle type (APK vs packed web app) is detected by content; the response reports packageName for an APK or appId for a web app.

##### Authorizations:

_bearerAuth_

##### Request Body schema: multipart/form-data  required

|     |     |
| --- | --- |
| file | string <binary> |

### Responses

**200**

Installed

**400**

invalid_bundle / incomplete_transfer

**422**

validation_failed / invalid_apk / ambiguous_bundle / unrecognized_bundle / missing_config / invalid_app_id / missing_entry / no_sdk

**503**

browser_unavailable

post/v1/apps

http://{host}:8843/v1/apps

### Response samples

- 200
- 400
- 422
- 503

Content type

application/json

Copy

```
{"packageName": "string",

"appId": "28c365d5-df94-4a54-8217-3ce51d068868"}
```

## [/paths/~1v1~1apps~1cleanup/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps~1cleanup/post) Uninstall all dev-managed apps

##### Authorizations:

_bearerAuth_

### Responses

**200**

OK

post/v1/apps/cleanup

http://{host}:8843/v1/apps/cleanup

### Response samples

- 200

Content type

application/json

Copy

```
{"removed": 0}
```

## [/paths/~1v1~1apps~1{id}~1launch/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps~1{id}~1launch/post) Launch an app by id (APK package name or web-app appId)

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| id<br>required | string |

### Responses

**204**

Launched

**404**

Error

post/v1/apps/{id}/launch

http://{host}:8843/v1/apps/{id}/launch

### Response samples

- 404

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1apps~1{id}~1stop/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps~1{id}~1stop/post) Force-stop an APK by package. Web apps cannot be stopped individually (422 stop_unsupported).

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| id<br>required | string |

### Responses

**204**

Stopped

**404**

Error

**422**

stop_unsupported

post/v1/apps/{id}/stop

http://{host}:8843/v1/apps/{id}/stop

### Response samples

- 404
- 422

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1apps~1{id}/delete](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps~1{id}/delete) Uninstall an app by id (APK package name or web-app appId)

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| id<br>required | string |

### Responses

**204**

Removed

**404**

Error

delete/v1/apps/{id}

http://{host}:8843/v1/apps/{id}

### Response samples

- 404

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1apps~1{id}~1logs/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1apps~1{id}~1logs/get) Dump recent logs for an app by id (APK package or web-app appId)

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| id<br>required | string |

##### query Parameters

|     |     |
| --- | --- |
| tag | string |
| level | string<br>Enum:"V""D""I""W""E""F" |

### Responses

**200**

Log lines

**404**

Error

get/v1/apps/{id}/logs

http://{host}:8843/v1/apps/{id}/logs

### Response samples

- 404

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1webapps/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1webapps/post)[deprecated: use POST /v1/apps] Install or update a web-app bundle (multipart zip)  Deprecated

##### Authorizations:

_bearerAuth_

##### Request Body schema: multipart/form-data  required

|     |     |
| --- | --- |
| file | string <binary> |

### Responses

**200**

Installed

**400**

invalid_bundle / incomplete_transfer

**422**

missing_config / invalid_app_id / missing_entry / no_sdk

**503**

browser_unavailable

post/v1/webapps

http://{host}:8843/v1/webapps

### Response samples

- 200
- 400
- 422
- 503

Content type

application/json

Copy

```
{"packageName": "string",

"appId": "28c365d5-df94-4a54-8217-3ce51d068868"}
```

## [/paths/~1v1~1webapps~1{appId}~1launch/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1webapps~1{appId}~1launch/post)[deprecated: use POST /v1/apps/{id}/launch] Launch a web app by appId  Deprecated

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| appId<br>required | string <uuid> |

### Responses

**204**

Launched

**404**

webapp_not_found

post/v1/webapps/{appId}/launch

http://{host}:8843/v1/webapps/{appId}/launch

### Response samples

- 404

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1webapps~1{appId}/delete](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1webapps~1{appId}/delete)[deprecated: use DELETE /v1/apps/{id}] Remove a web app by appId  Deprecated

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| appId<br>required | string <uuid> |

### Responses

**204**

Removed

**404**

webapp_not_found

delete/v1/webapps/{appId}

http://{host}:8843/v1/webapps/{appId}

### Response samples

- 404

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1webapps~1{appId}~1logs/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1webapps~1{appId}~1logs/get)[deprecated: use GET /v1/apps/{id}/logs] Dump recent logs for a web app (tag BoardWebApp:<appId>)  Deprecated

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| appId<br>required | string <uuid> |

##### query Parameters

|     |     |
| --- | --- |
| level | string<br>Enum:"V""D""I""W""E""F" |

### Responses

**200**

Log lines

**404**

webapp_not_found

get/v1/webapps/{appId}/logs

http://{host}:8843/v1/webapps/{appId}/logs

### Response samples

- 404

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1screenshot/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1screenshot/get) Capture a PNG screenshot (rate-limited 1/sec)

##### Authorizations:

_bearerAuth_

### Responses

**200**

PNG

**429**

Error

get/v1/screenshot

http://{host}:8843/v1/screenshot

### Response samples

- 429

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```

## [/paths/~1v1~1media/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1media/post) Push a media file to BoardMediaPlayer (multipart)

##### Authorizations:

_bearerAuth_

##### Request Body schema: multipart/form-data  required

|     |     |
| --- | --- |
| file | string <binary> |

### Responses

**200**

Pushed

post/v1/media

http://{host}:8843/v1/media

### Response samples

- 200

Content type

application/json

Copy

```
{"name": "string",

"sizeBytes": 0}
```

## [/paths/~1v1~1media~1launch/post](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1media~1launch/post) Open BoardMediaPlayer

##### Authorizations:

_bearerAuth_

### Responses

**204**

Launched

post/v1/media/launch

http://{host}:8843/v1/media/launch

## [/paths/~1v1~1logs~1dump/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1logs~1dump/get) Dump recent logs for a `bdb`-installed package

##### Authorizations:

_bearerAuth_

##### query Parameters

|     |     |
| --- | --- |
| package<br>required | string |
| tag | string |
| level | string<br>Enum:"V""D""I""W""E""F" |

### Responses

**200**

Log lines

get/v1/logs/dump

http://{host}:8843/v1/logs/dump

## [/paths/~1v1~1logs/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1logs/get) Stream logs over WebSocket (token via ?token= query param)

### Responses

**101**

Switching Protocols (WebSocket)

get/v1/logs

http://{host}:8843/v1/logs

## [/paths/~1v1~1paired-clients/get](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1paired-clients/get) List paired clients

##### Authorizations:

_bearerAuth_

### Responses

**200**

OK

get/v1/paired-clients

http://{host}:8843/v1/paired-clients

### Response samples

- 200

Content type

application/json

Copy
Expand all  Collapse all

```
{"clients": [{"id": 0,

"label": "string",

"pairedAt": 0,

"lastSeenAt": 0,

"sourceIp": "string"}]}
```

## [/paths/~1v1~1paired-clients~1{id}/delete](https://docs.dev.board.fun/tools/board-connect-api#/paths/~1v1~1paired-clients~1{id}/delete) Revoke a paired client

##### Authorizations:

_bearerAuth_

##### path Parameters

|     |     |
| --- | --- |
| id<br>required | integer <int64> |

### Responses

**204**

Revoked

**400**

Error

delete/v1/paired-clients/{id}

http://{host}:8843/v1/paired-clients/{id}

### Response samples

- 400

Content type

application/json

Copy

```
{"error": "string",

"message": "string"}
```
