---
seo:
  description: 既存の業務システム・自動化ツール（n8n、Power Automate など）・スクリプトから、エッジPC・デバイスの状態、センサの計測値、AI…
sidebar:
  label: Overview
title: ThingsConnect REST API
---
既存の業務システム・自動化ツール（n8n、Power Automate など）・スクリプトから、エッジPC・デバイスの状態、センサの計測値、AI アプリのイベント、保存したクエリの結果を読み出し、カメラの配信や首振りを操作するための REST API です。AI エージェントからは [MCP](/docs/mcp) で接続してください。

## ベース URL

```
https://api.thingsconnect.app/api/v1
```

[MCP](/docs/mcp/setup) と同じホストで、管理ダッシュボード（`dashboard.thingsconnect.app`）とは別です。

## 認証

[組織設定](/docs/guides/organization#api-トークン)の「API・MCP」タブで発行した API トークンを `Authorization` ヘッダに付けます。トークンを発行できるのはオーナーと管理者です。

```
Authorization: Bearer tcn_xxxxxxxx
```

呼べる範囲はトークンのスコープで決まります。足りないときは `403` を返します。

| スコープ | 呼べるもの |
| --- | --- |
| データ参照（`data`） | エッジPC・デバイス・AI アプリ・計測値・イベント・保存クエリ |
| デバイス操作（`data:write`） | 上に加えて、デバイスの名前・メモの変更、RTMP 配信の開始・停止、PTZ 操作 |
| 撮影（`capture`） | 撮影ジョブの一覧・実行、実行結果と撮影ログ |

ダッシュボードにログインしたときのセッションでは呼べません。

## 呼び出してみる

「データ参照」のトークンで、エッジPC の一覧を取得します。

```sh
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`）から取得します。

## エラー

エラーは常に次の形で返ります。

```json
{ "error": "Device not found" }
```

| ステータス | 意味 |
| --- | --- |
| `400` | 入力の検証エラー、対象の種類が合わない（カメラでないデバイスに配信を指示した、など） |
| `401` | トークンが無い、または無効 |
| `403` | トークンのスコープが足りない、または操作が許可されていない |
| `404` | 対象が無い。他の組織のものも `404` になります |
| `409` | 今の状態ではできない操作（無効にした撮影ジョブの実行など） |
| `502` | エッジPC まで届かなかった、またはエッジPC が失敗を返した |

## 互換性

`/api/v1` の中では、既存のフィールドを消したり意味を変えたりしません。フィールドを足すことはあるので、知らないフィールドは無視してください。

## 制限

主な上限値は[制限値と既定値](/docs/reference/limits)にまとめています。

Version 1.0.0

Base URL: `https://api.thingsconnect.app/api/v1`

## エッジPC

組織のエッジPC と接続状態。

- [`GET /edge-pcs`](/docs/api/エッジpc/list-edge-pcs) — エッジPC の一覧を取得する.

## デバイス

カメラ・センサと、その操作。

- [`GET /devices`](/docs/api/デバイス/list-devices) — デバイスの一覧を取得する.
- [`GET /devices/{id}`](/docs/api/デバイス/get-device) — デバイスの詳細を取得する.
- [`PATCH /devices/{id}`](/docs/api/デバイス/update-device) — デバイスの名前・メモ・機器情報を変更する.
- [`GET /devices/{id}/metrics`](/docs/api/デバイス/get-device-metrics) — 計測値の履歴を取得する.
- [`POST /devices/{id}/streaming`](/docs/api/デバイス/start-streaming) — RTMP 配信を始める.
- [`DELETE /devices/{id}/streaming`](/docs/api/デバイス/stop-streaming) — RTMP 配信を止める.
- [`POST /devices/{id}/ptz`](/docs/api/デバイス/control-ptz) — カメラの向きを変える（PTZ）.

## AI アプリ

カメラに追加した AI アプリ（インスタンス）の結果とイベント。

- [`GET /ai-app-instances`](/docs/api/ai-アプリ/list-ai-app-instances) — AI アプリのインスタンスの一覧を取得する.
- [`GET /ai-app-instances/{id}`](/docs/api/ai-アプリ/get-ai-app-instance) — AI アプリのインスタンスの最新の結果を取得する.
- [`GET /ai-app-instances/{id}/metrics`](/docs/api/ai-アプリ/get-ai-app-instance-metrics) — AI アプリの結果の履歴を取得する.
- [`GET /events`](/docs/api/ai-アプリ/list-events) — AI アプリのイベントを取得する.

## データ

保存したクエリ。

- [`GET /queries`](/docs/api/データ/list-queries) — 保存したクエリの一覧を取得する.
- [`POST /queries/{id}/run`](/docs/api/データ/run-saved-query) — 保存したクエリを実行する.

## 撮影

撮影ジョブの実行と結果。

- [`GET /capture/jobs`](/docs/api/撮影/list-capture-jobs) — 撮影ジョブの一覧を取得する.
- [`POST /capture/jobs/{id}/run`](/docs/api/撮影/run-capture-job) — 撮影ジョブを実行する.
- [`GET /capture/runs/{id}`](/docs/api/撮影/get-capture-run) — 撮影ジョブの実行結果を取得する.
- [`GET /capture/deliveries`](/docs/api/撮影/list-capture-deliveries) — 撮影ログを取得する.
