Microsoft Graph APIは、ほとんどのAPIを追加費用なしで呼べます。料金が発生するのは、従量課金の対象に指定された一部のAPIと、Copilot取得APIの従量課金、大量抽出用のGraph Data Connectという限られた経路だけです。この記事では、無料で使える範囲とライセンスの前提を整理したうえで、2026年11月時点の単価、2025年8月25日にTeams APIが課金対象から外れた経緯、Azureサブスクリプションと結ぶazコマンド、402応答の意味を順に解説します。後半は、無料のAPIで費用より先に効くスロットリング上限と、月額を試算するPythonのコードです。単価と仕様は2026年11月7日時点の公式ドキュメントに基づきます。
まとめ:Graph APIの料金を決める無料の標準APIと3つの有料経路
ユーザー、メール、予定、ファイル、Teamsのチャネルを読み書きする通常の連携なら、Graph API自体に料金はかかりません。費用として見積もるのは、Microsoft 365の利用者ライセンスと、連携アプリを動かすサーバーやAzureの基盤代です。
料金が発生するのは次の3経路です。秘密度ラベルを付ける assignSensitivityLabel は1呼び出しあたり0.00185USD。Copilotライセンスを持たない利用者のためにCopilot取得APIを呼ぶ従量課金は、1呼び出しあたり0.10USD(プレビュー)。テナントのデータをまとめて書き出すGraph Data Connectは、抽出1,000オブジェクトあたり0.75USDです。
以前は有料だったTeamsのメッセージ書き出しや変更通知は、2025年8月25日から課金の対象外になりました。課金対象だった時期の解説記事を根拠に予算を組んでいるなら、見積りを作り直してください。
Microsoft Graph APIを追加費用なしで使える範囲とライセンスの前提
最初に押さえるのは、Microsoftが自らGraph APIを3つの区分に分けて課金の有無を決めている点です。区分を知っていれば、使いたいAPIが有料かどうかを一覧で確かめる手間が減ります。
標準・大容量・高度の3区分と追加費用なしで使える標準APIの条件
従量制課金APIとサービスの概要によると、Graph APIは標準API、大容量API、高度なAPIの3区分です。ほとんどは標準APIで、作成・読み取り・更新・削除の操作を、定義された使用しきい値の範囲で追加費用なく利用者ライセンスの一部として使えます。
大容量APIは一括エクスポートやインポート用のエンドポイントとGraphのサービス、高度なAPIは集計データや高度な機能を返すAPIで、どちらも従量課金です。高度なAPIの例として公式が挙げているのが assignSensitivityLabel です。
無料のAPIが後から有料になる心配もあります。公式は、利用者ライセンスに含まれているAPIを従量課金に変えることを下位互換性のない変更として扱い、バージョン管理と重大な変更の方針に従うと明記しています。予告なしに請求が始まる設計ではありません。
呼び出し先のサービスのライセンスが無い利用者で403になる仕組み
Graph APIに料金がかからない代わりに、データの持ち主側にライセンスが要ります。エラー応答の一覧を見ると、403 Forbiddenの原因の1つが「必要なライセンスを持っていない」場合です。Exchange Onlineのライセンスが無い利用者のメールボックスを読もうとすれば、権限を正しく付けていても失敗します。
連携アプリそのものには利用者ライセンスを割り当てません。アプリの登録と権限の付与はEntra IDで行い、費用は発生しない作業です。登録の流れはMicrosoft Entra ID(旧Azure AD)とは、権限の選び方と最小実装は親記事のMicrosoft Graph APIとはで解説しています。
2026年11月時点で料金が発生するGraph APIとCopilot APIの単価一覧
有料の経路は3つしかありません。請求の仕組みがそれぞれ違うため、表で並べてから個別に見ます。
秘密度ラベル付与・Copilot取得API・Data Connectの単価比較表
2026年11月7日時点の公式ページの記載を並べると次のとおりです。金額はすべてUSDで、請求先はいずれもAzureサブスクリプションです。
| 経路 | 単価 | 単位 | 利用の前提 |
|---|---|---|---|
| assignSensitivityLabel | 0.00185USD | 1呼び出し | アプリ登録をAzureサブスクリプションに関連付け |
| Copilot取得APIの従量課金 | 0.10USD | 1呼び出し | テナントにCopilotライセンスが最低1つ |
| Graph Data Connect | 0.75USD | 抽出1,000件 | Azure側にコピー先を用意 |
| 同(SharePoint Files) | 0.75USD | 抽出50,000件 | 同上 |
assignSensitivityLabel の単価は従量制課金APIとサービスの一覧、Copilot取得APIは取得API従量課金制(プレビュー)の価格表、Data Connectは2023年6月29日の公式ブログの訂正版が出典です。SharePoint Filesの50,000件単位は、Data Connectの担当者が公開している見積りFAQの記載に基づきます。
2025年8月25日にTeams APIが従量課金から外れた影響と既存設定
従量課金一覧の冒頭には、2025年8月25日からTeams APIは従量課金されず、課金の構成も不要になったと書かれています。課金用の構成をすでに済ませたアプリも、対応は不要です。現在の一覧に残っているのは、SharePointとOneDriveの assignSensitivityLabel だけです。
以前のTeamsのメッセージ書き出しや変更通知にかかっていた課金の説明は、日本語の解説記事にまだ多く残っています。古い記事を根拠に「Teams連携は件数で費用が増える」と見積もっていれば、その費用は不要です。
ただし、課金が外れても保護されたAPIの扱いは別です。チャットの一括書き出しのような一部のAPIは、権限と管理者の同意に加えてMicrosoftへの利用申請が要ります。課金の有無と申請の要否は分けて確認してください。保護されたAPIの確認方法とチャットを一括で書き出す実装は、Teams Export APIの使い方で解説しています。
Graph Data Connectの抽出件数課金とAzure側で別にかかる費用
Graph Data Connectは、REST APIで1件ずつ読むのではなく、Microsoft 365のデータセットをAzureのストレージへまとめてコピーする仕組みです。Azureの価格ページは、抽出したオブジェクト1,000個ごとに計算し、毎月の従量課金で請求すると説明しています。
単価の0.75USDは2023年7月1日から適用されています。同年5月の発表にあった段階割引は、訂正版で取り下げられました。2023年8月から1年間あった「テナントごとに10万件まで無料」の施策も、2024年7月31日で終わっています。
見落としやすいのは、抽出料とは別にかかるAzure側の費用です。コピー先のストレージ、データを運ぶAzure Synapseのパイプラインは、それぞれの単価で別に請求されます。Data Connectの見積りは、抽出件数とコピー先の基盤代を合わせて出してください。
従量課金APIを有効にするAzureサブスクリプション連携の手順とコマンド
従量課金のAPIは、アプリ登録とAzureサブスクリプションを結ばないと呼べません。結び方はGraph側とCopilot側で異なります。
GraphServicesリソースでアプリ登録と請求先を結ぶazコマンド
従量制課金APIとサービスを有効にする手順では、Microsoft.GraphServices/accounts という種類のAzureリソースを1つ作り、1つのアプリ登録を1つのサブスクリプションに結びます。必要な権限は、サブスクリプションの共同作成者と、対象アプリ登録の所有者です。
# 事前に値を入れておく(例はプレースホルダー)
SUBSCRIPTION_ID="00000000-0000-0000-0000-000000000000"
APP_ID="11111111-1111-1111-1111-111111111111" # アプリ登録のアプリケーション(クライアント)ID
# 1. 課金用リソースを作り、アプリ登録とサブスクリプションを結ぶ
az graph-services account create \
--resource-group rg-graph-billing \
--resource-name graph-billing-app01 \
--subscription "$SUBSCRIPTION_ID" \
--location global \
--app-id "$APP_ID"
# 2. 結び付けを確認する(properties.appId が APP_ID と一致すればよい)
az graph-services account list --resource-group rg-graph-billing -o table
# 3. 使わなくなったら削除する(削除すると課金が無効になる)
az graph-services account delete \
--resource-group rg-graph-billing \
--resource-name graph-billing-app01 --yes
az graph-services account はAzure CLI 2.49.0以降の拡張機能で、初回の実行時に自動で入ります。delete の説明には、関連付けたアプリの課金を無効にすると書かれています。費用を止めたいときは、アプリ登録を消すよりこのリソースを消す方が確実です。
関連付けの直後は、新しいアクセストークンを取り直さないと従量課金のAPIが通らない場合があります。発生した費用はCost Management + Billingで、アプリ・呼び出し元のテナント・メーターごとに分けて確認できます。
有効化前に確かめる機密クライアント限定・マネージドID不可・402応答
従量課金のAPIには、関連付けの前に確かめておく制約が3つあります。どれもアプリの構成を変えないと解消できないため、設計の段階で確認します。
- 呼び出し元は、WebアプリやWeb API、デーモンなどの機密クライアントに限られる。デスクトップアプリとモバイルアプリは対象外
- AzureのマネージドIDは使えない。クライアントシークレットか証明書で認証する
- Microsoftのグローバル環境だけで提供され、GCCを含む国別クラウドでは使えない
関連付けをせずに呼ぶと、エラー一覧で「APIの支払い要件が満たされていない」と説明される402 Payment Requiredが返ります。assignSensitivityLabel を呼ぶ要求と、受け付けられたときの応答は次の形です。
POST https://graph.microsoft.com/v1.0/drives/{drive-id}/items/{item-id}/assignSensitivityLabel
Authorization: Bearer {token}
Content-Type: application/json
{
"sensitivityLabelId": "5feba255-812e-446a-ac59-a7044ef827b5",
"assignmentMethod": "standard",
"justificationText": "契約書フォルダの一括分類"
}
HTTP/1.1 202 Accepted
Location: https://contoso.sharepoint.com/_api/v2.0/monitor/...
assignSensitivityLabelのリファレンスによると、処理は非同期で、202は受け付けただけです。結果は Location のURLで確認します。最小権限は Files.ReadWrite.All で、このAPIは保護されたAPIであるため、追加の検証も必要です。ラベルそのものの設計はMicrosoft Purviewとはで扱っています。
Copilot取得APIの従量課金を管理センターで有効にする手順と反映待ち
Copilot取得APIの概要によると、Microsoft 365 Copilotのアドオンライセンスを持つ利用者は追加料金なしで使えます。ライセンスの無い利用者の分を呼ぶときだけ、従量課金を有効にします。
有効化はazコマンドではなく、Microsoft 365管理センターの「Copilot」から「Billing & usage」「Pay-as-you-go」と進んで行います。前提はAzureサブスクリプションの所有者か共同作成者の権限と、テナント内に最低1つのCopilotライセンスです。反映に約2時間かかり、反映直後の最初の呼び出しは失敗することがあります。
従量課金で読めるのはSharePointとCopilotコネクタのようなテナント単位のデータだけで、OneDriveは対象外です。無効にした後も反映までの約2時間に呼ばれた分は課金されます。Copilotライセンスそのものの価格と範囲はMicrosoft 365 Copilotとはを参照してください。
無料の標準APIで費用より先に効いてくるスロットリング上限の数値
標準APIは無料ですが、無制限ではありません。公式の説明どおり「定義された使用しきい値の範囲で」無料なので、大量処理では料金の前に上限に当たります。
全アプリ共通の10秒130,000件と主要サービス別上限の比較表
サービス固有の調整制限から、連携でよく使う上限を抜き出すと次のとおりです。
| 対象 | 上限 | 数える単位 |
|---|---|---|
| 全サービス共通 | 10秒あたり130,000要求 | アプリごと(全テナント合計) |
| Outlook(メール・予定) | 10分あたり10,000要求・同時4要求 | アプリとメールボックスの組 |
| ユーザー・グループなど | 10秒あたり3,500〜8,000単位 | アプリとテナントの組 |
| Copilot取得API | 1時間あたり200要求 | 利用者ごと |
ユーザーやグループの上限は、テナントの利用者が50人未満なら3,500、50〜500人で5,000、500人を超えると8,000です。書き込みは別枠で、アプリとテナントの組ごとに2分30秒で3,000要求までです。Copilot取得APIの上限は概要ページの既知の制限に記載があります。
429で止まる処理を有料のData Connectへ移す判断の目安
上限を超えるとHTTP 429が返り、調整ガイドに従って Retry-After の秒数だけ待つ必要があります。待つ時間は料金になりませんが、夜間バッチが朝までに終わらないという形で業務に影響します。
差分だけを取れる処理は、デルタクエリと変更通知に切り替えれば無料のまま収まります。Data Connectを検討するのは、全利用者のメールや全サイトの権限を定期的に丸ごと集計する場合です。メールボックスごとに10分1万要求の上限がある以上、全件を毎回読み直す作りはREST APIの想定外であり、抽出件数に応じた料金を払う方が設計として素直です。
月額費用の試算コードと従量課金APIを採用する条件・見送る条件
単価が分かれば、月額は件数の掛け算で出ます。稟議に出す前に、件数の前提を変えながら幅で示せるよう、試算をコードにしておきます。
ラベル付与件数とCopilot取得APIの呼び出し数から月額を出すPython
次のコードは、表の単価をそのまま使って月額をUSDで出します。Python 3.10以降の標準ライブラリだけで動きます。
# graph_cost.py : Microsoft Graph の有料経路の月額をUSDで試算する
# 単価は2026年11月7日時点の公式ページの記載。改定時はここを書き換える
PRICE_LABEL = 0.00185 # assignSensitivityLabel 1呼び出し
PRICE_RETRIEVAL = 0.10 # Copilot取得APIの従量課金 1呼び出し(プレビュー)
PRICE_DC_PER_1K = 0.75 # Graph Data Connect 抽出1,000件
PRICE_DC_SPFILES_PER_50K = 0.75 # Data Connect の SharePoint Files 抽出50,000件
def monthly_cost(labels, retrieval_users, retrieval_per_day, workdays,
dc_objects, sp_file_objects):
items = {
"assignSensitivityLabel": labels * PRICE_LABEL,
"Copilot取得API": retrieval_users * retrieval_per_day * workdays * PRICE_RETRIEVAL,
"Data Connect": dc_objects / 1000 * PRICE_DC_PER_1K,
"Data Connect(SharePoint Files)": sp_file_objects / 50000 * PRICE_DC_SPFILES_PER_50K,
}
for name, usd in items.items():
print(f"{name:32s} {usd:10,.2f} USD")
print(f"{'合計':32s} {sum(items.values()):10,.2f} USD")
if __name__ == "__main__":
# 例: 10万ファイルに1回ずつラベル付与、Copilot未契約の50人が1日20回×20営業日、
# ユーザー等を500万件、SharePoint Filesを1,000万件抽出
monthly_cost(100_000, 50, 20, 20, 5_000_000, 10_000_000)
この例の出力は、ラベル付与185.00USD、Copilot取得API2,000.00USD、Data Connect3,750.00USD、SharePoint Files150.00USDで、合計6,085.00USDです。1呼び出しの単価が最も小さいのはラベル付与ですが、利用者数に比例して増えるCopilot取得APIは、人数が増えると最も大きな費目になります。円換算は請求時の為替で変わるため、稟議ではUSDのまま幅を示す方が後で説明しやすくなります。
従量課金APIを使ってよい場面と標準APIや別製品に代える場面の線引き
従量課金APIを採用してよいのは、代わりの手段が無い処理に限ります。数万件のファイルへ既存の分類ルールに沿ってラベルを付け直す処理は、assignSensitivityLabel 以外にAPIで行う手段が無く、10万件で185USDなら手作業より明らかに安く済みます。
見送るべきなのは、Copilot取得APIの従量課金で全社員向けの社内検索ボットを作る計画です。50人が1日20回呼ぶだけで月2,000USDになり、利用が定着するほど費用が膨らみます。対象の利用者が多いなら、Copilotライセンスの購入と比べてから決めてください。同じくData Connectも、差分で済む同期に使えば無料で収まる処理に料金を払うことになります。
どのAPIが有料経路に当たるかの切り分け、402や429を前提にした再試行、Azure側の課金リソースの管理まで社内で設計しきれない場合は、Microsoft 365・Copilot導入支援で連携部分の設計と見積りだけを切り出して任せる方法もあります。
よくある質問
Microsoft Graph APIの料金について、問い合わせの多い質問を公式ドキュメントの記述に沿って答えます。
Microsoft Graph APIを呼ぶだけで料金は発生しますか?
通常の呼び出しでは発生しません。ユーザー、メール、予定、ファイル、Teamsを読み書きする標準APIは、利用者のMicrosoft 365ライセンスに含まれます。料金が発生するのは、従量課金一覧に載っているAPI、Copilot取得APIの従量課金、Graph Data Connectの3経路だけです。いずれもAzureサブスクリプションとの関連付けや管理センターでの有効化が前提なので、気付かないうちに課金が始まることはありません。
Teamsのメッセージを書き出すAPIは今も有料ですか?
2025年8月25日から課金の対象外です。公式の従量課金一覧に、Teams APIは従量課金されなくなり、課金の構成も不要になったと明記されています。すでに課金用の構成をしたアプリも、そのままで問題ありません。ただし、チャットの一括書き出しなど一部の保護されたAPIは、課金とは別にMicrosoftへの利用申請が必要です。
従量課金APIの料金はどこに請求されますか?
アプリ登録に関連付けたAzureサブスクリプションに請求されます。Microsoft 365の請求書ではありません。Azureの請求サイクルが締まった後、通常は月の5日ごろにサブスクリプションの所有者などが請求書をダウンロードできます。Cost Management + Billingを使えば、アプリ・呼び出し元のテナント・メーター単位で費用を分けて確認できます。
従量課金APIの利用をやめるにはどうすればよいですか?
Graphの従量課金APIは、az graph-services account delete で課金用のリソースを削除するのが手順です。削除すると関連付けたアプリの課金が無効になる、と公式のコマンド説明にあります。Copilot取得APIの従量課金は、Microsoft 365管理センターの同じ画面で無効にします。こちらは反映まで約2時間かかり、その間に呼ばれた分は課金されるため、アプリ側の呼び出しを先に止めてください。
Copilotのライセンスがあれば取得APIは無料ですか?
Microsoft 365 Copilotのアドオンライセンスを持つ利用者の代わりに呼ぶ分は、追加料金なしです。料金がかかるのは、ライセンスを持たない利用者の分を従量課金で呼ぶ場合で、1呼び出しあたり0.10USDです。この従量課金はプレビューでSLAが無く、OneDriveのような利用者単位のデータは読めません。利用者ごとに1時間200要求の上限もあるため、全社の検索基盤として使う前に件数を試算してください。
関連記事
- SharePoint APIとは?REST APIとGraphの使い分け・Sites.Selected権限とリスト操作の実装例:無料の標準APIでSharePointを操作する実装
- Microsoft 365の検索APIの使い方|SharePoint検索の実装とGraph・REST APIの違い:Copilot取得APIを使わずに文書を探す方法
- Microsoft 365とは|Office単体との違い・含まれるサービスと導入で詰まる点:標準APIの前提になる利用者ライセンスの全体像
- SharePointの料金|単体プランの販売終了とMicrosoft 365の実額、追加容量・外注費まで:APIの外側でかかるSharePointの費用
- Microsoft 365 Copilot Chatとは?無料版と有償版の違い・エージェント課金と全社展開の判断:Copilot側の従量課金と全社展開の判断