Board Connect API - Board Docs
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/1board1info/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 This spec (unauthenticated)
Responses
200
OK
get/openapi.yaml
http://{host}:8843/openapi.yaml
/paths/1v11pair/post Pair with a code shown on the device (manual / human flow)
Request Body schema: application/json required
| code required |
string |
| label 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/1v11pair~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 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/1v11board~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/1v11board~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/1v11board~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/1v11apps/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/1v11apps/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 |
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/1v11apps~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/1v11apps1{id}1launch/post Launch an app by id (APK package name or web-app appId)
Authorizations:
bearerAuth
path Parameters
| id 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/1v11apps1{id}1stop/post Force-stop an APK by package. Web apps cannot be stopped individually (422 stop_unsupported).
Authorizations:
bearerAuth
path Parameters
| id 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/1v11apps~1{id}/delete Uninstall an app by id (APK package name or web-app appId)
Authorizations:
bearerAuth
path Parameters
| id 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/1v11apps1{id}1logs/get Dump recent logs for an app by id (APK package or web-app appId)
Authorizations:
bearerAuth
path Parameters
| id required |
string |
query Parameters
| tag | string |
| level | string 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/1v11webapps/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 |
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/1v11webapps1{appId}1launch/post[deprecated: use POST /v1/apps/{id}/launch] Launch a web app by appId Deprecated
Authorizations:
bearerAuth
path Parameters
| appId required |
string |
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/1v11webapps~1{appId}/delete[deprecated: use DELETE /v1/apps/{id}] Remove a web app by appId Deprecated
Authorizations:
bearerAuth
path Parameters
| appId required |
string |
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/1v11webapps1{appId}1logs/get[deprecated: use GET /v1/apps/{id}/logs] Dump recent logs for a web app (tag BoardWebApp:) Deprecated
Authorizations:
bearerAuth
path Parameters
| appId required |
string |
query Parameters
| level | string 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/1v11screenshot/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/1v11media/post Push a media file to BoardMediaPlayer (multipart)
Authorizations:
bearerAuth
Request Body schema: multipart/form-data required
| file | string |
Responses
200
Pushed
post/v1/media
http://{host}:8843/v1/media
Response samples
- 200
Content type
application/json
Copy
{"name": "string",
"sizeBytes": 0}
/paths/1v11media~1launch/post Open BoardMediaPlayer
Authorizations:
bearerAuth
Responses
204
Launched
post/v1/media/launch
http://{host}:8843/v1/media/launch
/paths/1v11logs~1dump/get Dump recent logs for a bdb-installed package
Authorizations:
bearerAuth
query Parameters
| package required |
string |
| tag | string |
| level | string Enum:"V""D""I""W""E""F" |
Responses
200
Log lines
get/v1/logs/dump
http://{host}:8843/v1/logs/dump
/paths/1v11logs/get Stream logs over WebSocket (token via ?token= query param)
Responses
101
Switching Protocols (WebSocket)
get/v1/logs
http://{host}:8843/v1/logs
/paths/1v11paired-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/1v11paired-clients~1{id}/delete Revoke a paired client
Authorizations:
bearerAuth
path Parameters
| id required |
integer |
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"}