Storelift

Storelift › Руководства › Storelift API

ИИ-слой

Storelift API

Всё, что показывает дашборд, доступно и как JSON-эндпоинт. Их 9, все GET, все по вашим отслеживаемым приложениям — поэтому скрипт, задача в таблице или шаг CI могут читать те же числа без парсинга страницы. API входит в Pro и Studio; ассистенту, который читает те же данные, обычно лучше подходит MCP-сервер.

Начать бесплатно →Бесплатный план: 1 приложение, по 25 ключевых слов в 2 витринах, 30 дней истории, без карты и без срока. Pro — $20/мес.

Автор: Переведено с английского оригинала с помощью ИИОбновлено: Разделов: 5

01Базовый адрес и аутентификация

Базовый адрес — https://storelift.net/v1. Создайте ключ в Settings → API; он показывается один раз и хранится только в виде хеша, поэтому потерянный ключ заменяют, а не восстанавливают.

Передавайте его как x-api-key или как bearer-токен, если клиент умеет только заголовки Authorization:

curl -s https://storelift.net/v1/apps \
  -H "x-api-key: sl_live_..."
Доступ к API есть на тарифах Pro и Studio — от $20 в месяц, $60 за Studio. При понижении тарифа ключ перестаёт работать, но не удаляется, поэтому повторное повышение возвращает ту же интеграцию.

029 эндпоинтов

ЭндпоинтЧто возвращает
GET /v1/appsПриложения, которые отслеживает этот аккаунт. Любой другой вызов начинается отсюда — id берётся из него.
GET /v1/apps/{id}Одно приложение плюс снимок последнего замера.
GET /v1/apps/{id}/keywordsТекущая позиция по каждому отслеживаемому ключевому слову в одной витрине, с состоянием замера и глубиной поиска.
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.

03Три состояния замера сохраняются при передаче

Эту часть стоит прочитать до того, как писать интеграцию. Поле позиции может быть числом, но отсутствие числа означает две разные вещи, и 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 }
  ]
}

Если свести два последних случая к нулю, получится обвал, которого не было, и все средние, построенные поверх, будут неверны. Если вашему коду нужно одно число, считайте measured: false пропуском в ряду, а не значением.

04Чего он не делает

  • Он не записывает. Все эндпоинты — GET; всё остальное возвращает method_not_allowed. Из API нет пути к вашей странице, отслеживаемым ключевым словам или оплате.
  • Он не измеряет по запросу. Эндпоинты читают то, что собрал ночной замер. Повторный запрос не отправляет в сторы второй поиск.
  • Он не передаёт слой выручки. Подключённые аккаунты (App Store Connect, Apple Ads, RevenueCat, GA4) остаются в дашборде — это сознательная граница, а не упущение.
  • История обрезается по тарифу. history и charts обрезаются по окну тарифа, поэтому один и тот же ключ не может через один эндпоинт заглянуть дальше, чем через другой.

05Ошибки

СтатусerrorКогда
401missing_api_keyВ запросе нет ключа.
401invalid_api_keyКлюч неизвестен или отозван.
401account_deletedАккаунт, которому принадлежал ключ, удалён.
403plan_requiredТариф не включает доступ к API. В ответе указан текущий тариф.
405method_not_allowedВсе эндпоинты — GET. Ничего не записывается.
404not_foundТакого id приложения нет в этом аккаунте.
404unknown_endpointТакого пути под /v1 нет.

Каждая ошибка — это JSON с полем error. plan_required также возвращает plan, чтобы клиент мог сообщить, на каком тарифе ключ, а не гадать.

Частые вопросы

Есть ли ограничение частоты запросов?

Квоты на ключ нет. У шлюза перед API есть общий потолок на аккаунт, а каждый вызов обновляет счётчик использования ключа, чтобы в Settings было видно, используется ли ещё старый ключ.

Можно ли пользоваться им на бесплатном тарифе?

Нет — доступ к API начинается с Pro. Бесплатным инструментам на этом сайте аккаунт не нужен, а бесплатный тариф всё равно ежедневно измеряет одно приложение.

API или MCP-сервер?

Скрипту нужен API: фиксированные структуры, один вызов, без модели в цепочке. Ассистенту нужен MCP-сервер, потому что у инструментов есть собственные описания и он может выбрать нужный вызов без того, чтобы вы писали интеграцию. Оба читают одни и те же замеры.

Проверьте на своём приложении

Вставьте ссылку на приложение и добавьте ключевые слова. Позиция, приложения выше вас и спрос измеряются каждый день.

Бесплатный план: 1 приложение, по 25 ключевых слов в 2 витринах, 30 дней истории, без карты и без срока. Pro — $20/мес.

Начать бесплатно →

Читайте также