自分のアプリのエンドポイント
このワークスペースが追跡しているアプリ:順位、競合、レビュー、ストアページ、ストアページの変更履歴、フィーチャー掲載、チャート、ストアページのチェック。
認証 · クレジット · 共通パラメータ · エラーコード · openapi.json
GET /apps
このStoreliftアカウントで追跡しているアプリを一覧します(ID、名前、国、キーワード)。最初に呼び出してください。ほかのすべてのツールは、ここで得た appId を必要とします。
curl "https://storelift.net/v1/apps" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/keywords
App Store / Google Play の1つの国における、1つのアプリのキーワード順位です。3つの状態は別物です。measured=false はクエリを計測できなかったこと、rank=null は計測したもののアプリが上位の結果にいなかったこと、rank=<number> は順位を意味します。決して1つにまとめないでください。未計測の日をゼロとして数えると、誤った答えになります。
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/keywords?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/rivals
検索でこのアプリより上位にいるアプリです。競合ごとに、相手が上回っているキーワード、そこでの相手の順位(theirRank)と自分の順位(ourRank)を返します。ourRank が null の場合、そのキーワードではアプリがまったく表示されていません。
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/ai
AIエンジンの回答を日付付きでサンプリングした中での、アプリへの言及です。ChatGPT、Claude、Geminiがすべてのユーザーに見せている内容を再現するものではありません。StudioまたはEnterpriseと ai:read スコープが必要です。engines には計測した各エンジンの回答が入り、providers は measured、failed、not_measured のいずれかの状態を示します。利用できないエンジンはスコア0ではありません。日付付きのサンプルとその質問数を読んでください。普遍的なランキングでも、一般向けの回答すべてを測ったものでもありません。
ほかに受け付けるもの: appId (必須) · country
curl "https://storelift.net/v1/apps/sbx-lumen/ai?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/ai-check
1つの国の1つのアプリについて、AI可視性のサンプルを開始します。その実行で利用できるエンジンを使います。StudioまたはEnterpriseと ai:read スコープが必要で、Proのパネル利用枠ではこのMCPツールを使えません。プランに含まれる、または購入したAI可視性の実行を1回使います。結果は get_ai_visibility が返します。計測はアプリごとに同時に1件だけ実行されます。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
country | query | string | 国コード。例:tr、us(空 = アプリの最初の3か国) |
ほかに受け付けるもの: appId (必須)
この呼び出しはクレジットに加えて、プランまたは購入済みの AI 可視性の計測を一回分使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/history
1つの国のキーワード順位履歴です。系列の各点は [day, rank] です。rank が null の日はアプリが上位の結果にいなかったことを意味し、順位が悪いこととは別です。Proプラン。
ほかに受け付けるもの: appId (必須) · country
curl "https://storelift.net/v1/apps/sbx-lumen/history?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/page
1つの国における、アプリ自身のストア掲載シグナルです(名前とサブタイトルは含みません)。バージョン、App内イベント、エディトリアル掲載、類似アプリの棚、スクリーンショット一式(iOS)に加え、Google Playページ(正確なインストール数、評価の分布、広告/アプリ内課金のフラグ、ランキングバッジ)を返します。ios.listingExtras には、アプリが対応する言語、星の内訳(1★〜5★)、開催中と今後の App 内イベント、プロモーションテキスト、おすすめのアプリ内課金が入ります。Free では言語の数、最初の 5 言語、星の内訳が返り、残りの件数は locked で示されます。timeline は掲載情報で検出した日付付きの変更の一覧で、順位変動を説明する最も手軽な手がかりです。measured=false はページを一度も読んでいないことを意味し、空のページとは別です。
ほかに受け付けるもの: appId (必須) · country
curl "https://storelift.net/v1/apps/sbx-lumen/page?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/reviews
1つの国の最近のレビューです。list はApp Storeのレビュー、android はGoogle Playのレビューです(期間はより短めです)。どちらも本文、評価、日付付きです。newCount は前回の計測以降に届いた件数です。古いレコードでは null で届くため、ゼロではなく不明として読んでください。android: null はそのPlayページが最初の計測待ちであること、空のリストはそのページにレビューがないことを意味します。
ほかに受け付けるもの: appId (必須) · country
curl "https://storelift.net/v1/apps/sbx-lumen/reviews?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/charts
1つの国のApp Storeランキング順位です。リスト別(無料/有料/売上、総合とカテゴリ内)の現在の順位と、その履歴を返します。Google Playは意図的に含めていません。Google Playには公開のランキングがないため、ここに数値を出せば作り物になります。
ほかに受け付けるもの: appId (必須) · country
curl "https://storelift.net/v1/apps/sbx-lumen/charts?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/reviews/search
1つのストアフロントで、1つのアプリのレビューをテキスト、星評価、アプリのバージョン、期間で検索し、新しい順に返します。プランのレビュー期間内で、レビューアーカイブ全体から最大1,000行です。total は一致件数で、truncated は要求した行数より多く一致したことを示します。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
q | query | string | レビューのタイトルまたは本文から探すテキスト |
rating | query | string | 星評価。カンマ区切り。例:1,2 |
version | query | string | レビューが書かれたアプリのバージョン。例:2.4.0 |
from | query | string | 開始日。YYYY-MM-DD |
to | query | string | 終了日。YYYY-MM-DD |
limit | query | number | 行数。最大1000(既定は100) |
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/reviews/search?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/reviews/stats
1つのストアフロントにおける1つのアプリの星評価の分布、平均、1〜2つ星レビューの割合に加え、日ごとの推移(1日あたりの件数と平均)とバージョン別の内訳を返します。評価の低下を、その原因となったリリースと照らし合わせられます。既定は直近90日です。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
days | query | number | 直近N日。最大365(既定は90) |
from | query | string | 開始日。YYYY-MM-DD(days より優先) |
to | query | string | 終了日。YYYY-MM-DD |
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/reviews/stats?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/reviews/summary
1つのストアフロントにおける1つのアプリのレビューAIです。最近のレビューの要約と、そこに含まれるテーマ(不満、要望、称賛)を、根拠として引用したレビューとともに返します。同じ日・同じレビューのまとまりであれば、保存済みの要約を利用枠を使わずに返します。新しい要約は、月間利用枠からレビューAIクレジットを1つ使います(すべてのプランが対象で、Freeはお試し分)。要約するにはレビューが少なすぎる間は、件数とともに state: "too_few" を返します。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
store | query | ios | android | 既定は ios |
lang | query | en | tr | de | es | fr | pt | ru | ja | ko | zh | 要約の言語(既定は en) |
ほかに受け付けるもの: appId (必須) · country
この呼び出しはクレジットに加えて、月間の利用枠からレビューAI のクレジットを一つ使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/reviews/reply-draft
1件のレビューに対するデベロッパ返信の下書きを、そのストアフロントの言語で返します。レビューの評価と本文はStorelift側に保存されたレビューから取るため、下書きはレビュアーが実際に書いた内容に答えます。note には返信で伝えたいこと(修正を出した、試してほしい設定など)を加えます。返すのは下書きだけです。返信の投稿は、確認後に reply_review が行います。レビューAIクレジットを1つ使います。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
store | query | ios | android | 既定は ios |
reviewId必須 | query | string | get_reviews または search_reviews で得たレビューID |
note | query | string | 返信で伝える内容。例:2.4.1で修正済み |
ほかに受け付けるもの: appId (必須) · country
この呼び出しはクレジットに加えて、レビューAI のクレジットを一つ使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/timeline
1つのアプリの掲載情報に加わった日付付きの変更です。ストアページから読んだ新バージョン、スクリーンショット、App内イベント、フィーチャーと、App Store Connectから読んだキーワード欄の編集を、それぞれ前後のキーワード順位の動きとともに返します。変更前の最後の計測と、変更後 window 日以内の最後の計測との間で、上昇・下落・ランクイン・圏外になった語句と、変動の大きい上位5件です。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
window | query | number | 各変更のあと順位を読む日数。最大30(既定は7) |
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/timeline?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/today
1つのアプリの1日を1回の応答で返します。「今日」画面にあたります。連携したソースからの購入・トライアル・更新、新着レビュー、前日と比べた順位とカテゴリの動き、自分より上に新しく入ったアプリ、新しいApp内イベント、そして前日のApp Store、Google Play、手取り額、広告の数値を、それぞれ出どころのソースを明記して返します。tz を指定すると「今日」がユーザー自身の1日になります。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
tz | query | string | IANAタイムゾーン。例:Europe/Istanbul(既定はUTC) |
day | query | string | 読み取る別の日。YYYY-MM-DD |
ほかに受け付けるもの: appId (必須)
curl "https://storelift.net/v1/apps/sbx-lumen/today" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/competition
1つのストアフロントで各キーワードを何本のアプリが競っているかを、2本以上のアプリで見つかった語句について返します。既定はアプリの追跡キーワードです。追跡する前に候補を数えるには terms を渡します。corpus は集計のもとになった集合の大きさです。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
terms | query | string | 最大100語。カンマ区切り(既定は追跡キーワード) |
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/competition?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/rivals/{rivalId}
1つのストアフロントにおける、自分のアプリの競合1件です。名前、評価、評価数とそれらの90日間の履歴(名前の変更は掲載情報の書き換えの表れです)、および順位のついているキーワードとそれぞれの順位を返します。キーワード一覧は月間利用枠から競合キーワード調査を1回使い、30日間開いたままになります。利用枠を使い切ると、応答は locked: true とともに競合自身の数値だけを返します。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
rivalId必須 | path | string | get_rivals で得た競合ID |
ほかに受け付けるもの: appId (必須) · country · platform
この呼び出しはクレジットに加えて、月間の利用枠から競合キーワード調査を一回分使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/rivals/{rivalId}/adnetworks
競合が広告でどう収益化しているかを返します。取引している広告ネットワークで、それぞれ DIRECT または RESELLER の区別が付きます。状態で場合を区別します。見つかったネットワーク、広告ネットワークを公表していないデベロッパ(no_file)、今回は確認を完了できなかったもの(unreachable)、デベロッパサイトのない掲載情報(no_site)のいずれかです。14日間保持します。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
rivalId必須 | path | string | get_rivals で得た競合ID |
ほかに受け付けるもの: appId (必須) · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals/1000000001/adnetworks" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/rivals/{rivalId}/market
1つのストアフロントにおける競合の市場データです。Google Playでは、正確なインストール数とアプリ内課金の価格帯、さらに計測が2回そろえばその間のインストール数を返します。App Storeでは、価格、評価数、リリース日、アプリ内課金の有無を返します。リクエスト時に計測し、7日間保持します。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
rivalId必須 | path | string | get_rivals で得た競合ID |
ほかに受け付けるもの: appId (必須) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals/1000000001/market?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/storefront-audit
すべてのApp StoreストアフロントにおけるiOSの掲載情報です。アプリが販売されている場所、自国語ではなく代替のテキストや代替のスクリーンショットを表示しているストアフロント、各ストアフロントが追加でインデックスする第2ロケールを返します。直近のスキャンを返します。refresh: true は、直近のスキャンが12時間より古い場合に新しいスキャンを開始し、eta 秒を添えて202を返します。その時間が過ぎてからもう一度呼び出してください。完全な表はPro以上で、Freeはプレビューです。
ほかに受け付けるもの: appId (必須)
curl "https://storelift.net/v1/apps/sbx-lumen/storefront-audit" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/suggest
1つのストアフロントにおける1つのアプリの新しいキーワード案を、そのストアフロントの検索言語で返します。ストアの検索ボックスに実際に入力される1〜3語の語句で、それぞれに、誰が検索し、なぜこのアプリがそのニーズに応えるのかを示す1行の理由が付きます。追跡キーワード、非表示にしたキーワード、ブランド名は含みません。月間利用枠からAIライティングクレジットを1つ使います(Pro以上)。追跡する前に get_keyword_metrics で案を計測してください。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
cc | query | string | ストアフロントコード。例:tr、us(既定はアプリの最初の国) |
lang | query | en | tr | de | es | fr | pt | ru | ja | ko | zh | 理由の言語(既定は en) |
ほかに受け付けるもの: appId (必須)
この呼び出しはクレジットに加えて、月間の利用枠から AI ライティングのクレジットを一つ使うため、ここにコピー用のコマンドはありません。
POST /apps/{appId}/validate-listing
App Storeの掲載情報の下書きを、App Store Connectに送る前にチェックします。フィールドごとの文字数上限、キーワード欄でスペースに費やした文字数、重複、名前やサブタイトルにすでにある語、ブランド名と不要な語、名前とサブタイトルの重複、Apple製品名と価格に関する語、テキストがそのロケールの言語と文字で書かれているか、そしてアプリの追跡キーワードのうち下書きに入っていないものを報告します。何も書き込みません。チェックしたいフィールドだけを渡してください。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
locale | body | string | 掲載情報のロケール。例:en-US、de-DE、ja |
country | body | string | カバー状況を照合する追跡キーワードの国。例:us(既定はアプリの最初の国) |
name | body | string | アプリ名。最大30文字 |
subtitle | body | string | サブタイトル。最大30文字 |
keywords | body | string | キーワード欄。カンマ区切り、最大100文字 |
promotionalText | body | string | プロモーションテキスト。最大170文字 |
description | body | string | 説明文。最大4000文字 |
ほかに受け付けるもの: appId (必須)
curl -X POST "https://storelift.net/v1/apps/sbx-lumen/validate-listing" \
-H "Authorization: Bearer $STORELIFT_API_KEY" \
-H "content-type: application/json" \
-d '{"locale":"en-US","name":"Lumen: Sleep Sounds","subtitle":"White noise and rain for sleep","keywords":"calm,relax,nap,baby,fan,ocean,lullaby"}'GET /apps/{appId}/draft
掲載情報の下書き(タイトル、サブタイトル、プロモーションテキスト、説明文)です。1つのストアフロントでこのアプリについて計測したキーワードから、需要の高い順に組み立てます。各フィールドにはストアの上限に対する文字数が付き、さらに審査に関わる2つのチェック(タイトルまたはサブタイトル内のApple製品名(App Storeのみ)と、価格に関する表現)が付きます。termsUsed は下書きのもとになった計測済みの語句、excluded はまだ計測していない追跡語句の一覧です。ストアには何も書き込みません。書き込みは update_listing が行います。AIライティングクレジットを1つ使います(Pro以上)。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
cc | query | string | ストアフロントコード。例:tr、us(既定はアプリの最初の国) |
ほかに受け付けるもの: appId (必須) · platform
この呼び出しはクレジットに加えて、AI ライティングのクレジットを一つ使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/localize
新しいロケール向けに、App Storeの掲載情報一式(名前、サブタイトル、キーワード欄、説明文)を、アプリの元の掲載情報から書きます。すべてのキーワードは、先にそのストアフロントで計測します。最初の呼び出しで書き込みを開始し、pending を返します(プランの掲載文作成を1回使います。Freeは合計1回、Proは月20回、Studioは月75回)。掲載情報が返るまで poll=true で呼び出しを繰り返してください。shots=true を付けると、スクリーンショットのキャプションも同じ言語で返ります。事前にそのアプリで get_storefront_audit を実行しておく必要があります。App Store Connectには何も書き込みません。書き込みは update_listing が行います。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
locale必須 | query | string | 対象ロケール。例:de_de、pt_br、ja_jp(de-DE も使えます) |
ほかに受け付けるもの: appId (必須)
この呼び出しはクレジットに加えて、プランの掲載文の書き込みを一回分使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/shot-text
1つのストアフロントで、App Storeの最初の4枚のスクリーンショットに入っているキャプションの文字を返します。Appleがインデックスするのは掲載情報のテキストなので、この文字は検索順位ではなくコンバージョンに効きます。応答は indexed: false でそれを示します。スクリーンショットが変わるまで保持します。新たに読み取るとAIライティングクレジットを1つ使います(Pro以上)。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
cc | query | string | ストアフロントコード。例:tr、us(既定はアプリの最初の国) |
ほかに受け付けるもの: appId (必須)
この呼び出しはクレジットに加えて、AI ライティングのクレジットを一つ使うため、ここにコピー用のコマンドはありません。
GET /apps/{appId}/chart-movers
アプリ自身のカテゴリランキングで誰が動いたかを返します。上昇・下落(3位以上)、新規ランクイン、圏外になったアプリを名前付きで返し、さらにアプリ自身と選んだ競合が両日にどの順位にいたかを返します。カテゴリはアプリのランキング記録から取ります。別のカテゴリを見るには genre を渡します。Proプラン。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
kind | query | free | paid | grossing | ランキング(既定は free) |
genre | query | string | App StoreのジャンルID。例:6013(既定はアプリ自身のカテゴリ) |
days | query | number | 何日前と比べるか。1-90(既定は1) |
limit | query | number | 区分ごとの行数。最大100(既定は25) |
ほかに受け付けるもの: appId (必須) · country
curl "https://storelift.net/v1/apps/sbx-lumen/chart-movers?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/featuring
Appleが今日アプリをどこに表示しているかを国別に返します。エディトリアルカード(dedicated: true はこのアプリを取り上げたストーリー、false はコレクション内の掲載)、開催中と予定のApp内イベント、Appleの「You Might Also Like」の棚、フィーチャーと新しいイベントの日付付き履歴です。country を空にすると、アプリが追跡しているすべての国が対象になります。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
country | query | string | 国コード。例:tr、us(空 = アプリが追跡しているすべての国) |
ほかに受け付けるもの: appId (必須)
curl "https://storelift.net/v1/apps/sbx-lumen/featuring?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}
追跡中のアプリ1件を、プラットフォームID、国、国別の追跡キーワード、最新の計測スナップショット(国別のキーワード表)とともに返します。appId を得るには、先に list_apps を使ってください。
ほかに受け付けるもの: appId (必須)
curl "https://storelift.net/v1/apps/sbx-lumen" \
-H "Authorization: Bearer $STORELIFT_API_KEY"サンプルレスポンス
GET /apps/{appId}/weekly-plan
このアプリの今週の掲載情報の提案です。ダッシュボードの「今週やること」カードと同じ一覧で、効果の高い順に並びます。提案は厳しいチェックを通ったときだけ表示されます。キーワードをタイトルやサブタイトルに入れるのは、それがアプリのニッチの中核となる需要の高い語で、アプリがすでに4〜15位にいて、上位の競合アプリが名前に入れており、ブランド名や順位のついている語を落とさずに収まる場合だけです。ニッチな語やロングテールのキーワードは、空きがあるときに限りキーワード欄までにとどめます。ほかのカテゴリ、ほかの言語、ユーザーが却下したキーワードは決して表示しません。直近の掲載情報の変更がまだ落ち着いていない間は何も提案しません(settling がいつまでかを示します)。各タスクには、提案文、現在のテキストと提案するテキスト、追加する語と外す語、理由(計測した事実)、トレードオフ、確度が付きます。country を指定しないと全ストアフロントをまとめ、同じ変更は対象国を添えた1つのタスクになります。空のことがよくありますが、それは意図どおりです。Proプラン。
| パラメータ | 場所 | 型 | 説明 |
|---|---|---|---|
country | query | string | ストアフロント1つ。例:tr、us(省略すると全ストアフロントをまとめます) |
goal | query | downloads | rank | revenue | 互換性のために受け付けます。提案は期待値の高い順に並びます |
platform | query | ios | android | ストア(既定は ios) |
limit | query | integer | 返すタスク数。1〜10(既定は5) |
ほかに受け付けるもの: appId (必須)
curl "https://storelift.net/v1/apps/sbx-lumen/weekly-plan?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"