# Die Storelift-API URL: https://storelift.net/de/guide/storelift-api/ Language: de Updated: 2026-09-20 Alles, was das Dashboard zeigt, ist auch ein JSON-Endpunkt. 9 davon, alle GET, alle über Ihre eigenen getrackten Apps – ein Skript, ein Tabellen-Job oder ein CI-Schritt kann also dieselben Zahlen lesen, ohne eine Seite zu scrapen. Die API ist in Pro und Studio enthalten; ein Assistent, der dieselben Daten liest, ist meist mit dem MCP-Server besser bedient. ## Basisadresse und Authentifizierung Die Basis ist https://storelift.net/v1. Erstellen Sie einen Schlüssel unter Einstellungen → API; er wird einmal angezeigt und nur als Hash gespeichert – ein verlorener Schlüssel wird also ersetzt, nicht wiederhergestellt. Senden Sie ihn als x-api-key oder als Bearer-Token, falls Ihr Client nur Authorization-Header kennt: curl -s https://storelift.net/v1/apps \ -H "x-api-key: sl_live_..." NOTE: API-Zugriff gibt es in den Tarifen Pro und Studio – ab 20 $ im Monat, 60 $ für Studio. Wird der Tarif herabgestuft, funktioniert der Schlüssel nicht mehr, wird aber nicht gelöscht; ein erneutes Upgrade belebt also dieselbe Integration wieder. ## Die 9 Endpunkte | Endpunkt | Was es liefert | | --- | --- | | GET /v1/apps | Die Apps, die dieses Konto trackt. Jeder andere Aufruf beginnt hier – die id stammt aus diesem. | | GET /v1/apps/{id} | Eine App plus der Snapshot des letzten Laufs. | | GET /v1/apps/{id}/keywords | Aktueller Rang pro getracktem Keyword in einer Storefront, mit Messzustand und durchsuchter Tiefe. | | GET /v1/apps/{id}/rivals | Die Apps, die über Ihnen stehen, jeweils mit den Begriffen, bei denen sie Sie schlagen, und beiden Positionen. | | GET /v1/apps/{id}/ai | Ob ein Assistent Ihre App für Ihre Kategorie nennt, mit der gespeicherten Reihe. Gemessen wird das in Studio. | | GET /v1/apps/{id}/history | Die Rangreihe pro Keyword, gekürzt auf das Verlaufsfenster des Tarifs. | | GET /v1/apps/{id}/page | Ihr eigener Eintrag, so wie der Store ihn ausliefert, beide Plattformen, plus die darauf erkannten datierten Änderungen. | | GET /v1/apps/{id}/reviews | Aktuelle Bewertungen mit Sterne-Übersicht, der Anzahl neuer in diesem Lauf und der Play-Seite, sofern gemessen. | | GET /v1/apps/{id}/charts | Chartposition für Genre und Storefront der App, mit der Reihe. | Endpunkte unter /apps/{id} nehmen country entgegen (ein Storefront-Code wie us, standardmäßig das erste Land der App) und, wo beide Stores gemessen werden, platform=ios|android. ## Die drei Messzustände bleiben über die Schnittstelle hinweg erhalten Diesen Teil sollten Sie lesen, bevor Sie die Integration schreiben. Ein Rangfeld kann eine Zahl sein, aber das Fehlen einer Zahl bedeutet zwei verschiedene Dinge, und die API hält sie auseinander: - measured: true, rank: 7 – die App wurde auf Position 7 gefunden. - measured: true, rank: null – die Suche lief, und die App war in der gelesenen Tiefe nicht in den Ergebnissen. - measured: false – die Suche konnte an diesem Tag nicht ausgeführt werden. Über die Position ist nichts bekannt. { "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 } ] } Die letzten beiden zu einer Null zusammenzulegen, würde einen Einbruch beschreiben, der nie stattgefunden hat, und jeder Durchschnitt darauf wäre falsch. Braucht Ihr Code eine einzige Zahl, behandeln Sie measured: false als Lücke in der Reihe, nicht als Wert. ## Was sie nicht tut - Sie schreibt nicht. Jeder Endpunkt ist GET; alles andere liefert method_not_allowed. Es gibt keinen Weg von der API zu Ihrem Eintrag, Ihren getrackten Keywords oder Ihrer Abrechnung. - Sie misst nicht auf Abruf. Die Endpunkte lesen, was der nächtliche Lauf gesammelt hat. Zweimal zu fragen schickt keine zweite Anfrage an die Stores. - Sie enthält die Umsatzebene nicht. Verbundene Konten (App Store Connect, Apple Ads, RevenueCat, GA4) bleiben im Dashboard – eine bewusste Grenze, kein Versehen. - Der Verlauf wird nach Tarif gekürzt. history und charts schneiden beide am Fenster des Tarifs ab; derselbe Schlüssel reicht also über keinen Endpunkt weiter zurück als über den anderen. ## Fehler | Status | error | Wann | | --- | --- | --- | | 401 | missing_api_key | Kein Schlüssel in der Anfrage. | | 401 | invalid_api_key | Der Schlüssel ist unbekannt oder wurde widerrufen. | | 401 | account_deleted | Das Konto hinter dem Schlüssel existiert nicht mehr. | | 403 | plan_required | Der Tarif enthält keinen API-Zugriff. Die Antwort nennt den aktuellen Tarif. | | 405 | method_not_allowed | Jeder Endpunkt ist GET. Nichts schreibt. | | 404 | not_found | Diese App-ID gibt es in diesem Konto nicht. | | 404 | unknown_endpoint | Kein solcher Pfad unter /v1. | Jeder Fehler ist JSON mit einem Feld error. plan_required liefert zusätzlich plan, sodass ein Client sagen kann, in welchem Tarif der Schlüssel ist, statt zu raten. ## FAQ Q: Gibt es ein Rate-Limit? A: Es gibt kein Kontingent pro Schlüssel. Das Gateway vor der API hat eine kontoweite Obergrenze, und jeder Aufruf aktualisiert einen Nutzungszähler am Schlüssel, sodass Sie in den Einstellungen sehen, ob ein alter Schlüssel noch verwendet wird. Q: Kann ich sie im kostenlosen Tarif nutzen? A: Nein – API-Zugriff beginnt bei Pro. Die kostenlosen Tools auf dieser Website brauchen überhaupt kein Konto, und der kostenlose Tarif misst trotzdem täglich eine App. Q: API oder MCP-Server? A: Ein Skript braucht die API: feste Strukturen, ein Aufruf, kein Modell dazwischen. Ein Assistent braucht den MCP-Server, weil die Tools ihre eigenen Beschreibungen mitbringen und er den richtigen Aufruf wählen kann, ohne dass Sie die Integration schreiben. Beide lesen dieselben Messungen.