Figma│Web API(REST API)とPlugin APIの違い│どちらでしか取得できない情報まとめ

Figma には Web API(REST API)デスクトップ/Webアプリ上で動作する Plugin API の2種類の開発向けインターフェースがあります。

どちらもデザインファイルにアクセスできる点は共通ですが、取得・操作できる情報や機能には明確な違いがあります。

本記事では、「どちらか一方でしか取得・操作できない情報」 に焦点をあてて整理します。

目次

REST API(Web API)でのみ取得できる情報

REST API(Web API)でのみ取得できる情報をまとめました。

コメント情報の読み書き

デザインファイルに紐づくコメントを取得・投稿できます。Plugin APIではコメントの参照や投稿はできません。

{
  "comments": [
    {
      "id": "123:45",
      "message": "このボタンの色を青にしてください",
      "created_at": "2025-08-09T02:15:00Z",
      "user": { "handle": "designer@example.com" }
    }
  ]
}

ファイルメタデータ(バージョン履歴・チーム情報・権限、サムネイルURLなど)

ファイルが所属するチーム、プロジェクトの情報、アクセス権限、バージョン履歴などを取得可能です。

{
  "name": "トップページデザイン",
  "lastModified": "2025-08-08T12:00:00Z",
  "thumbnailUrl": "https://figma-alpha.imgix.net/...",
  "version": "120:0"
}

複数ファイルや複数プロジェクトへの同時アクセス

チームキーを用いて一括取得できます。Plugin APIは現在開いているファイルに限定されます。

{
  "files": [
    { "key": "AbCdEf123", "name": "ホームページ", "last_modified": "2025-08-08T10:00:00Z" },
    { "key": "GhIjKl456", "name": "商品ページ", "last_modified": "2025-08-07T15:30:00Z" }
  ]
}

画像レンダリング(PNG/SVG/JPG出力)

ファイルやノードを画像形式でエクスポートできます。

{ "images": { "12:34": "https://figma-alpha.imgix.net/..." } }

Plugin APIでのみ取得・操作できる情報・機能

Plugin APIでのみ取得・操作できる情報・機能をまとめました。

デザインのリアルタイム編集

レイヤー構造、テキスト、カラー、位置などを直接編集可能です。REST APIは読み取り専用。

const rect = figma.createRectangle();
rect.x = 100;
rect.y = 100;
rect.resize(200, 100);
rect.fills = [{ type: 'SOLID', color: { r: 1, g: 0, b: 0 } }];
figma.currentPage.appendChild(rect);

ノードプロパティや階層構造の操作

レイヤーの追加・削除、プロパティ変更などファイル内容を自在に操作できます。

const selection = figma.currentPage.selection[0];
console.log(selection.name); // 選択中レイヤーの名前
console.log(selection.width, selection.height); // サイズ

スタイルやコンポーネントのインポート

importComponentByKeyAsync() でチームライブラリからコンポーネントを読み込み可能(制限あり)。

const component = await figma.importComponentByKeyAsync("1234abcd5678efgh9012ijkl3456mnop");
const instance = component.createInstance();
figma.currentPage.appendChild(instance);

フォントの読み込みと利用

loadFontAsync() により利用可能なフォントを読み込み、テキスト編集に利用できます。

await figma.loadFontAsync({ family: "Roboto", style: "Regular" });
const text = figma.createText();
text.characters = "こんにちは、Figma!";

プラグイン専用UIとネットワークアクセス

HTML/CSS/JavaScriptによるUIを構築し、外部APIと通信できます(許可ドメインのみ)。

// plugin code
figma.ui.postMessage({ type: 'export-complete', data: { url: 'https://...' } });

// ui.html
window.onmessage = (event) => {
  if (event.data.pluginMessage.type === 'export-complete') {
    console.log(event.data.pluginMessage.data.url);
  }
};

動的ページ読み込みへの対応

大規模ファイルでは必要なページのみ非同期読み込み可能です。

Dev Modeでの読み取り専用動作

編集はできませんが、コード生成やアセット取得などに利用可能です。

比較表

比較表として、まとめました。

項目REST API(Web)Plugin API
コメント操作×
メタデータ取得×
複数ファイルアクセス×
画像レンダリング×
デザイン編集×
ノード操作×
スタイル/コンポーネントインポート×
フォント読み込み×
プラグインUI/ネットワーク×
動的ページ読み込み×
Dev Mode限定機能

まとめ

  • コメントやメタデータ、バージョン履歴を扱う → REST APIが有効
  • デザインの直接操作や編集を行う → Plugin APIが有効

目的に応じて使い分けることで、Figma上での開発効率を大きく向上させられます。

Figmaの素材集

サービス

Service

デザイン制作に関心がありましたら、ぜひ詳細をご覧ください。

  • URLをコピーしました!
目次