3行でいうと

  • 公式の開発者向け資料は、REST APIの基本のURLを https://public-api.gamma.app/v1.0、APIキーを X-API-KEY のヘッダーで送る、と書いています。OAuthのBearerトークンも同じエンドポイントで使える、とも書かれています(Bearerの付け方の例は、そのページにありません)。
  • APIキーの取り方は、公式の複数のページで書き方が違います(開発者向け資料トップの「Settings > API Keys」、「Explore the API」の「Account Settings > API Keys」、ヘルプ「Settings and Members」の「API key」タブ、ダッシュボードの説明の「Settings」→「Personal」→「My API keys」)。手元の画面と照らしてください。
  • 今回読んだ開発者向け資料とヘルプは、どちらも「APIキーはFreeを含む全プランで使える」と書いています。03で書いた「ヘルプはPro以上」という記載は、今回のヘルプには見つかりませんでした。
  • 作る呼び出しは非同期で、受付番号(generationId)が返り、約5秒ごとに状態を確かめる形です。Webhook(完了通知)については、今回読んだ開発者向け資料に記載が見つかりませんでした(03も参照)。
  • キーの取り消し方、OAuthのトークンの取り消し方、Zapier・Make・n8nの接続の外し方は、読んだページに専用の手順が見つかりませんでした。

この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。

手順は「公式の手順を順に並べたもの」です。コマンドや設定例は「公式の例の写し」か、「公式の記載に合わせて、この記事で組んだ例(動作は確かめていません)」と書き分けます。APIキーなどの実値は書かず、<YOUR_API_KEY> のような書き方にします。画面の表記は変わるので、手元の画面と照らして読んでください。公式ページは要約の形で取得しています。

先に結論

前提:用語をそろえる

たとえ話:レストランの注文伝票

僕らの整理では、非同期のAPIは、注文伝票に近い仕組みです。注文(作る依頼)を出すと、料理(完成品)の代わりに伝票の番号(generationId)が返り、できあがったかどうかは、番号を持って、あとで聞きに行きます(これは僕らのたとえです)。

手順1:APIキーを取る

公式の3つの記載

出どころ 書かれていること
開発者向け資料トップ(Quickstart、Authentication) 「Settings > API Keys」(gamma.app/settings/api-keys)を開き、キーをコピーする。sk-gamma-... の形。ヘッダーは X-API-KEY、あわせて Content-Type: application/json
開発者向け資料「Explore the API」 キーは「Account Settings > API Keys」で作る。ヘッダーは X-API-KEY
ヘルプ「Does Gamma have an API?」 「Settings and Members」を開き、「API key」のタブで「Create API key」を押し、コピーして、保管する(ヘルプは「securely」と書いています)。キーは一度しか表示されないので、失くしたら新しく作り直す
ダッシュボードの説明 「Settings」の「Personal」に「My API keys」がある
開発者向け資料(Access and pricing) ワークスペースの管理者は、APIキーのアクセスを制限したり、無効にしたりできる。作れないときは管理者に聞く

これらは、同じ場所を別の言い方で書いている可能性があります(Zapier・Make・n8nの項には、gamma.app/settings という書き方もあります)。どれが現状かは、読んだ範囲では決められません。画面で確かめてください。

手順(公式の記載を並べたもの)

  1. Gammaにサインインします。
  2. 上の表のどれかの経路で、APIキーの画面を開きます。
  3. 「Create API key」を押します(ヘルプの記載。開発者向け資料は、キーをコピーする、とだけ書いています)。
  4. 表示されたキーを、その場でコピーして、ほかの人が見られない場所に保管します。
  5. 以後、このキーを <YOUR_API_KEY> として使います。ターミナルでは、環境変数にしておくと、コマンドの中に直接書かずにすみます。
export GAMMA_API_KEY="<YOUR_API_KEY>"

これは、この記事で組んだ例です。動作は確かめていません。

通しの確認(公式の例の写し)

公式の開発者向け資料にある、テーマの一覧を取る例です。

curl https://public-api.gamma.app/v1.0/themes \
  -H "X-API-KEY: $GAMMA_API_KEY"

テーマの id と name などが返る、と、そのページにあります。クレジットを使うかどうかは、このエンドポイントについては、読んだ範囲に書かれていません。

キーの取り消しと、プラン

手順2:Agentのエンドポイントで作る

流れ(公式のQuickstart)

  1. POST https://public-api.gamma.app/v1.0/agent/generations に、prompt、format、numCards、任意で exportAs を送ります。返事には generationId と、pending の状態が入ります。テンプレートを使うなら templateId を足し、themeId は付けません。
  2. GET /v1.0/agent/generations/{generationId} を、約5秒ごとに呼び、completed か failed になるまで待ちます。成功したら、gamma.gammaUrl を読みます。書き出しを頼んでいれば、exportUrl も出ます。
  3. gammaをURLで開きます。直したいときは、/v1.0/agent/gammas/{gammaId}/edits に、自然な文章の指示を送ります。

パラメータ(公式のAPIリファレンスの記載)

フィールド 内容
prompt 必須。文字列。最大400000
format document、presentation、social。省略は presentation。webpage は断られる
numCards 1〜100の目安。Freeは10まで、有料は100まで。上限を超えると400
themeId 標準のブランドの土台の上で、そのformatに合わせて適用。templateId とは同時に使えない
templateId 使えるワークスペースのテンプレート、ワークスペースのgamma、公式のテンプレートのID
quality lite、standard、max。max は、含まれるプランだけ。省略は、APIの初期値で、プランに含まれる範囲まで
sourceUrls URLの配列。最大10。参考にする程度で、読めないURLは飛ばされる
additionalInstructions 0〜5000文字。トーン、聞き手、言語、スタイルの目安
folderId GET /v1.0/folders で調べたフォルダのID。ワークスペースの管理者が制限しているときは無視される
sharingOptions 次の「共有の初期値」を参照
exportAs pdf、png、pptx。書き出しの失敗は、警告で、生成の失敗にはならない
disableConnectors その1回の実行で、ワークスペースのコネクタ(NotionやSlackなど)を使わない

themeId について、開発者向け資料は、Agentの生成には初期のテーマが無いので、ブランドを当てるには themeId か templateId を渡す、と書いています。

呼び出しの例(この記事で組んだ例)

公式のページに、このエンドポイントのcurlの例は無かったので、フィールド名は公式の表に合わせて、この記事で組みました。動作は確かめていません。

curl -X POST https://public-api.gamma.app/v1.0/agent/generations \
  -H "X-API-KEY: $GAMMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "新入社員向けの情報セキュリティ入門。10分で話せる分量。",
    "format": "presentation",
    "numCards": 8
  }'

状態を聞く例です(公式の記載に合わせて、この記事で組んだ例。動作は確かめていません)。

curl https://public-api.gamma.app/v1.0/agent/generations/<generationId> \
  -H "X-API-KEY: $GAMMA_API_KEY"

返事の例(本文)は、公式のページに載っていませんでした。202で受け付けられ、generationId(gen_ で始まる)、status(作成時は常に pending)、warnings(空の配列か、code と message の組)が返る、と書かれています。

手順3:classicのエンドポイントで作る(Webページ、複数ページ)

POST /v1.0/generations は、Webページと複数ページを作れる唯一の方法、と公式にあります。

パラメータ(公式「Generate API parameters explained」の記載)

フィールド 内容 初期値
inputText 必須(pages を使うときを除く)。最大100,000トークン(約400,000文字)。推論の重い依頼では、もっと少ないことがある なし
pages inputText の代わりに使う配列。最大50ページ。各ページに inputText が必須。publish: true で、サイトとして公開 なし
title 1〜500文字 内容から推定
textMode generate、condense、preserve 書かれていない
format presentation、document、social、webpage presentation
themeId GET /v1.0/themes かアプリで調べる ワークスペースの初期のテーマ
numCards Freeは1〜10。Plus、Pro、Ultra、Teams、Business、Enterpriseは1〜100。cardSplit が auto のときだけ使われる 10
cardSplit auto、inputTextBreaks auto
additionalInstructions 1〜5000文字 なし
folderId 自分が属するフォルダ なし
exportAs pdf、pptx、png(1回に1つ。png は.zipで返る) なし

呼び出しの例(この記事で組んだ例)

curl -X POST https://public-api.gamma.app/v1.0/generations \
  -H "X-API-KEY: $GAMMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "inputText": "会社の紹介ページ。事業、沿革、問い合わせ先。",
    "format": "webpage",
    "textMode": "generate"
  }'

動作は確かめていません。

手順4:編集、読む、書き出す、消す

呼び出し 公式の記載
POST /v1.0/agent/gammas/{gammaId}/edits 自然な文章の指示で1ページを直す。prompt は必須で最大10,000文字。ファイルID(g_…)ならgammaのメインのページ、gamma.app/docs/<id> のURLのページIDなら、そのページ。ページは足せない。同じページには同時に1つの編集だけ(重なると409 edit_in_progress)。返るのは editId と gammaUrl(201)。状態は GET /v1.0/agent/edits/{editId}
GET /v1.0/gammas/{gammaId} 題名、テーマ、URLなどの情報
GET /v1.0/gammas/search 題名と本文の全文検索。q が無いときは、createdBy、updatedAfter、updatedBefore のどれかが要る
GET /v1.0/templates/search ワークスペースと公式のテンプレートの検索
GET /v1.0/gammas/{gammaId}/comments コメントと返信
POST /v1.0/gammas/{gammaId}/export PDF、PPTX、PNG。状態は GET /v1.0/exports/{id}。保管されたgammaは不可
POST /v1.0/images、GET /v1.0/images/{id} 画像1枚の生成と状態
GET /v1.0/themes、GET /v1.0/folders themeId、folderId の調べ方
POST /v1.0/gammas/{gammaId}/archive gammaを、使っているワークスペースから外す。REST専用
DELETE /v1.0/gammas/{gammaId} gammaを消す。ワークスペースの管理者が必要。REST専用
分析(/analytics 系) 編集権限が要る。Pro以上。約1時間ごとの更新

POST /v1.0/generations/from-template は、prompt と gammaId で、テンプレートから作ります。Agentの編集の例のcurlは、公式のページに載っていませんでした。

この節の表のうち、/agent/gammas/{gammaId}/edits と編集の状態確認の行以外(検索、書き出し、画像、archive、DELETE、from-template など)のパスとパラメータは、出典に挙げたページでは再確認できていません。公式のAPIリファレンスで確かめてください。

共有の初期値と、渡るデータ

項目 公式の記載
sharingOptions.workspaceAccess noAccess、view、comment、edit、fullAccess。省略はワークスペースの設定
sharingOptions.externalAccess noAccess、view、comment、edit。省略はワークスペースの設定
sharingOptions.emailOptions recipients(メールアドレスの配列)と access。fullAccess はワークスペースのメンバーだけ
初期値の決まり方 明示した値は、「Settings > Sharing」の初期の設定より優先される
書き出しのURL 約1週間で期限が切れる。APIキーにはひもづかない。公式は、秘密として扱うよう書いている(リンクを知っていれば誰でも取れる、と03で書きました)
入力の文章 あなたのプログラムとGammaの間を流れる
sourceUrls Gammaが読みに行く。読めないURLは飛ばす
disableConnectors true なら、その1回、ワークスペースのコネクタを使わない
呼び出す場所 「サーバーだけ」という公式の記載は、今回読んだページでは確認できていない。キーをブラウザのコードに書かないのは、この記事の注意

制限、エラー、クレジット

制限(公式「Access and pricing」の記載)

項目 Free 有料
1つのgammaのカード数(numCards) 10まで Plus以上で100まで
ワークスペースで同時に動くAgentの作業 2 10
quality: "max" 使えない(403) Pro以上
分析のエンドポイント 使えない(403) Pro以上

同時の上限を超えると、429と workspace_concurrency_limit_exceeded、Retry-After のヘッダーが返ります。1分あたりのリクエストの数などは、公式のページに書かれていません。

エラー

コード 公式の記載
400 パラメータが不正、numCards がプランの上限を超えた、使えない templateId、使えない themeId、themeId と templateId の併用、保管されたgammaの編集など
401 キーが無効、または付いていない(Agentの生成と編集の資料の書き方)
403 クレジット不足、プランに含まれない quality、アクセス権が無い。ヘルプは、クレジットの残高と、自動チャージのオンを確かめる、と書く
404 gammaが見つからない
409 同じページに編集が進行中
422 生成の失敗。入力のパラメータを確かめる(ヘルプの記載)
429 レートの上限、または同時の上限。ヘルプは、より多くの余力が欲しいときは、サポートに連絡、と書く
503 混み合っている。やり直す

クレジットと金額(2026-10-25に読んだ範囲。公式は変わりうる、と書いています)

手順5:OAuthで、利用者に代わって呼ぶ

自分のアプリが、利用者の許可を得て、その利用者として動くときの方式です。公式「Authenticate with OAuth」の記載を順に並べます。

  1. 登録(一度):POST https://auth.gamma.app/oauth/register に、client_name、redirect_uris、grant_types、response_types、token_endpoint_auth_method を送ります。公開クライアントは none、秘密を持つものは client_secret_basic か client_secret_post です。
  2. 許可:利用者を https://auth.gamma.app/oauth/authorize に送ります。client_id、redirect_uri、response_type=code、resource=https://public-api.gamma.app、scope、state、code_challenge、code_challenge_method=S256 を付けます。利用者がサインインし、ワークスペースを選び、同意します。戻ってきたら、state が一致するか確かめます。
  3. コードの交換:POST https://auth.gamma.app/oauth/token に、grant_type=authorization_code、code、redirect_uri、client_id、code_verifier を送ります。access_token、token_type(Bearer)、expires_in(3600)、scope、refresh_token が返ります。
  4. 呼ぶ:Authorization: Bearer <access_token> を付けて、https://public-api.gamma.app/v1.0/... を呼びます。
  5. 更新:grant_type=refresh_token で、同じトークンのエンドポイントを呼びます。更新のたびに新しい更新用トークンが返り、古いものは無効になります。

スコープとトークンの寿命

手順6:Zapier・Make・n8nでつなぐ

公式の開発者向け資料「Connect integrations」の記載を並べます。3つとも、APIキーが要り、全プランで使える、と書かれています。ヘルプ「How do I use Gamma with outbound connectors and integrations?」は、利用にはクレジットを使う、と書いています。

Zapier

  1. Zapの中で、アプリの一覧から「Gamma」を探します。
  2. 「Generate a Gamma」などのアクションを選びます(アクションの正確な名前は公式で確認できていません。手元の画面と照らしてください)。
  3. APIキーで認証します。キーは gamma.app/settings で作る、と書かれています(手順1の別の経路と、書き方が違います)。
  4. トリガーのデータを、生成のパラメータに結びつけます。

Make

  1. シナリオにモジュールを足し、「Gamma」を探します。
  2. 「Create a Generation」などのアクションを選びます(アクションの正確な名前は公式で確認できていません。手元の画面と照らしてください)。
  3. APIキーでアカウントをつなぎます。
  4. モジュールのパラメータを設定します。

n8n

  1. n8nのエディタで「+」を押し、「Gamma」を探します。
  2. 操作を選びます。例は、「Generation」の「Create」です。
  3. APIキーで、「Gamma credential」を作ります。
  4. 入力の文章、テキストのモード、形式、テーマなどを設定します。
  5. 結果を確かめるには、2つ目のGammaノードで「Get Status」を選び、1つ目のノードの生成IDを渡します。
  6. 操作は、Generationの「Create」「Create from Template」「Get Status」、Themeの「List」、Folderの「List」と書かれています。ヘルプは、n8nは作ると編集ができ、「Edit」と「Get Edit Status」の操作がある、と書いています。この2つが、開発者向け資料の操作の一覧に出てこない点は、書き方の違いです。

3つの違い

サービス 公式の記載
Zapier、Make 作るだけ。変えたいときは、Gammaのアプリでgammaを開く(ヘルプ)
n8n 作ると編集(ヘルプ)
共通 APIキーで、Gamma側のAPI。各サービスの画面と課金は、各サービスのもの

ZapierとMakeのモジュールを誰が作って運営しているかは、今回読んだページには書かれていませんでした。n8nについては、開発者向け資料「Connect integrations」が「official Gamma node」と書いています(ヘルプ「How do I use Gamma with outbound connectors and integrations?」には、officialの語は出てきません)。運営元についての、それ以上の記載は見つかりませんでした。接続の外し方も、読んだページに書かれていません。各サービスの接続の画面で、取り消すか、Gamma側でキーを作り直すかの選択になります(後者は僕らの整理で、公式の手順ではありません)。

手順7:LLMとデータ源を組み合わせて、Gammaで数字入りの資料を作る

公式ヘルプ「How can I get my data into Gamma decks using an LLM?」は、AI同士を組み合わせる流れを書いています。構成は、①データを持つツール(ソース)、②LLMへの指示、③Gamma、の3層です。ソースの例として、Snowflake、BigQuery、Google Drive・スプレッドシート、Salesforce、HubSpot、Notion、Jiraが挙がっています。

用意するもの(公式の記載)

  1. 使うソースのツールと、その中の表、ビュー、レポート、シート、文書(必要な列や節も)。
  2. テンプレートのID(Gamma:get_gammas に type: template を付けて探す)か、テーマID。
  3. スライドの一覧と、文体のトーン。
  4. LLMへの指示の置き場所。最初は、プロジェクトの指示から始め、種類が増えたり、再利用する計算の手順がほしくなったら、スキルに移す。スキルは「Settings → Capabilities」に入れる、と書かれています。

実行の流れ(ヘルプのテンプレートの要約)

  1. ソースを読む(クエリを走らせる、CSVを書き出す、文書を取る)。
  2. スクリプトで、合計、内訳、上位N件、期間を計算する。
  3. スライド1枚につき1つのブロックにして、数字と単位を書いたプロンプトを作る。
  4. テンプレートから生成し、Gamma:read_gamma で抜き取りの確認をする。

公式が書く、LLMが守る決まり

食い違い

このヘルプは、編集のツールは無い、直すには作り直すか、Gammaのウェブのエディタで直す、と書いています。一方、MCPのツールの一覧には edit_gamma があり、「アカウントで編集が有効なときだけ一覧に出る」と書かれています(07)。どちらが現状かは、読んだ範囲では決められません。

渡るデータ

ソースの内容(数字を含む)が、LLM側に読まれ、そこで計算された数字が、Gammaに渡ります。社内のデータを使うときは、LLMと、Gammaのそれぞれの規約と、ワークスペースの設定を、先に確かめてください。この記事では、LLM側の扱いは読んでいません。

つまずきの確認表

症状 確認すること
401 キーの文字列、ヘッダーの名前(APIキーは X-API-KEY。OAuthのトークンのときは Authorization: Bearer)を確かめる
403 クレジットの残高、自動チャージ、quality がプランに含まれるか、gammaの編集権限
429 同時に動く作業が上限(FreeはAgentで2、有料は10)を超えていないか。Retry-After を待つ
400 numCards がプランの上限(Freeは10)を超えていないか、themeId と templateId を併用していないか、format に webpage を指定していないか(Agentでは不可)
409 同じページへの編集が終わるのを待つ
完了しない 約5秒ごとのポーリングを続ける。作成の呼び出しを繰り返して確かめない
書き出しのURLが開かない 約1週間で期限が切れる。もう一度書き出す
作れないキー ワークスペースの管理者が、APIキーを制限している可能性

気をつけること

出典