Коды ошибок
У каждой ошибки из /v1 одно и то же тело. error — стабильный код, на который можно опираться в коде; message объясняет его одним предложением, а docs ведёт сюда.
Сообщения об ошибках приведены на английском, как их возвращает API; ниже дан перевод.
{
"error": "scope_required",
"scope": "revenue:read",
"message": "The key does not carry the scope this endpoint needs.",
"docs": "https://storelift.net/docs/api/errors#scope_required"
}| Код | Статус | Сообщение |
|---|---|---|
missing_api_key | 401 | Send the key in the Authorization: Bearer header or x-api-key.Отправьте ключ в заголовке Authorization: Bearer или x-api-key. |
invalid_api_key | 401 | The key is not valid.Ключ недействителен. |
invalid_token | 401 | The access token is not valid or has expired.Токен доступа недействителен или истёк. |
account_deleted | 401 | The account behind this key was deleted.Аккаунт, которому принадлежал этот ключ, удалён. |
key_expired | 401 | The key has expired. Create a new one in Settings › API.Срок действия ключа истёк. Создайте новый в «Настройки › API». |
key_revoked | 401 | The key was revoked.Ключ отозван. |
key_budget_reached | 402 | This key has used its monthly credit budget. Raise or remove the budget in Settings › API; other keys are not affected.Этот ключ израсходовал месячный бюджет кредитов. Увеличьте или снимите бюджет в «Настройки › API»; на другие ключи это не влияет. |
key_limit | 403 | This workspace has more live keys than it is entitled to, so this key is on hold. Delete a key in Settings › API or upgrade the plan.В этом рабочем пространстве больше активных ключей, чем положено, поэтому этот ключ приостановлен. Удалите один из ключей в «Настройки › API» или перейдите на тариф выше. |
key_leaked | 401 | The key was revoked after it was found in a public repository. Create a new one in Settings › API.Ключ отозван после того, как был найден в публичном репозитории. Создайте новый в «Настройки › API». |
ip_not_allowed | 403 | This key is restricted to other IP addresses (Settings › API › IP allow list).Этот ключ ограничен другими IP-адресами («Настройки › API › Список разрешённых IP»). |
key_paused | 403 | The key is paused. Resume it in Settings › API.Ключ приостановлен. Возобновите его в «Настройки › API». |
plan_required | 403 | The API is on the Pro plan and above; MCP is on every plan.API доступен на тарифе Pro и выше; MCP — на всех тарифах. |
scope_required | 403 | The key does not carry the scope this endpoint needs.У ключа нет области доступа, которая нужна этому эндпоинту. |
app_not_allowed | 403 | The key is restricted to other apps.Ключ ограничен другими приложениями. |
credits_exhausted | 402 | This month's API credits are used up.Кредиты API на этот месяц израсходованы. |
rate_limited | 429 | Too many requests for this key. Slow down and retry.Слишком много запросов для этого ключа. Снизьте частоту и повторите. |
daily_hive_limit | 429 | Today's Hive request allowance is used up. It resets at 00:00 UTC.Сегодняшний лимит запросов к Hive исчерпан. Он сбрасывается в 00:00 UTC. |
bad_country | 400 | Send a two-letter storefront code, e.g. country=us.Отправьте двухбуквенный код витрины, например country=us. |
unsupported_platform | 400 | This metric source supports iOS. Send platform=ios.Этот источник метрик поддерживает iOS. Отправьте platform=ios. |
bad_days | 400 | Send a whole number of days between 1 and 90.Отправьте целое число дней от 1 до 90. |
hive_read_failed | 400 | Hive could not read this observation. Retry shortly.Hive не смог прочитать это наблюдение. Повторите чуть позже. |
hive_write_failed | 400 | Hive could not save this observation. Retry shortly.Hive не смог сохранить это наблюдение. Повторите чуть позже. |
bad_kind | 400 | kind must be one of grossing, free, paid, ipad.kind должен быть одним из значений: grossing, free, paid, ipad. |
bad_genre | 400 | Send genre as an App Store genre id (e.g. 6014) or a category key such as games.Отправьте genre как id жанра App Store (например 6014) или ключ категории, например games. |
bad_day | 400 | Send day as YYYY-MM-DD, no later than yesterday.Отправьте day в формате YYYY-MM-DD, не позднее вчерашнего дня. |
bad_goal | 400 | Send goal as downloads, rank or revenue.Отправьте goal со значением downloads, rank или revenue. |
bad_range | 400 | Send from and to as YYYY-MM-DD, from on or before to.Отправьте from и to в формате YYYY-MM-DD, from не позже to. |
bad_term | 400 | Send a keyword of 1–150 characters.Отправьте ключевое слово длиной 1–150 символов. |
bad_app_id | 400 | Send an App Store id (digits) or a Play package name.Отправьте id App Store (цифры) или имя пакета Play. |
not_measured | 404 | No verified observation is available for the requested app, keyword or scope. Missing data is not zero. Check the request parameters and follow the linked documentation for available actions. |
not_connected | 404 | This source is not connected to the workspace. Connect it under Settings › Connections.Этот источник не подключён к рабочему пространству. Подключите его в «Настройки › Подключения». |
bad_query | 400 | Send q with 1–120 characters.Отправьте q длиной 1–120 символов. |
bad_id | 400 | Send an id from a /v1/search result.Отправьте id из результата /v1/search. |
no_filters | 400 | Send at least one filter; the accepted filters are listed in filters.Отправьте хотя бы один фильтр; допустимые фильтры перечислены в filters. |
bad_filter | 400 | A filter value is malformed; the field is named in the response. Ranges take numbers, min on or below max.Значение фильтра имеет неверный формат; поле названо в ответе. Диапазоны принимают числа, min не больше max. |
bad_cursor | 400 | The cursor is malformed or expired. Pass meta.pagination.nextCursor from the previous response unchanged.Курсор имеет неверный формат или истёк. Передайте meta.pagination.nextCursor из предыдущего ответа без изменений. |
bad_ids | 400 | Send ids as a comma-separated list, between min and max apps.Отправьте ids списком через запятую, от min до max приложений. |
explorer_required | 403 | This endpoint is not open on this account. Hive endpoints run on purchased API credits or Hive Explorer; keyword gap, keyword research and keyword metrics are Hive Explorer only. See https://storelift.net/hive/apiЭтот эндпоинт не открыт для этого аккаунта. Эндпоинты Hive работают на купленных кредитах API или с Hive Explorer; пробелы по ключевым словам, исследование ключевых слов и метрики ключевых слов доступны только в Hive Explorer. См. https://storelift.net/hive/api |
method_not_allowed | 405 | Reads are GET; POST is taken on /v1/actions, /v1/actions/confirm, /v1/apps/{id}/validate-listing and /v1/hive/keywords/{term}/metrics/measure.Чтение выполняется через GET; POST принимается на /v1/actions, /v1/actions/confirm, /v1/apps/{id}/validate-listing и /v1/hive/keywords/{term}/metrics/measure. |
bad_metrics | 400 | metrics is a list of popularity and/or difficulty, each at most once.metrics — это список из popularity и/или difficulty, каждое не более одного раза. |
bad_wait | 400 | wait is a whole number of seconds from 0 to 20.wait — целое число секунд от 0 до 20. |
hive_measurement_unavailable | 503 | Hive measurement is not available right now. Nothing was used; retry shortly.Измерение Hive сейчас недоступно. Ничего не израсходовано; повторите чуть позже. |
hive_measurement_queue_failed | 503 | The measurement could not be queued. Nothing was charged; retry shortly.Не удалось поставить измерение в очередь. Ничего не списано; повторите чуть позже. |
hive_measurement_failed | 503 | The source attempt failed. Valid metrics stay in the response; retry later.Попытка обращения к источнику не удалась. Корректные метрики остаются в ответе; повторите позже. |
hive_measurement_incomplete | 503 | The job finished without a result for every requested metric. Valid metrics stay in the response.Задание завершилось, но результат получен не по всем запрошенным метрикам. Корректные метрики остаются в ответе. |
hive_measurement_deferred | 503 | The source deferred this job. Valid metrics stay in the response; retry later.Источник отложил это задание. Корректные метрики остаются в ответе; повторите позже. |
hive_measurement_not_started | 503 | No measurement job is running for this keyword. Retry the request.Для этого ключевого слова нет выполняющегося задания измерения. Повторите запрос. |
unknown_action | 400 | No such action. Call POST /v1/actions with one of the listed actions.Такого действия нет. Вызовите POST /v1/actions с одним из перечисленных действий. |
invalid_arguments | 400 | An argument is missing or malformed; the field is named in the response.Аргумент отсутствует или имеет неверный формат; поле названо в ответе. |
confirm_token_invalid | 400 | The confirmation token is unknown or was already used. Preview the action again.Токен подтверждения неизвестен или уже использован. Выполните предпросмотр действия заново. |
confirm_token_expired | 400 | The confirmation token expired. Preview the action again.Срок действия токена подтверждения истёк. Выполните предпросмотр действия заново. |
confirm_token_mismatch | 409 | The target changed after the preview. Preview the action again and re-read the diff.Объект изменился после предпросмотра. Выполните предпросмотр действия заново и перечитайте diff. |
write_limit_reached | 403 | This write is outside the guardrails for the action (see reason).Эта запись выходит за защитные ограничения действия (см. reason). |
key_in_url | 400 | API keys are not accepted in the URL, where logs and proxies keep them. Send the key in the x-api-key header (or Authorization: Bearer) and rotate this one.Ключи API не принимаются в URL: там их сохраняют логи и прокси. Отправьте ключ в заголовке x-api-key (или Authorization: Bearer) и замените этот ключ новым. |
test_key_read_only | 403 | Test keys (sl_test_) never write.Тестовые ключи (sl_test_) никогда не выполняют запись. |
job_not_found | 404 | No such job in this workspace.Такого задания в этом рабочем пространстве нет. |
workspace_suspended | 403 | This workspace is suspended. Contact support@storelift.net.Это рабочее пространство приостановлено. Напишите на support@storelift.net. |
ip_list_required | 403 | This workspace requires every key to carry an IP allow list. Add one in Settings › API.В этом рабочем пространстве у каждого ключа должен быть список разрешённых IP. Добавьте его в «Настройки › API». |
already_measuring | 409 | A measurement for this app is already running.Измерение для этого приложения уже выполняется. |
ai_limit | 429 | This month's AI visibility runs are used. The response carries limit and resetsAt.Запуски видимости в ИИ на этот месяц израсходованы. В ответе есть limit и resetsAt. |
in_progress | 409 | A write for this target is already running. Wait for it to finish.Запись для этого объекта уже выполняется. Дождитесь её завершения. |
asc_required | 403 | Connect App Store Connect under Settings › Connections first.Сначала подключите App Store Connect в «Настройки › Подключения». |
asc_role | 403 | The App Store Connect key needs the Admin or App Manager role to edit metadata.Чтобы редактировать метаданные, ключу App Store Connect нужна роль Admin или App Manager. |
asc_rejected | 502 | App Store Connect refused the change; its own message is in detail.App Store Connect отклонил изменение; его сообщение находится в detail. |
asc_unavailable | 502 | App Store Connect could not be reached. Retry in a moment.Не удалось связаться с App Store Connect. Повторите через минуту. |
ios_only | 403 | This action needs the App Store side of the app.Для этого действия нужна версия приложения для App Store. |
no_editable_version | 404 | No editable App Store version. Metadata can only change while a version is in Prepare for Submission or rejected — the current states are listed.Нет редактируемой версии в App Store. Метаданные можно менять, только пока версия находится в статусе Prepare for Submission или отклонена; текущие статусы перечислены. |
locale_not_found | 404 | That storefront language is not on the version; the available locales are listed.Этого языка витрины нет в версии; доступные локали перечислены. |
changed_since_preview | 409 | The listing changed in App Store Connect after the preview. Nothing was written — preview again.Страница изменилась в App Store Connect после предпросмотра. Ничего не записано — выполните предпросмотр заново. |
ai_text_limit | 429 | This month's AI writing allowance is used up. resetsAt says when it renews; Settings › Plan adds more.Лимит текстов с ИИ на этот месяц исчерпан. resetsAt сообщает, когда он обновится; в «Настройки › Тариф» можно добавить ещё. |
ai_not_configured | 503 | The AI writer is starting up. Retry in a moment.ИИ-редактор запускается. Повторите через минуту. |
ai_failed | 502 | The AI writer returned an answer we could not read. Retry in a moment.ИИ-редактор вернул ответ, который мы не смогли прочитать. Повторите через минуту. |
audit_failed | 502 | The storefront scan stopped midway. Start it again with refresh.Проверка витрин остановилась на полпути. Запустите её снова с refresh. |
review_ai_limit | 429 | This month's Review AI allowance is used up. resetsAt says when it renews; Settings › Plan adds more.Лимит ИИ для отзывов на этот месяц исчерпан. resetsAt сообщает, когда он обновится; в «Настройки › Тариф» можно добавить ещё. |
review_not_found | 404 | No review with that id in the stored reviews for this storefront. Take the id from get_reviews or search_reviews.Среди сохранённых отзывов этой витрины нет отзыва с таким id. Возьмите id из get_reviews или search_reviews. |
bad_locale | 400 | The locale is two letters, an underscore and two letters, e.g. de_de, pt_br.Локаль — это две буквы, подчёркивание и две буквы, например de_de, pt_br. |
no_audit | 409 | Localization writes from the storefront audit's source listing. Run get_storefront_audit with start for this app, then call again.Локализация пишется на основе исходной страницы из проверки витрин. Запустите get_storefront_audit с start для этого приложения и вызовите снова. |
no_storefront | 409 | No storefront of this app reads that locale. Pick a locale the storefront audit lists.Ни одна витрина этого приложения не использует эту локаль. Выберите локаль из списка проверки витрин. |
measure_busy | 503 | Apple's search is answering slowly this minute; call again shortly. Nothing was used.Поиск Apple сейчас отвечает медленно; вызовите снова чуть позже. Ничего не израсходовано. |
localize_quota | 429 | This plan's listing writes for the period are used. The response carries limit, used and period.Написания страниц по этому тарифу за период израсходованы. В ответе есть limit, used и period. |
no_job | 404 | No localization is running for that locale. Call without poll to start one.Для этой локали локализация не выполняется. Вызовите без poll, чтобы запустить её. |
ai_timeout | 504 | The AI writer took too long. Retry in a moment; the allowance was returned.ИИ-редактор работал слишком долго. Повторите через минуту; лимит возвращён. |
not_found | 404 | No such app in this workspace.Такого приложения в этом рабочем пространстве нет. |
unknown_endpoint | 404 | No such endpoint.Такого эндпоинта нет. |