> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frictio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Frictio Public APIとWebhookの仕様・利用方法

Frictio Public APIとWebhookの仕様・利用方法をまとめたドキュメントです。
ミーティングデータ、Playbook定義、チーム・メンバー情報の取得、イベント発生時の外部システムへの通知に利用できます。

<CardGroup cols={2}>
  <Card title="APIリファレンス" icon="code" href="/api-reference/list-meetings">
    蓄積されたミーティングデータ、Playbook定義、チーム・メンバー情報をREST APIで取得します。
  </Card>

  <Card title="Webhook" icon="bell" href="/webhooks/overview">
    ミーティング終了やプレイブック実行をトリガーに、外部へ通知を送ります。
  </Card>
</CardGroup>

<Warning>
  Frictio Public APIは現在ベータ版のため、スキーマやエンドポイントの仕様が変更される可能性があります。
</Warning>

Frictio Public APIは、Frictioに蓄積されたミーティングデータ、Playbook定義、チーム・メンバー情報をREST APIで提供します。
既存ツールとの連携やカスタムワークフローの構築、ミーティングデータからのインサイト抽出に活用できます。

* **ミーティング** — 商談・通話の一覧取得、日時・種別・参加者によるフィルタリング
* **サマリー・アクションアイテム** — ミーティングごとのチャプター別要約とアクションアイテムの取得
* **文字起こし** — 話者ごとの発言テキスト（ワードレベルのタイミング情報付き）
* **Playbook** — Playbook一覧とTalk Point定義の取得
* **Playbook実行結果** — ミーティングに紐づくPlaybookの質問・回答の取得
* **チーム** — ワークスペース内チーム一覧・詳細、所属メンバーIDの取得
* **メンバー** — ワークスペース内のアクティブメンバー一覧取得
* **CRM連携** — HubSpot / Salesforce と同期されたレコード情報の参照

## データアクセス範囲（v1 visibility ceiling）

Frictio Public API v1 が返却するミーティング関連データは、以下の **visibility ceiling** に従い制限されています。
Teams / Members は `X-Workspace-Id` で指定したワークスペース範囲に制限されています。
クエリパラメータや認証キーの種類によらず、この範囲を超えたデータは返却されません。

| リソース                                  | 返却される範囲                                                                     | 返却されない範囲                                      |
| ------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------- |
| ミーティング（一覧・詳細・transcript・Playbook実行結果） | `visibility_scope = WORKSPACE_ONLY`（全体公開）のみ                                 | `visibility_scope = ATTENDEES_ONLY`（参加者限定）は除外 |
| ミーティング内 Contact（`related_objects`）    | `visibility = PUBLIC`（公開）のみ                                                 | `visibility = PRIVATE`（非公開）は除外                |
| ミーティング内 Company（`related_objects`）    | `visibility = PUBLIC`（公開）のみ                                                 | `visibility = PRIVATE`（非公開）は除外                |
| Playbook                              | `active` パラメータに一致するワークスペース内 Playbook（デフォルトは `active=true`、`active=all` で全件） | visibility の制限なし（ワークスペースで共有）                  |
| Teams                                 | `X-Workspace-Id` のワークスペース内チーム。`member_ids` は Members API の `id` と突合可能       | 他ワークスペースのチーム                                  |
| Members                               | `X-Workspace-Id` のワークスペース内のアクティブメンバー                                        | 非アクティブメンバー、他ワークスペースのメンバー                      |

## 認証

すべてのリクエストに以下の2つのヘッダーを含めてください。

| ヘッダー             | 説明           |
| ---------------- | ------------ |
| `X-Api-Key`      | 認証用APIキー     |
| `X-Workspace-Id` | 対象ワークスペースのID |

### APIキーの取得

アドミン・ビューワーアドミンのワークスペースメンバーは、[Frictio Web App](https://app.frictio.ai/)の管理者向けの設定ページからAPIキーを発行することができます。

<Warning>
  APIキーは発行時に一度だけ表示されます。安全に保管してください。
</Warning>

## レート制限

| エンドポイント                                                      | リクエスト上限    |
| ------------------------------------------------------------ | ---------- |
| `GET /v1/meetings`                                           | 100リクエスト/分 |
| `GET /v1/meetings/{meetingId}`                               | 100リクエスト/分 |
| `GET /v1/meetings/{meetingId}/playbook-results`              | 100リクエスト/分 |
| `GET /v1/meetings/{meetingId}/playbook-results/{playbookId}` | 100リクエスト/分 |
| `GET /v1/meetings/{meetingId}/transcript`                    | 5リクエスト/分   |
| `GET /v1/playbooks`                                          | 100リクエスト/分 |
| `GET /v1/playbooks/{playbookId}`                             | 100リクエスト/分 |
| `GET /v1/playbooks/{playbookId}/results`                     | 100リクエスト/分 |
| `GET /v1/teams`                                              | 100リクエスト/分 |
| `GET /v1/teams/{teamId}`                                     | 100リクエスト/分 |
| `GET /v1/members`                                            | 100リクエスト/分 |

上記の制限はワークスペースごとに適用され、エンドポイント間で共有されません。
制限を超えた場合は `429 Too Many Requests` が返されます。しばらく待ってからリトライしてください。

## ページネーション

Meetings / Playbooks の一覧エンドポイントはカーソルベースのページネーションを採用しています。

| パラメータ    | 型       | デフォルト | 説明                     |
| -------- | ------- | ----- | ---------------------- |
| `limit`  | integer | 30    | 1ページあたりの取得件数（1–50）     |
| `cursor` | string  | —     | 前回レスポンスの `next_cursor` |

```json theme={null}
{
  "data": [...],
  "pagination": {
    "next_cursor": "eyJpZCI6MTIzfQ=="
  }
}
```

`next_cursor` が `null` の場合、次のページはありません。

Teams / Members の一覧エンドポイントはオフセットベースのページネーションを採用しています。

| パラメータ   | 型       | デフォルト | 説明                  |
| ------- | ------- | ----- | ------------------- |
| `page`  | integer | 1     | 取得するページ番号（1始まり）     |
| `limit` | integer | 50    | 1ページあたりの取得件数（1–200） |

```json theme={null}
{
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total_size": 123,
    "total_pages": 3
  }
}
```

## エラー

| ステータス | 説明                      |
| ----- | ----------------------- |
| `401` | APIキーが無効、失効、期限切れ、または未指定 |
| `403` | 対象リソースへのアクセス権限がない       |
| `404` | 指定されたリソースが存在しない         |
| `429` | レート制限超過                 |

エラーレスポンスは以下の形式で返されます。

```json theme={null}
{
  "statusCode": 404,
  "message": "Not Found"
}
```
