> This page is for プラットフォーム, version レガシー.
> For other versions, use one of these documentation indexes:
> - V4 (default): https://developer.frame.io/platform/v4/llms.txt
> - V4 Experimental: https://developer.frame.io/platform/v4-experimental/llms.txt
> - レガシー: https://developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.frame.io/_mcp/server.

# 重要な概念

## API 構造
Frame.io API は、レート制限、リソースコレクションのページネーション、バージョン管理、エラーなど、一般的な概念をサポートしています。このセクションでは、それぞれの固有な部分について説明します。
### 整理とスタイル
API は、一般的な [REST](https://restfulapi.net/) 原則を中心にして整理されています。すべてのリクエストは SSL によって行う必要があります。エラーを含む、すべてのリクエストおよび応答本文は、JSON でエンコードされます。

特に指定しない限り、API メソッドは、次に準拠します。
  * 値のないプロパティは、未定義ではなく `null` を使用します
  * 属性名には、「スネークケース」が使用されます（例：`first_name`）
  * タイムスタンプは、ISO-8601 形式でレンダリングされます（例：`2016-02-03T16:38:46.985Z`）
### パスの規則
アカウント／チーム／プロジェクト／アセット／コメント

一般的に、Frame.io API のリソースパスは、1 つの親レベル内まで、上記の階層モデルに従います。直感的に使用できる場所では、API は、論理的に言えば、厳密に所有されているオブジェクトのスタンドアロンリソースパスをサポートしています。

例えば、Frame.io API は、次の両方のパスをサポートしています。
 * `GET /accounts/:id/teams` --アカウントのすべてのチームを返します。
 * `GET /teams` --呼び出し元ユーザーのすべてのチームを返します。
 * `GET /teams/:id` --特定のチームに関する詳細を返します。

もう 1 つの例：コメントは、アセットコンテキスト外ではあまり意味がないため、コメント収集メソッドおよびコメント作成メソッドは、アセットスコープ内に存在します。ただし、コメントを更新または削除すると、アセットコンテキストはそれほど意味がなく、リソースパスから省略されます。
 * `GET /assets/:id/comments`
 * `POST /assets/:id/comments`
 * `PUT /comments/:id`
 * `DELETE /comments/:id`

## スコープ
OAuth2.0 を介してトークンを取得するか、[開発者ポータル](https://developer.frame.io)を介して直接取得するかにかかわらず、すべての API トークンは、「スコープ」の明示的なリストに関連付けられている必要があります。スコープは、リソース（`Asset` など）とアクション（`create` など）の組み合わせを参照し、ドット表記で表現されます。

例えば、`asset.create` スコープを持つトークンは、新しいアセットを作成できます。

開発者トークンで実装を使用している場合、スコープが設定され、アクセストークン自体に割り当てられます。OAuth アプリケーションを使用している場合、アプリケーションのスコープが定義され、ユーザーは、アプリケーションを初めて操作するとき、リクエストされたスコープで動作する権限をアプリケーションに付与することに同意します。

開発者トークンとアプリケーションで使用可能なスコープには、次が含まれます（一部のスコープは、すべてのユーザーが使用できるわけではなく、問題が発生したときに呼び出されることに注意してください）。

| スコープカテゴリ| 説明|
|----------|----------|
| アカウント、ユーザー、およびチーム| アクセスできるアカウントおよびチームに関する情報を取得します。認証されたユーザーが管理者などの場合、アカウント内の追加ユーザーおよびチームに関する情報にアクセスできる場合があります。  <br></br>__メモ__：チームを更新（Webhook の管理など）するには、チームマネージャーまたはアカウント管理者の役割が必要です。|
| プロジェクトとアセット| プロジェクトの基本情報の取得、ユーザーのメンバーシップの確認または更新、アセットの作成または更新を行います|
| コメント| アセットのコメントを取得、作成、削除するか、特定のコメントへの返信を作成します。<br></br>__メモ：__コメントを更新または削除するリクエストは、コメント作成者によって実行される必要があります。|
| レビューリンク| レビューリンクの設定を作成または管理します。<br></br>__メモ：__レビューリンクは、明示的なチームまたはプロジェクトアクセスを必要とせずに、1 個の URL を介してアセットを収集し、フィードバック用に送信するための主要な Frame.io 機能です。|
| Webhook| Webhook は、Frame.io 内で発生するイベントを活用して、外部システムに処理、API コールバック、そして最終的にはワークフローの自動化用に送信できる通知に変換する方法を提供します。|
| 監査ログ| Frame.io は、そのアプリケーションで取得されたアクティビティの大部分のログを公開しています。これには、主要なリソースの基本的な CRUD と、いくつかの特別な抽象化（例： `AssetVersioned`）の両方が含まれます。ログにアクセスするには、管理者である必要があります。|
| プレゼンテーション| 既存のプレゼンテーションページで、オプションおよびアセットを作成または編集します。

## ページネーション
結果のコレクションを返す API メソッドは、常にページネーションされます。ページネーションされた結果を期待するすべてのメソッドは、次のクエリパラメーターに応答し、次のヘッダー属性を返します。

| 説明| クエリパラメーター| ヘッダー属性|
|----------|----------|----------|
| ページサイズ| `page_size`| `per-page`|
| ページ番号| `page`| `page-number`|
| ページ数| 該当なし| `total-pages`|
| 合計数| 該当なし| `total`|

さらに、ページネーションされた結果には `Link` 、次の情報を含んだ応答ヘッダー（[RFC-5988 を参照](https://tools.ietf.org/html/rfc5988)）が含まれます。

* `next` --対応する URL は、次のページへのリンクです。
* `prev` --対応する URL は、前のページへのリンクです。
* `last` --対応する URL は、最後のページへのリンクです。

__メモ：__ `next` も `prev` リンクも存在しない場合、返された最初のページが唯一のページであることを示します。