ThingsConnect REST API
既存の業務システム・自動化ツール(n8n、Power Automate など)・スクリプトから、エッジPC・デバイスの状態、センサの計測値、AI アプリのイベント、保存したクエリの結果を読み出し、カメラの配信や首振りを操作するための REST API です。AI エージェントからは MCP で接続してください。
ベース URL
https://api.thingsconnect.app/api/v1
MCP と同じホストで、管理ダッシュボード(dashboard.thingsconnect.app)とは別です。
認証
組織設定の「API・MCP」タブで発行した API トークンを Authorization ヘッダに付けます。トークンを発行できるのはオーナーと管理者です。
Authorization: Bearer tcn_xxxxxxxx
呼べる範囲はトークンのスコープで決まります。足りないときは 403 を返します。
| スコープ | 呼べるもの |
|---|---|
データ参照(data) |
エッジPC・デバイス・AI アプリ・計測値・イベント・保存クエリ |
デバイス操作(data:write) |
上に加えて、デバイスの名前・メモの変更、RTMP 配信の開始・停止、PTZ 操作 |
撮影(capture) |
撮影ジョブの一覧・実行、実行結果と撮影ログ |
ダッシュボードにログインしたときのセッションでは呼べません。
呼び出してみる
「データ参照」のトークンで、エッジPC の一覧を取得します。
curl -H "Authorization: Bearer $THINGSCONNECT_API_TOKEN" https://api.thingsconnect.app/api/v1/edge-pcs
返ってきた id を使ってデバイスを絞り込み(/devices?edgePcId=...)、センサのデバイスなら計測値の履歴(/devices/{id}/metrics)を取得できます。カメラに追加した AI アプリの結果は、デバイスではなく AI アプリのインスタンス(/ai-app-instances)から取得します。
エラー
エラーは常に次の形で返ります。
{ "error": "Device not found" }
| ステータス | 意味 |
|---|---|
400 |
入力の検証エラー、対象の種類が合わない(カメラでないデバイスに配信を指示した、など) |
401 |
トークンが無い、または無効 |
403 |
トークンのスコープが足りない、または操作が許可されていない |
404 |
対象が無い。他の組織のものも 404 になります |
409 |
今の状態ではできない操作(無効にした撮影ジョブの実行など) |
502 |
エッジPC まで届かなかった、またはエッジPC が失敗を返した |
互換性
/api/v1 の中では、既存のフィールドを消したり意味を変えたりしません。フィールドを足すことはあるので、知らないフィールドは無視してください。
制限
主な上限値は制限値と既定値にまとめています。
https://api.thingsconnect.app/api/v1エッジPC
組織のエッジPC と接続状態。
デバイス
カメラ・センサと、その操作。
- GETデバイスの一覧を取得する
/devices - GETデバイスの詳細を取得する
/devices/{id} - PATCHデバイスの名前・メモ・機器情報を変更する
/devices/{id} - GET計測値の履歴を取得する
/devices/{id}/metrics - POSTRTMP 配信を始める
/devices/{id}/streaming - DELETERTMP 配信を止める
/devices/{id}/streaming - POSTカメラの向きを変える(PTZ)
/devices/{id}/ptz
AI アプリ
カメラに追加した AI アプリ(インスタンス)の結果とイベント。
- GETAI アプリのインスタンスの一覧を取得する
/ai-app-instances - GETAI アプリのインスタンスの最新の結果を取得する
/ai-app-instances/{id} - GETAI アプリの結果の履歴を取得する
/ai-app-instances/{id}/metrics - GETAI アプリのイベントを取得する
/events
データ
保存したクエリ。
撮影
撮影ジョブの実行と結果。