# Sora API

## 概要

Sora の API を実行します。

## Sora との違い

- パッケージ版の Sora とは違い一部利用できない API があります。

## channel_id について

Sora API の channel_id は `{channel_name}@{project_id}` の形式です。

channel_name は好きな文字列を指定できます。 project_id は Sora Cloud のプロジェクト ID です。

## sora-api

**API URL**: 

Sora の API を実行します。

```console
$ curl -sS \
    -X POST \
    https://api.sora-cloud.shiguredo.app/sora-api \
    -H "Authorization: Bearer <API-KEY>" \
    -H "x-sora-target: Sora_20151104.DisconnectChannel" \
    --json '{"channel_id":"sora-cloud@SJW1TPPMQ3JGXM6XD0DTEH77RZDWX0N1"}' \
    | jq .
```

### 利用可能な Sora API

詳細は [Sora ドキュメント](https://sora-doc.shiguredo.jp/) をご確認ください

- [Sora_20151104.DisconnectChannel](https://sora-doc.shiguredo.jp/API_SIGNALING#a87366)
- [Sora_20151104.DisconnectClient](https://sora-doc.shiguredo.jp/API_SIGNALING#e91c0b)
- [Sora_20151104.DisconnectConnection](https://sora-doc.shiguredo.jp/API_SIGNALING#2ec3a0)
- [Sora_20201120.DisconnectChannelByRole](https://sora-doc.shiguredo.jp/API_SIGNALING#39de6a)
- [Sora_20201013.ListChannelConnections](https://sora-doc.shiguredo.jp/API_SIGNALING#d388f3)
- [Sora_20160711.PushChannel](https://sora-doc.shiguredo.jp/API_PUSH#7a5ee4)
- [Sora_20160711.PushClient](https://sora-doc.shiguredo.jp/API_PUSH#15a811)
- [Sora_20160711.PushConnection](https://sora-doc.shiguredo.jp/API_PUSH#48f008)
- [Sora_20201120.PushChannelByRole](https://sora-doc.shiguredo.jp/API_PUSH#bc57a2)
- [Sora_20170529.GetStatsClient](https://sora-doc.shiguredo.jp/API_STATS#ef69ae)
- [Sora_20170529.GetStatsConnection](https://sora-doc.shiguredo.jp/API_STATS#e79b61)
- [Sora_20200807.FocusSpotlightFixed](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#beaf88)
- [Sora_20200807.FocusSpotlight](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#90a256)
- [Sora_20200807.UnfocusSpotlight](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#1390bc)
- [Sora_20200807.ChangeSpotlightNumber](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#17e930)
- [Sora_20211215.RequestSpotlightRid](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#5c2650)
- [Sora_20211215.ResetSpotlightRid](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#680344)
- [Sora_20211215.BatchRequestSpotlightRid](https://sora-doc.shiguredo.jp/API_SPOTLIGHT#a2e06c)
- [Sora_20201005.RequestRtpStream](https://sora-doc.shiguredo.jp/DEPRECATED_API_SIMULCAST#6fe0b3)- 2027 年 12 月廃止予定
  - 代わりに `RequestSimulcastRid` API を利用してください
- [Sora_20201005.ResetRtpStream](https://sora-doc.shiguredo.jp/DEPRECATED_API_SIMULCAST#afba6e)- 2026 年 12 月廃止予定
  - 代わりに `RequestSimulcastRid` API を利用してください
- [Sora_20211215.ListChannelRtcStats](https://sora-doc.shiguredo.jp/API_RTC_STATS#6704c0)
- [Sora_20211215.GetRtcStats](https://sora-doc.shiguredo.jp/API_RTC_STATS#4e8cb0)
- [Sora_20230628.TerminateSession](https://sora-doc.shiguredo.jp/API_SESSION#ba022b)
- [Sora_20230628.ListForwardingFilters](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#a1dd75)
- [Sora_20230628.CreateChannelForwardingFilter](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#fe98d1)
- [Sora_20230628.UpdateChannelForwardingFilter](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#36fc45)
- [Sora_20230628.DeleteChannelForwardingFilter](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#9410fd)
- [Sora_20230628.CreateConnectionForwardingFilter](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#d80a51)
- [Sora_20230628.UpdateConnectionForwardingFilter](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#23ed63)
- [Sora_20230628.DeleteConnectionForwardingFilter](https://sora-doc.shiguredo.jp/API_FORWARDING_FILTER#0d65da)
- [Sora_20231220.StartRecording](https://sora-doc.shiguredo.jp/API_RECORDING#c5b527)
- [Sora_20231220.StopRecording](https://sora-doc.shiguredo.jp/API_RECORDING#fd0de5)
- [Sora_20231220.GetSession](https://sora-doc.shiguredo.jp/API_SESSION#427a59)
- [Sora_20241218.RequestKeyFrame](https://sora-doc.shiguredo.jp/API_CONNECTION#716b40)
- [Sora_20251217.RequestSimulcastRid](https://sora-doc.shiguredo.jp/API_SIMULCAST#7d26ab)
- [Sora_20251217.ChangeSimulcastAuto](https://sora-doc.shiguredo.jp/EXPERIMENTAL_API_SIMULCAST#81b01b)

### 録画 API の制限

以下の録画 API はプロジェクトにオブジェクトストレージ設定が行われていない場合、
または録画機能利用の [制限](recording.html#4a8cb2) に該当する指定を行っていた場合は利用できません。

- Sora_20231220.StartRecording
- Sora_20231220.StopRecording

## シーケンス図

```mermaid
sequenceDiagram
   autonumber
   participant sora as WebRTC SFU Sora
   participant cloud as Sora Cloud
   participant app as アプリケーションサーバー
   app->>+cloud: ListChannelConnections API
   cloud->>+sora: ListChannelConnections API
   sora-->>-cloud: 200 OK
   cloud-->>-app: 200 OK
```
