Geliştirici belgeleri

API referansı

Tek temel adres, tek anahtar; giden de gelen de JSON. Aşağıdaki her uç, aynı adla bir MCP aracı olarak da var.

openapi.json · Hata kodları · MCP sunucusu

Temel adres

https://storelift.net/v1

Aşağıdaki her yol bu adrese görelidir. Okumalar için GET gönder; POST yalnız /actions içindir.

Kimlik doğrulama

Anahtarı Authorization: Bearer <key> ya da x-api-key başlığında gönder. Anahtarları Ayarlar › API altında üret; her anahtar kapsamlarını, isteğe bağlı olarak da izinli IP listesini, uygulama listesini ve aylık kredi bütçesini taşır. Bütçesine ulaşan anahtar, ay dönene kadar 402 key_budget_reached yanıtı verir; öbür anahtarlar çalışmaya devam eder.

REST API için canlı anahtarlar (sl_live_) Pro ve üstü planlardadır ya da kredi paketiyle her planda açılır. Free planda yalnız MCP sunucusunda çalışan tek canlı anahtar vardır. Test anahtarları (sl_test_) her planda kum havuzu verisini döndürür. Asistanlar her planda MCP sunucusu üzerinden OAuth ile giriş yapar.

Kredi ve sınırlar

Her çağrı, üzerinde yazan kadar kredi harcar; /account ve /usage 0 kredidir, bir yazmanın önizlemesi de 0 kredidir. Her yanıt x-credits-used, x-credits-limit, x-credits-remaining ve x-credits-reset başlıklarını taşır.

Saniyedeki istek sayısı plana göre belirlenir; aşınca retry-after ile birlikte 429 rate_limited alırsın. Hive uçları satın alınmış API kredisiyle ya da Hive Explorer ile açılır ve ayrıca günlük bir haktan düşer: paket kredisiyle 500 çağrı, Hive Explorer ile 10.000. Çağrı başına kredi

Kum havuzu

https://storelift.net/v1/sandbox, aşağıda örnek yanıtı olan her okumayı anahtarsız ve kredisiz yanıtlar. Veri sabit ve tarihlidir; bu sayede testler kararlı kalır.

Test anahtarları (sl_test_) aynı veriyi canlı temel adreste döndürür ve hiçbir zaman yazmaz.

Sıra nasıl okunur

Bir sıranın üç hâli vardır ve bunlar birbirine karışmaz: measured: false sorgunun o gün ölçülmediğini, rank: null ölçüldüğünü ama uygulamanın okunan sonuçların dışında kaldığını gösterir; sayı ise sıranın kendisidir.

Hatalar

Her hata aynı gövdeyle döner: { "error": "<code>", "message": "…", "docs": "…" }. error değişmez; kodunda message değerine değil ona göre karar ver. Bazı kodlar scope, field ya da limit gibi alanlar ekler. Bütün hata kodları

Örnek işler

Üç iş; ilk çağrıdan saklayacağın sonuca kadar. Her komut kum havuzunda çalışır; bu yüzden kredi harcamaz ve hiçbir şeyi değiştirmez, her yanıt da kum havuzunun o komuta verdiği yanıttır.

Kendi anahtarınla yollar /sandbox olmadan aynıdır ve her çağrı üzerinde yazan kadar kredi harcar. Test anahtarı (sl_test_) orada da kum havuzu verisiyle, 0 krediyle yanıt verir.

Bu haftanın kelime sıralarını bir rapora ekle

Bir uygulamanın bir vitrindeki kelimelerini oku ve tek bir satır sakla. Her hafta çalıştır; satırlar alt alta dizilip trendi gösterir.

Kapsam
apps:read
Kredi
2 · kum havuzunda ya da test anahtarıyla 0
Plan
Kum havuzu ve test anahtarı: her plan · canlı anahtar: Pro ve üstü
Çalıştığı ilk sürüm
API 1.5.0
  1. Uygulama kimliğini bul.

    curl "https://storelift.net/v1/sandbox/apps"
    Yanıt
  2. O uygulamanın o vitrinde izlenen bütün kelimelerini oku.

    curl "https://storelift.net/v1/sandbox/apps/sbx-lumen/keywords?country=us"
    Yanıt (keywords: 2 / 8 satır)

Yanıtı, sakladığın satıra indirge. measured: true ve rank: null taşıyan kelime ölçülmüştür, uygulama sonuçlarda yoktur; ölçülmemiş kelimeden ayrı sayılır.

function weeklyRow(body) {
  const ranked = body.keywords.filter((k) => k.measured && k.rank !== null);
  const best = ranked.reduce((a, b) => (a && a.rank <= b.rank ? a : b), null);
  return {
    measuredAt: body.measuredAt,
    country: body.country,
    platform: body.platform,
    keywords: body.keywords.length,
    ranked: ranked.length,
    absent: body.keywords.filter((k) => k.measured && k.rank === null).length,
    notMeasured: body.keywords.filter((k) => !k.measured).length,
    best: best && { term: best.term, rank: best.rank },
  };
}

Sonuç

{
  "measuredAt": "2026-09-27T02:10:00.000Z",
  "country": "us",
  "platform": "ios",
  "keywords": 8,
  "ranked": 6,
  "absent": 2,
  "notMeasured": 0,
  "best": {
    "term": "nature sounds",
    "rank": 29
  }
}

Çalışma alanında olmayan bir uygulama kimliği 404 yanıtı alır:

curl "https://storelift.net/v1/sandbox/apps/sbx-unknown/keywords?country=us"
{
  "error": "not_found",
  "message": "No such app in this workspace.",
  "docs": "https://storelift.net/docs/api/errors#not_found"
}

Üstünde kimin sıralandığını sor

Aynı veri, MCP sunucusu üzerinden: asistan iki araç çağrısı yapar. Çağrıları elle göndermek için STORELIFT_TEST_KEY değişkenine bir test anahtarı koy.

Kapsam
apps:read
Kredi
2 · test anahtarıyla 0
Plan
Test anahtarı ve OAuth: her plan · canlı anahtar: her plan
Çalıştığı ilk sürüm
API 1.5.0 · araçlar: storelift-mcp 1.1.1
  1. list_apps uygulama kimliğini döndürür.

    curl "https://storelift.net/mcp" \
      -H "Authorization: Bearer $STORELIFT_TEST_KEY" \
      -H "content-type: application/json" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_apps","arguments":{}}}'
    Yanıt
  2. get_rivals onun üstünde sıralanan uygulamaları kelime kelime döndürür.

    curl "https://storelift.net/mcp" \
      -H "Authorization: Bearer $STORELIFT_TEST_KEY" \
      -H "content-type: application/json" \
      -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_rivals","arguments":{"appId":"sbx-lumen","country":"us"}}}'
    Yanıt (rivals: 2 / 3 satır)

Yanıtın söylediği, rakip rakip. ourRank: null, uygulamanın sonuçlarında yer almadığı kelimedir.

function rivalsAhead(body) {
  return body.rivals.map((r) => ({
    name: r.name,
    ratings: r.ratings,
    aheadOn: r.terms.length,
    absentOn: r.terms.filter((t) => t.ourRank === null).length,
  }));
}

Sonuç

[
  {
    "name": "Calm Rain",
    "ratings": 57046,
    "aheadOn": 8,
    "absentOn": 2
  },
  {
    "name": "Noisli",
    "ratings": 16114,
    "aheadOn": 8,
    "absentOn": 2
  },
  {
    "name": "Deep Sleep Tones",
    "ratings": 64683,
    "aheadOn": 8,
    "absentOn": 2
  }
]

Çalışma alanında olmayan bir uygulama kimliği başarısız bir istek olarak değil, asistanın okuyabildiği bir araç hatası olarak döner:

curl "https://storelift.net/mcp" \
  -H "Authorization: Bearer $STORELIFT_TEST_KEY" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":9,"method":"tools/call","params":{"name":"get_rivals","arguments":{"appId":"sbx-unknown","country":"us"}}}'
ERROR: No such app in this workspace.

Bir kimlik bilgisinin neleri okuyabildiğini HTTP ya da MCP ile gör

Her entegrasyonun ilk çağrısı: hangi plan, hangi kapsamlar, hangi uygulamalar ve kaç kredi kaldı. GET /account ile whoami aracı aynı gövdeyi döndürür; ikisi de kredi harcamaz.

Kapsam
gerekmez
Kredi
0
Plan
Kum havuzu, test anahtarı ve OAuth: her plan · canlı anahtar: Pro ve üstü
Çalıştığı ilk sürüm
API 1.5.0 · araçlar: storelift-mcp 1.5.0
  1. HTTP ile.

    curl "https://storelift.net/v1/sandbox/account"
    Yanıt
  2. Aynı yanıt, araç çağrısı olarak.

    curl "https://storelift.net/mcp" \
      -H "Authorization: Bearer $STORELIFT_TEST_KEY" \
      -H "content-type: application/json" \
      -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"whoami","arguments":{}}}'
    Yanıt

Bir çağrıyı yapmadan önce gerektirdiği kapsama bak; toplu bir işe başlamadan önce de bakiyeyi oku.

function allowance(body) {
  return {
    plan: body.plan,
    auth: body.auth,
    scopes: body.scopes,
    apps: body.apps.map((a) => a.id),
    creditsLeft: body.credits.limit - body.credits.used,
    ratePerSecond: body.ratePerSecond,
  };
}

Sonuç

{
  "plan": "studio",
  "auth": "test_key",
  "scopes": [
    "apps:read",
    "reviews:read",
    "ai:read",
    "revenue:read",
    "hive:read",
    "hive:spy",
    "hive:estimate",
    "ads:read"
  ],
  "apps": [
    "sbx-lumen",
    "sbx-quill"
  ],
  "creditsLeft": 50000,
  "ratePerSecond": 10
}

Kimlik bilgisi olmadan MCP ucu 401 ile birlikte bir JSON-RPC hatası döndürür; MCP yetkilendirmesini destekleyen istemci OAuth girişini bu yanıttan başlatır:

curl "https://storelift.net/mcp" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":9,"method":"tools/call","params":{"name":"whoami","arguments":{}}}'
{
  "jsonrpc": "2.0",
  "id": 9,
  "error": {
    "code": -32001,
    "message": "No credentials were sent. Sign in with OAuth on any plan, or add Authorization: Bearer <your Storelift API key>. Live keys require Pro, Studio, Enterprise, or an eligible Free account with purchased API credits or active Explorer. Tool access still depends on plan, scopes and credits. Generate a key at Storelift → Settings → API keys."
  }
}

Ortak parametreler

Bunlar, kabul eden her uçta aynı anlama gelir; her uç kabul ettiklerini kendi listesinde gösterir.

ParametreYerTürAçıklama
appIdpathstringlist_apps'ten gelen uygulama kimliği
countryquerystringülke kodu, ör. tr, us (varsayılan: uygulamanın ilk ülkesi)
platformqueryios | androidvarsayılan ios
countryquerystringvitrin kodu, ör. us (varsayılan us)

Hesap

Anahtarın kendi planı, kapsamları ve kullanımı, hesap içi arama ve uyarı akışı. Planı ve kullanımı okumak 0 kredi.

  • GET /alertsBu çalışma alanının uyarı akışı — sıra düşüşleri ve yükselişleri, sonuçlara giren ya da sonuçlardan…
  • GET /portfolioÇalışma alanındaki bütün uygulamalarda bugün, uygulama başına bir satır: canlı kullanıcılar…
  • GET /accountBu anahtarın ya da oturumun kime ait olduğu: plan, nasıl kimlik doğruladığı, taşıdığı kapsamlar…
  • GET /usageÇalışma alanının bütün kotaları, kullanılan miktar ve sıfırlanma zamanıyla: izlenen kelimeler…
  • GET /searchBu hesabın kendi kayıtlarında ara — uygulama adları ve mağaza kimlikleri, izlenen kelimeler ve…
  • GET /fetchsearch'ten gelen bir kimliğin arkasındaki tam kayıt: bir uygulama kartı, güncel durumu ve sıra…

Uygulamaların

Bu çalışma alanının izlediği uygulamalar: sıralar, rakipler, yorumlar, mağaza sayfası, künye zaman çizelgesi, öne çıkarılmalar, listeler ve künye denetimleri.

Gelir ve Apple Ads

Uygulama başına bağlı kaynaklar: gelir, abonelik olayları, App Store hunisi, fiyatlar ve teklif kodları, bir değişikliğin öncesi ve sonrası; Apple Ads kampanyaları, kelimeleri, arama terimleri ve komutları. Kapsamlar: revenue:read ve ads:read.

Hive

Storelift ağının ölçtüğü herhangi bir uygulama ya da pazar; sen izlesen de izlemesen de. Hive Explorer'ın parçası.

Yazma

Her yazma iki adımda çalışır: önce hiçbir şeyi değiştirmeyen bir önizleme, ardından önizlemenin döndürdüğü jetonla onay.