# Storelift API URL: https://storelift.net/ja/guide/storelift-api/ Language: ja Updated: 2026-09-20 ダッシュボードに表示されるものはすべて JSON エンドポイントでもあります。全部で 9 本、すべて GET で、対象はあなた自身がトラッキングしているアプリです。スクリプト、スプレッドシートのジョブ、CI のステップが、ページをスクレイピングせずに同じ数字を読めます。API は Pro と Studio に含まれます。同じデータをアシスタントが読む場合は、たいてい MCP サーバーのほうが適しています。 ## ベースアドレスと認証 ベースは https://storelift.net/v1 です。キーは「設定」→「API」で作成します。表示されるのは一度だけで、ハッシュとしてのみ保存されるため、紛失したキーは復元ではなく再発行になります。 キーは x-api-key として送るか、クライアントが Authorization ヘッダーしか扱えない場合は Bearer トークンとして送ります: curl -s https://storelift.net/v1/apps \ -H "x-api-key: sl_live_..." NOTE: API アクセスは Pro と Studio プランで利用できます。月額 $20 から、Studio は $60 です。プランをダウングレードするとキーは使えなくなりますが削除はされないため、再びアップグレードすれば同じ連携がそのまま動きます。 ## 9 本のエンドポイント | エンドポイント | 返すもの | | --- | --- | | GET /v1/apps | このアカウントがトラッキングしているアプリ。ほかのすべての呼び出しはここから始まり、id はここで得られます。 | | GET /v1/apps/{id} | 1 つのアプリと、最新の実行のスナップショット。 | | GET /v1/apps/{id}/keywords | 1 つのストアフロントでトラッキング中の各キーワードの現在の順位。計測状態と検索した深さ付き。 | | GET /v1/apps/{id}/rivals | あなたより上位のアプリ。それぞれ、あなたに勝っているキーワードと双方の順位付き。 | | GET /v1/apps/{id}/ai | アシスタントがあなたのカテゴリであなたのアプリの名前を挙げるか。保存された推移付き。計測するのは Studio です。 | | GET /v1/apps/{id}/history | キーワードごとの順位推移。プランの履歴期間で切り詰められます。 | | GET /v1/apps/{id}/page | ストアが配信しているとおりの自社のストアページ(両プラットフォーム)と、そこで検出した日付付きの変更。 | | GET /v1/apps/{id}/reviews | 最近のレビューと星の集計、今回の実行で増えた件数、計測している場合は Play 側。 | | GET /v1/apps/{id}/charts | アプリのジャンルとストアフロントでのトップチャート順位と、その推移。 | /apps/{id} 以下のエンドポイントは country(us のようなストアフロントコード。既定はアプリの最初のもの)を受け取り、両ストアを計測している場合は platform=ios|android も受け取ります。 ## 3 つの計測状態は境界を越えても保たれる 連携を書く前に読んでおく価値があるのはこの部分です。順位フィールドは数値になり得ますが、数値がないことには 2 つの異なる意味があり、API はそれを区別したまま返します: - measured: true, rank: 7 — アプリは 7 位で見つかりました。 - measured: true, rank: null — 検索は実行され、読み取った深さまでの結果にアプリはありませんでした。 - measured: false — その日は検索を実行できませんでした。順位については何もわかりません。 { "country": "de", "platform": "ios", "live": true, "measuredAt": "2026-09-19T02:14:08.921Z", "keywords": [ { "term": "traumdeutung", "measured": true, "rank": 7, "demand": 6, "searchDepth": 200 }, { "term": "traumsymbole", "measured": true, "rank": null, "demand": 3, "searchDepth": 200 }, { "term": "traumtagebuch", "measured": false, "rank": null, "demand": null, "searchDepth": null } ] } 後の 2 つをゼロにまとめると、起きていない急落を描くことになり、その上に築いた平均値はすべて間違ったものになります。コードで 1 つの数値が必要な場合は、measured: false を値ではなく推移の欠測として扱ってください。 ## API がしないこと - 書き込みはしません。エンドポイントはすべて GET で、それ以外は method_not_allowed を返します。API からストアページ、トラッキング中のキーワード、請求に届く経路はありません。 - 要求に応じて計測はしません。エンドポイントが読むのは夜間の実行が集めたデータです。2 回問い合わせても、ストアに 2 回目のクエリが送られることはありません。 - 売上レイヤーは含みません。接続済みアカウント(App Store Connect、Apple Ads、RevenueCat、GA4)はダッシュボードにとどまります。見落としではなく、意図的に引いた線です。 - 履歴はプランに応じて切り詰められます。history と charts はどちらもプランの期間で切れるため、同じキーで一方のエンドポイントからだけ遠くまで遡ることはできません。 ## エラー | ステータス | error | 発生するとき | | --- | --- | --- | | 401 | missing_api_key | リクエストにキーがありません。 | | 401 | invalid_api_key | キーが不明か、取り消されています。 | | 401 | account_deleted | キーに紐づくアカウントが削除されています。 | | 403 | plan_required | プランに API アクセスが含まれていません。レスポンスには現在のプランが入ります。 | | 405 | method_not_allowed | エンドポイントはすべて GET です。書き込むものはありません。 | | 404 | not_found | そのアプリ id はこのアカウントにありません。 | | 404 | unknown_endpoint | /v1 以下にそのパスはありません。 | エラーはすべて error フィールドを持つ JSON です。plan_required は plan も返すため、クライアントは推測せずに、キーがどのプランにあるかを表示できます。 ## FAQ Q: レート制限はありますか? A: キーごとのクォータはありません。API の前段のゲートウェイにはアカウント全体の上限があり、各呼び出しはキーの使用カウンタを更新するため、古いキーがまだ使われているかを設定画面で確認できます。 Q: 無料プランで使えますか? A: いいえ。API アクセスは Pro からです。このサイトの無料ツールはアカウントなしで使え、無料プランでも 1 つのアプリを毎日計測します。 Q: API と MCP サーバー、どちらを使うべきですか? A: スクリプトには API が向いています。形が固定で、1 回の呼び出しで済み、間にモデルが入りません。アシスタントには MCP サーバーが向いています。ツールが自身の説明を持っているので、あなたが連携を書かなくても正しい呼び出しを選べます。どちらも同じ計測データを読みます。