メインコンテンツまでスキップ
アプリ比較

ShopifyのAPI上限はアプリ同士で取り合っていない|同期が遅い理由は、あなたが払っているアプリのプランにある

shopify.devのAPI limitsページは一文で書いています。レート制限はアプリとストアの組み合わせ単位であり、同じストアでも1つのアプリの呼び出しが別のアプリの制限に影響することはない、と。在庫同期を速くするためにアプリを削除しても、空く枠は存在しません。公開されているレバーはプランで、Standardが毎秒100ポイント、Advancedが200、Plusが1,000です。そしてMatrixifyは自社ドキュメントで、通常ストアで300%、Plusで500%のAPI Call Limit引き上げをShopifyから受けていると書いています。この数字はShopifyの公式ドキュメントのどこにも出てきません。マーチャントが実際に動かせるレバーは、アプリ側のプランです。Matrixifyは並列スレッドを売り、syncX: Stock Syncは実行頻度を「より速いスケジュール1件につき1ドル」で売り、Syncioは取り込み商品数、Trunkは月間注文数で課金します。4本のアプリが同じ仕事を4つの別々の分母で値付けしていて、そのどれもAPI上限ではありません。shopify.dev、各開発元ドキュメント、en-US表示のShopify App Storeで2026年9月15日に確認しました。

AIECアプリ研究所 AI編集部公開日 更新日 読了 17分#アプリ比較

この記事でわかること

この記事の目次Contents閉じる開く

仕入先のフィードが朝9時に更新される。ストアの在庫が変わるのは11時40分。その間に、もう手元にない商品が4個売れている。

よくある見立ては「アプリを入れすぎていて、ストアのAPI枠を取り合っているのだろう」というものです。もっともらしい推測ですが、Shopifyのドキュメントはこれを一文で否定しています。

結論を決めている一文

shopify.devのShopify API limitsにこうあります。

GraphQL Admin API rate limits are based on the combination of the app and store. This means that calls from one app don't affect the rate limits of another app, even on the same store.

レート制限はアプリとストアの組み合わせ単位です。インストールしたアプリはそれぞれ自分専用のバケツを持ちます。在庫同期アプリがレビューアプリやロイヤリティアプリ、ERPコネクタに邪魔されることはありません。API枠を空けるためにアプリを削除しても何も空きません。共有プールがそもそも存在しないからです。

これはShopifyの他の上限とは逆の挙動です。自動割引の数、checkoutエディタのスロット、テーマのセクション——これらは本当にアプリ同士とShopify標準機能で共有されています。APIのレート制限だけが例外で、そして最も「共有されている」と誤解されやすい上限でもあります。

Shopifyが公開している数字と、その単位

単位は「秒あたりのリクエスト数」ではありません。秒あたりのクエリコストです。leaky bucketモデルで管理され、GraphQLスキーマの各フィールドに整数のコストが割り当てられています。オブジェクトは1、mutationは10、connectionはfirstやlastの引数でサイズが決まります。バケツの回復速度は次のとおりです。

API tierGraphQL Admin APIの回復速度
Standard毎秒100ポイント
Advanced Shopify毎秒200ポイント
Shopify Plus毎秒1,000ポイント
Shopify for enterprise (Commerce Components)毎秒2,000ポイント

Shopifyの表はプラン名ではなくAPIのtierで書かれており、プランごとの数字は明記されていません。AdvancedはAdvanced Shopifyに対応します。BasicとGrowがどちらもStandardに入るというのは、この表のtier構成からの推定であり、Shopifyが明言しているわけではありません。

そしてPlusを含む全tierに共通する上限が3つあります。

  • 単一クエリのコスト上限は1,000ポイント。プランに関係なく適用されます。
  • 配列を受け取る引数の最大サイズは250件。超えるとエラーになります。
  • ページネーションの上限は25,000オブジェクト。件数クエリも25,000件までしか正確でなく、それ以上は25,001が返ります。つまり「このセグメントに何人いるか」は25,000を超えると実数が分かりません。

さらにShopifyは数字を下げる権利を明記しています。「Shopify may temporarily reduce API rate limits to protect platform stability.」上の数字はすべて上限であって、保証ではありません。

一方で、明確にレート制限の対象外のものもあります。Storefront APIには実際の買い物客のトラフィックに対する固定のリクエスト数制限がありません。フラッシュセールの来訪が同期アプリのAdmin API予算を食うことはない、ということです。自動化されたクローラーは制限対象で、自分のストアをクロールしたいマーチャント向けには、Shopify管理画面内にそのまま使えるWeb Bot Authの署名が用意されています。

Shopifyが公開していない数字

「特定のアプリは表の数字より多い枠をもらえるのか」という問いに対して、Shopifyのドキュメントは何も答えません。開発元のドキュメントは答えます。

Matrixifyは自社のチュートリアルページ(最終更新2026年6月17日)にこう書いています。

By default, Shopify Plus stores have 500% API Call Limit increase for Matrixify app and regular Shopify stores have 300% API Call Limit increase.

公開されているtierは出発点にすぎず、Shopifyがアプリごと・ストアごとに調整しているということです。Matrixifyはさらに、Plusストアなら500%を超える引き上げもあり得ること、その基準は公開されていないこと、Shopify Plusのサポート窓口やMerchant Success Managerに相談すべきことを書いています。

ここから2つのことが言えます。1つ目、「うちのストアのレート制限はいくつか」という問いに単一の答えはありません。どのアプリが聞いているかで変わります。2つ目、開発元のドキュメントに引き上げの記述がないなら、引き上げがあると仮定してはいけません。

用語について補足します。Matrixifyのページは今も上限を「API Call Limit」40・80という旧RESTのバケツで説明しています。REST Admin APIは2024年10月1日にlegacy APIとなり、2025年4月1日以降にApp Storeへ提出される新規公開アプリはGraphQLのみを使うことが必須になりました。開発元のドキュメントでは当分、2つの語彙が混在します。

実際に動かせるレバー

アプリ単位のレート制限引き上げをマーチャントが交渉できることはまずありません。API速度のためだけにShopifyプランを上げるのも高くつきます。目の前にあるレバーはアプリ側の料金ページで、throughputはそこで売られています。

在庫データをShopifyへ入れるという同じ仕事を、4本のアプリが4通りの分母で値付けしています。以下はen-US表示のShopify App Storeで2026年9月15日に確認した内容です。

アプリ開発元Built for Shopify評価最低料金料金が連動する対象
MatrixifyITissibleあり4.9 (1,626)無料 (Demo)、以降$20/月ファイルあたり行数、次に並列スレッド数
syncX: Stock Sync & InventorySyncXあり4.7 (914)無料、以降$7/月同期の実行頻度
Syncio Inventory SyncSyncioリスティングに表示なし4.7 (168)無料、以降$19/月取り込む商品数
Trunk ‑ Stock Sync & BundlingTrunkリスティングに表示なし4.9 (407)$35/月月間注文数

Shopifyが実際に計測している単位で課金しているアプリは、1本もありません。

Matrixifyは並列スレッドを売る

MatrixifyのShopify App Storeリスティングページ上部

出典: Shopify App Store(Matrixify、2026-09-15時点)

プランはDemo(無料)、Basic $20/月、Big $50/月、Enterprise $200/月です。上位3つまではファイルあたりの行数で説明されています。Basicはファイルあたり商品5,000件・注文およびドラフト注文1,000件、Bigは商品50,000件・注文およびドラフト注文10,000件です。

速度を決めるのは並列数で、リスティングのEnterpriseカードにはそれが直接書かれています。「Parallel threads in each job: 10+」「Parallel manual jobs: 2」。残りは自社ドキュメントが埋めています。DemoとBasicは1プロセス、Bigは5スレッド固定、Enterpriseは10以上で動的に増え、ストアのAPI Call Limitが十分に大きければ最大250スレッドまで使います。

この最後の条件節に、両者の関係が凝縮されています。スレッドを買い増しても、Shopifyのバケツが供給できなければ意味がありません。Shopifyのプランを上げても、アプリが並列で使う作りでなければ意味がありません。片方だけでは効かない、ということです。

Matrixifyには「Continue importing the next day if Shopify daily import limit is reached」というジョブオプションもあります。プラットフォーム側の1日上限に対するアプリ側の回避策で、一括処理ツールを選ぶときに探す価値のある機能です。

syncX: Stock Syncは実行頻度を売る

syncX: Stock Sync & InventoryのShopify App Storeリスティングページ上部

出典: Shopify App Store(syncX: Stock Sync & Inventory、2026-09-15時点)

こちらのthroughputはスレッドではなく時間です。Free planは商品2,000件・更新フィード1件で、更新は手動のみ。スケジュール実行そのものがありません。Starterは$7/月(または$77/年)で「Schedule 1 times daily (24 hr min)」、商品500〜2,500件、フィード5件まで。Expertは$10/月(または$110/年)で「Schedule 12 times daily (2 hr min)」、商品5,000〜50,000件、フィード30件までになります。

Expertの従量課金の行をよく読んでください。「$1 per additional faster schedule」。「from $7 per additional feed」「$2 per additional 5,000 products」と並んでいます。同期頻度が従量課金のメニューになっているということです。朝9時のフィード問題に対する答えが「30分ごとに回す」なら、それは明細の一行であり、しかも売り越しの窓を実際に縮めるのはその一行です。

アップグレード前に気づいておきたい点が1つあります。Free planの上限が商品2,000件なのに対し、Starterは500〜2,500件です。FreeからStarterへの移行が、自動的に容量の増加になるとは限りません。

Syncioは取り込み商品数を売る

Syncio Inventory SyncのShopify App Storeリスティングページ上部

出典: Shopify App Store(Syncio Inventory Sync、2026-09-15時点)

Syncioは「Real-time Inventory Sync」をFreeを含む全プランに付け、カタログの大きさで課金します。Freeは取り込み25商品、Starter $19/月が26〜100商品、Traction $29/月が101〜500商品、Growth $39/月が501〜1,000商品です。接続元ストア数はどのtierでも無制限です。

リスティングには、orders・product settings・payoutsが別課金のアドオンであること、接続元ストア側のプランは開発元サイトで価格設定されていることが明記されています。App Storeに出ている金額は二者関係の片側だけなので、導入前に両端から見積もってください。

Trunkは注文数で課金する

Trunk ‑ Stock Sync & BundlingのShopify App Storeリスティングページ上部

出典: Shopify App Store(Trunk ‑ Stock Sync & Bundling、2026-09-15時点)

Trunkには無料プランもカタログ規模の段階もありません。Essentialが$35/月から、Proが$39/月からで、どちらも月間注文数で上がります。Essentialは月101〜200注文で$45、201〜400で$59、401〜800で$89。Proは同じ段で$59、$79、$119となり、bundling、kitting、重複SKU同期が加わります。どちらもリアルタイムの在庫同期と無制限の販売チャネルを含み、14日間の無料トライアルが付きます。

この分母はカタログではなく売上と連動します。回転の速い小さなカタログに向き、回転の遅い大きなカタログでは不利になります。

「リアルタイム」が意味できる範囲

4本のうち3本がリアルタイム同期を掲げています。その主張の天井を決めているのはShopify自身のwebhookドキュメントで、どこに天井があるかは知っておく価値があります。

Shopifyは同一トピック内でも、同一リソースに対する異なるトピック間でも、webhookの順序を保証していません。products/updateが対応するproducts/createより先に届くことがあります。配信そのものも保証されていません。開発者向けの指示は率直です——アプリはwebhookでデータが届くことに依存すべきではなく、定期的にデータを取り直すreconciliation jobを実装してデータの整合性を保つこと。

つまり「リアルタイム」はトリガーの説明であって、保証ではありません。よくできたリアルタイム同期アプリは、webhookリスナーと定期的な突き合わせ処理の組み合わせであり、配信が落ちた日にあなたを守るのは後者です。同期アプリを評価するときに役立つ問いは「リアルタイムと書いてあるか」ではありません。「webhookが届かなかったときにどうなるかを開発元が文書化しているか」です。

読み取りが重い処理の逃げ道はbulk operationsで、Shopifyは「don't have the max cost limits or rate limits that single queries have」と明記しています。API version 2026-01以降、1アプリが1ストアで同時に実行できるbulk operationは種類ごとに5本になりました(それ以前は1本)。カタログ全体をページネーションで読み続けているアプリは、遅い道を選んでいます。

レート制限ではない2つのスロットル

マーチャントがぶつかって「APIの問題」として片付けてしまいがちな、別物の上限が2つあります。

バリエーション50万件の作成スロットル。 ストアの商品バリエーションが500,000件に達すると、productCreate・productUpdate・productVariantCreate経由で1日に作成できる新規バリエーションは10,000件までになります。Shopifyのドキュメントは、この追加制限がShopify Plusプランのストアには適用されないと書いています。なおMatrixifyは自社ページで「この上限は更新には課されず、既存商品の価格・在庫数・画像は件数にかかわらず更新できる」と説明していますが、Shopifyの対象mutationにはproductUpdateも含まれているため、これはShopifyの記述ではなく開発元の説明として扱ってください。

ページネーション25,000オブジェクトの上限。 これはスロットルですらなく、どのアプリも超えられない固定の天井です。エクスポート結果の行数が妙にきりのいい数字で止まるのは、たいていこれが理由です。

お金を使う前にやること

順番はこうです。

  1. アプリのログを見せてもらう。 スロットリングは目に見えるエラーを出します。429 Too Many Requestsのレスポンス、そしてGraphQLの全応答に含まれるextensions.costのthrottle statusです。開発元がスロットリングのエラーを示せないなら、その遅延はレート制限の問題ではなく、Shopifyプランを上げても直りません。
  2. アプリに何を払っているかを確認する。 24時間の最短間隔はレート制限ではありません。$7のプランです。「同期が遅い」の原因として最も多く、最も安く直せるのがここです。
  3. そのストアで引き上げ枠を持っているか開発元に聞く。 Matrixifyはジョブ実行時に現在の引き上げ率をアプリ内に表示します。引き上げを取得している開発元は、たいていその旨を書いています。
  4. そのうえでShopifyプランを検討する。 StandardからAdvancedで回復速度が2倍、AdvancedからPlusで5倍。これは実在する差ですが、SKUが数十万に届かないストアでボトルネックになることはまれです。
  5. 枠を空けるためのアンインストールはやめる。 空ける枠が存在しません。

4本の選び分け

  • 一度きりの移行、または大きな定期インポートで、実行の時間枠を自分で決められる場合: Matrixify。時間枠が本当に固定なときだけスレッドを買ってください。$20/月のBasicでも、時間をかければ大量のデータが動きます。
  • 仕入先フィードの定期同期で、数時間の遅延が許容できる場合: syncX: Stock Sync。プラン料金だけでなく、faster scheduleのアドオンを月額に織り込んで比較してください。
  • 自分が所有する複数ストアで1つのカタログを共有し、変更のたびに反映したい場合: Syncio。接続先と接続元の両側で見積もること。
  • Shopifyに加えてEtsy、Amazon、eBayで1つのSKUプールを扱い、注文数が予測できる場合: Trunk。
  • フィードではなくERPや会計システムとの突き合わせが目的の場合: 上記はどれも主役になりません。ERPベンダーがサポートするコネクタから始め、同じ問いをそれに当ててください。

通底しているのは、Shopifyのプランが決める天井にはほとんどのストアが届いておらず、ほぼ全員が立っているのはアプリのプランが決める床のほうだ、ということです。どちらにぶつかっているのかを確認してから、引き上げにお金を払ってください。

参考・出典

RelatedShopify標準のBin nameはShopifyの外へ出ない。APIが無いため、ビンロケーションアプリはすべて自前のコピーを持っている

Shopifyは2025年8月25日、在庫CSVにBin name列を追加しました。バリアントごと・ロケーションごとに1つのビンを持ち、作成はCSVインポートのみ、Order Printerのピックリストに印字されます。できないのは、Shopifyの外に出ることです。Shopifyのスタッフは開発者フォーラムで2025年10月と2026年1月に、このフィールドへの公開APIアクセスが存在しないと明言し、開発者フォーラムでは2026年6月時点でも未対応のままだと報告されています。この1点がカテゴリ全体の設計を決めています。EasyScanとiPackyはビンをmetafieldに保存し、Bins-USAとShelfPilotは自前のデータベースに保存し、無料アプリのSimple Bin Locationsはmetafieldのビンを注文メモへ複写して納品書に出します。Shopify自身のマルチビンモデル、つまりビン単位の数量とunbinnedQuantityフィールドを持つ構造は、現時点では開発ストア限定のフィーチャープレビューとしてしか存在しません。料金、プランの壁、各アプリがビンデータをどこに置くかを、Shopify App Store、Shopifyヘルプセンター、shopify.dev、Shopifyコミュニティフォーラムで2026年9月18日に確認しています。