2021/05/21

Salesforce REST APIの制限とAPIコール数を確認する方法などを紹介

 
  

Salesforce REST APIの制限

Salesforceでは、Lightning Platform APIのトランザクション負荷を調整するため、同時に行えるAPIの要求数と、24 時間あたりの APIコール数の合計について、組織ごとに制限を設けています。 Salesforce REST APIを含むAPIの制限について、説明します。

制限の対象となるAPI

SalesforceにおけるAPIコールの制限と割り当ては、ユーザ単位ではなく、各組織に対して行われた APIコールの集計に適用されます。 接続アプリケーションによるAPIコールはカウントされません。また、DebugHeader 含むコールには組織の制限とは別に1,000 までの割り当てがあり、組織のAPIコールの制限に達した後もその範囲内では実行できます。 <制限の対象となるAPI> ・Lightning プラットフォーム REST API ・Lightning プラットフォーム SOAP API ・Bulk APIおよびBulk API 2.0

外部オブジェクトへのREST APIも使用制限にカウントされる

Salesforce Connectが、他の Salesforce 組織のレコードにアクセスするためのLightning プラットフォーム REST API コールもAPI コールの使用制限の対象となります。 その場合、外部オブジェクトへのアクセス方法により、プロバイダ組織のみ、もしくはプロバイダ組織と登録者組織の双方でカウントされます。 <API 使用制限に該当する外部オブジェクトへのアクセス> ・リストビューを開く。 ・詳細ページを表示する。 ・親オブジェクトレコード(外部オブジェクト関連リストを含む)を表示する。 ・子オブジェクトレコード(外部参照項目を含む)を表示する。 ・検索を実行する。 ・フロー、Visualforce ページ、Apex クラス、Apexトリガを介してアクセスする。 ・レコードの作成、編集、削除を実行する。 ・レポートを作成する。 ・レポートの編集により、レポートビルダーにプレビューを読みこむ

Salesforce REST APIを含むAPIコールの割り当て

Lightning Platform API の最適なパフォーマンスを維持する目的で、20秒以上継続するコールを同時に行える最大数と24時間あたりの合計の2種類の制限を設けています。組織に割り当てられたAPIのコール数とライセンス数により、APIコール制限が決まります。

同時(20秒間あたり)に行えるAPI コール数

Salesforce REST APIを含むAPIコールには、20秒以上継続するコールを同時に行えるAPIコール数の制限があります。組織ごとの上限を超えたAPIコールは、エラーになります。 <20秒間あたりで同時に行えるAPI要求数> Developer Edition 組織:5件 トライアル組織:5件 本番組織:25件 Sandbox 組織:25件

合計(24 時間あたり)のAPIコール数

24時間あたりのAPIコール数の合計の制限は、Salesforceのライセンスタイプごとに設定されています。 組織の24時間あたりのデフォルトの上限である100,000件と、ライセンス数×ライセンス種類ごとのコール数の上限とアドオンで購入したAPIコール数の合計が上限となります。

APIコールの制限数の計算例

APIコールの制限数について、以下のモデルに基づいて計算してみます。 エディション:Enterprise Edition ライセンス数:10 要求数の制限:110,000 件 計算例:ライセンスごとのAPIコールの上限 100,000(デフォルトの上限)+10(ライセンス数)×1,000 件(ライセンスの上限)=110,000件 計算例:24時間あたりのAPIコールの上限 午前5時に9,000 件のコール、午後11時に6,000 件のコールした場合 翌日の午前5時までに実行できるコール数  95,000件 110,000(APIコールの上限)-(9,000 +6,000)=95,000件

Salesforce REST APIを含むAPIコールの制限、超過するとどうなる?

24時間あたりの APIコール数の合計が制限に達してしまった場合、仕様としてはAPIコールにエラーが返されることになっていますが、Salesforceでは可能な範囲で一定量の操作は続行されます。 これにより、突発的なワークロードの急増や不定期に発生するピークによるワークフローの停止が回避されます。 プラットフォームのリソースを保護し、APIコールの制限を超過しないようハードキャップが設定されています。これは有償版のみの機能で、有効となっている場合のみ適用されます。 継続的にこの機能に依存し過ぎると、ワークフロー停止などのトラブルとなる可能性もあります。あくまでも緊急避難的な機能と考えましょう。 適切にAPIコールを管理し、アプリケーションの最適化やアドオンによるAPIコール数の増強などの対応を検討する必要があります。

Salesforce REST APIを含むAPIコールの制限への対策

Salesforce REST APIを含むAPIコールの制限への対策として、APIコール数を減少させる方法と、APIの制限を引き上げる方法が考えられます。 2つの対策の概要を説明します。

REST APIの複合リソース活用などで、APIコール数を減らす

アプリケーションの最適化により、API コールを減らせる可能性があります。REST APIの複合リソースを活用すれば、クライアントとサーバ間の往復回数を抑え、APIコール数を抑制できます。同時にアプリケーションのパフォーマンスも向上します。 <API コール数を減少させる方法の例> ・クライアント側でキャッシュさせる。 ・REST API で複合リソースを使用して、送信内容を「増分的な変更」から「累積的な変更」に変える ・REST API によるレコードのアップロードと更新から、Bulk APIによる一括アップロードと更新に変更する。

APIコールをアドオンしてAPIの制限を引き上げる

API コールを追加購入してAPIコール数の制限を引き上げることができます。REST APIを含むAPIの使用頻度が高く、日常的にSalesforceのAPIの制限を超えてしまう場合には、この対策が必要になります。 ユーザライセンスの追加購入やエディションのアップグレードをしないで、APIコール数の制限だけを増やせます。 追加購入を検討する前に、各種レポートを活用して、API 使用状況と必要なAPIコール数を精査すべきです。

Salesforce REST APIを含むAPIの使用状況を監視する

Salesforce REST APIを含むAPIの制限に適切に対処するためには、Salesforce組織におけるAPIの使用状況を把握する必要があります。 APIの使用状況と制限に関するリソースを紹介します。

過去24時間に実行したAPI コール数

[システムの概要] ページの [API 使用状況] に、過去 24 時間の API 要求に関する使用情報が表示されます。表示した時点から過去 24 時間前までに実行した API コール数が表示されます。 表示する手順: [設定] >[クイック検索] ボックスで「システムの概要」を検索> [API 要求数 (この 24 時間以内)] 例)木曜日の午後4時に表示した場合 水曜の午後4時以降に実行した API コール数

過去 7 日間に実行したAPI コール数

[過去 7 日間の API 使用状況] レポートでは、当日を含む過去7日間に実行されたAPI コール数が、ユーザ別、日付別に表示されます。 レポートの表示には「設定・定義を表示する」の権限が必要です。また、ユーザがシステム管理者ではない場合は、あわせて「すべて変更」の権限が必要です。但し、内部のバグにより、一部のBulk API コールなどがこのレポートに含まれません。 表示する手順: [レポート] > [管理レポート] > [過去 7 日間の API 使用状況]

APIコール数のメール通知

指定した割り当てコール数を超過したときに、指定ユーザにメール通知するよう設定できます。 設定方法: [設定] >[クイック検索] ボックスに「API 使用状況通知」と入力 >[API 使用状況通知] を選択

Connect REST APIには違う制限がある

SalesforceではREST APIの制限は組織ごとですが、Connect REST APIでは、ユーザ、アプリケーション、時間ごとに制限があります。 Connect REST APIでは制限を超過すると、すべての Connect REST API リソースが 503 Service Unavailable エラーコードを返すようになります。

Salesforce REST APIの制限に適切な対策を

今回は、SalesforceにおけるREST APIを含む、APIコールの制限について説明しました。 REST APIを活用したSalesforceのインテグレーションでは、APIコールの制限によるワークフローの停止は避けなければなりません。 APIコールの使用状況を精査して、しっかりと対策しましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】