Для разработчиков
Всё, что мы измеряем,
можно прочитать.
Один и тот же ключ открывает и REST API, и точку MCP; обе только на чтение и обе входят в план Studio. Ваши данные не заперты в нашем экране - в ваш скрипт, вашу панель или вашего ассистента они приходят в том же виде.
Перенесите в свою панель
Заберите историю позиций во внутреннюю панель, таблицу или еженедельный отчёт. Данные ваши; оставаться на нашем экране они не обязаны.
Проверка перед релизом
Прежде чем отправлять новые метаданные, дайте скрипту прочитать cusp-полосу: на каком месте вы по слову, которое только что убрали из подзаголовка, и правда ли им можно пожертвовать?
Спросите ассистента
С подключённой точкой MCP вопрос «какие мои слова в пороговой полосе и какое популярнее всех?» получает ответ без единого скриншота.
Начать одной строкой
Три входа, один ключ. Выберите тот, который про вас: ассистент, говорящий по MCP, терминал или скрипт.
claude mcp add --transport http rankcusp \
https://rankcusp.com/api/mcp \
--header "Authorization: Bearer rc_live_…" \
--header "Accept-Language: tr"Вот и вся настройка. Второй заголовок - то, из-за чего выводы приходят на вашем языке; без него они придут по-английски. Спросите «какие мои слова в пороговой полосе?» - и ассистент сам вызовет инструменты ниже.
Ключ
Создайте его на экране Аккаунт. Ключ показывается один раз - мы храним только его свёртку, поэтому потерянный ключ не восстановить; вы его отзываете и берёте новый.
Что умеет ассистент
Девять инструментов. Восемь только читают; последний добавляет слова и сообщает об этом клиенту ещё до вызова. Ассистент получает их сразу после подключения, и CLI внутри вызывает именно их.
list_apps- Приложения и соперники в аккаунте.
appId, который просят все остальные инструменты, берётся отсюда. cusp_actions- Полоса 11-30, отсортированная по популярности: короткий список слов, на которые стоит тратить символы.
get_keyword- Одно слово - позиция, популярность, сложность - и вывод, написанный на вашем языке: стоит ли за него браться и на каком основании.
ranking_keywords- По каким словам приложение уже ранжируется - из общей записи каждого поиска, который проделал этот продукт. Наведите на соперника и прочитаете его: Apple не публикует для этого никакой точки, поэтому ответ ровно настолько широк, насколько успели увидеть.
keyword_competitors- Кто ещё ранжируется по фразе, глубже тех десяти, что показывает первая страница. Приложение на 40-м там, где вы на 60-м, - вот кого стоит изучить.
audit_metadata- Читает черновик заголовка, подзаголовка и поля слов до публикации и говорит, что повторяется, что уходит впустую и сколько символов возвращается.
country_priorities- Какой магазин заслуживает ближайшего часа: сколько пороговых слов в каждой стране и где соперники слабее всего.
list_keywords- Все отслеживаемые слова по одной стране, с текущей и прошлой позицией.
add_keywords- Единственный, который пишет. Добавляет слова в отслеживание приложения в одной витрине - списком или вставленной строкой. Они приходят без оценки: оценка стоит запросов к Apple и ждёт сборщика, так что пустая популярность здесь - не ноль.
CLI
Один `curl` и ключ. Она печатает таблицы, рассчитанные на чтение в терминале, - неизмеренное значение и там остаётся тире, ноль не выдумывается нигде.
$ rankcusp cusp 1544… --country us
KEYWORD RANK Δ POP DIFF CUSP
─────────────── ──── ── ─── ──── ────
habit tracker 14 +5 32 41 •
streak tracking 23 - - 38 • rankcusp- Открывает сессию: к чему вы подключены, что можно спросить, и приглашение ввода.
rankcusp apps- Приложения и соперники в аккаунте.
rankcusp keywords <appId> --country <cc>- Все отслеживаемые слова в одном магазине.
rankcusp cusp <appId> --country <cc>- Пороговая полоса приложения, по популярности.
rankcusp keyword <appId> <phrase> --country <cc>- Одно слово вместе с выводом.
rankcusp audit --country <cc> --title … --keywords …- Проверяет черновик метаданных до публикации.
rankcusp countries <appId>- С какого магазина браться дальше.
rankcusp tools- Перечисляет инструменты - так ассистент сам находит дорогу.
Точки
- GET
/api/v1/apps - Приложения и конкуренты в аккаунте.
appId, который просят остальные вызовы, берётся отсюда. - GET
/api/v1/keywords?app=…&country=… - Отслеживаемые слова: позиция, прежняя позиция, популярность, сложность и находится ли слово в cusp-полосе.
- GET
/api/v1/keywords?app=…&country=…&cusp=1 - Только полоса 11-30 - те, на которых правка метаданных окупается сильнее всего.
- GET
/api/v1/keywords?app=…&country=…&keyword=… - Одно слово: его первая страница и вердикт - стоит ли за него браться и на каком основании.
- POST
/api/mcp - Точка MCP (JSON-RPC 2.0). Через неё идут все девять инструментов выше.
Как выглядит ответ?
Пример ниже показывает форму вызова, запрашивающего cusp-полосу. Обратите внимание на вторую строку: previousRank и popularity равны null. Это значит, что слово измерено впервые и его популярность ещё не удалось прочитать, - а не что она равна нулю.
{
"total": 2,
"maxPageSize": 200,
"keywords": [
{
"keyword": "habit tracker",
"country": "us",
"rank": 14,
"previousRank": 19,
"delta": 5,
"popularity": 32,
"difficulty": 41,
"cusp": true,
"lastMeasuredAt": "2026-08-12T04:12:09.114Z"
},
{
"keyword": "streak tracking",
"country": "us",
"rank": 23,
"previousRank": null,
"delta": null,
"popularity": null,
"difficulty": 38,
"cusp": true,
"lastMeasuredAt": "2026-08-12T04:12:11.902Z"
}
]
}Что нужно знать
- Неизмеренное значение возвращается как `null`, никогда как ноль.
rank: null- «вне первых 200»,popularity: null- «ещё не измерено». Клиент, который заменит их нулями, рано или поздно возьмёт от них среднее. - Выводы приходят на вашем языке. Точка MCP читает язык клиента, а CLI берёт
RANKCUSP_LANG=ru. Числа во всех языках одни и те же. - 120 запросов в минуту. Сверх того -
429иretry-after. - Не больше 200 строк на страницу; двигайтесь дальше через
offset. - Пишет только один инструмент.
add_keywordsдобавляет в отслеживание и объявляет себя пишущим, поэтому клиент может спросить перед вызовом. Всё остальное и все маршруты REST только читают. countryобязателен в каждом вызове: одна и та же фраза в двух витринах - это два разных поиска и, значит, две разные строки.- Ключ представляет аккаунт, а не человека. Отдельные ключи вместо одного общего позволяют отозвать один, не сломав другой.