API 레퍼런스

오류 코드

/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_key401Send the key in the Authorization: Bearer header or x-api-key.키를 Authorization: Bearer 헤더 또는 x-api-key로 보내세요.
invalid_api_key401The key is not valid.키가 유효하지 않습니다.
invalid_token401The access token is not valid or has expired.액세스 토큰이 유효하지 않거나 만료되었습니다.
account_deleted401The account behind this key was deleted.이 키의 계정이 삭제되었습니다.
key_expired401The key has expired. Create a new one in Settings › API.키가 만료되었습니다. 설정 › API에서 새 키를 만드세요.
key_revoked401The key was revoked.키가 폐기되었습니다.
key_budget_reached402This key has used its monthly credit budget. Raise or remove the budget in Settings › API; other keys are not affected.이 키는 월간 크레딧 예산을 모두 사용했습니다. 설정 › API에서 예산을 늘리거나 없애세요. 다른 키에는 영향이 없습니다.
key_limit403This 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_leaked401The key was revoked after it was found in a public repository. Create a new one in Settings › API.공개 저장소에서 발견되어 키가 폐기되었습니다. 설정 › API에서 새 키를 만드세요.
ip_not_allowed403This key is restricted to other IP addresses (Settings › API › IP allow list).이 키는 다른 IP 주소로 제한되어 있습니다(설정 › API › IP 허용 목록).
key_paused403The key is paused. Resume it in Settings › API.키가 일시 중지되었습니다. 설정 › API에서 재개하세요.
plan_required403The API is on the Pro plan and above; MCP is on every plan.API는 Pro 플랜 이상에서, MCP는 모든 플랜에서 사용할 수 있습니다.
scope_required403The key does not carry the scope this endpoint needs.이 키에는 이 엔드포인트에 필요한 권한 범위가 없습니다.
app_not_allowed403The key is restricted to other apps.이 키는 다른 앱으로 제한되어 있습니다.
credits_exhausted402This month's API credits are used up.이번 달 API 크레딧을 모두 사용했습니다.
rate_limited429Too many requests for this key. Slow down and retry.이 키의 요청이 너무 많습니다. 속도를 늦추고 다시 시도하세요.
daily_hive_limit429Today's Hive request allowance is used up. It resets at 00:00 UTC.오늘의 Hive 요청 한도를 모두 사용했습니다. 00:00 UTC에 재설정됩니다.
bad_country400Send a two-letter storefront code, e.g. country=us.두 글자 스토어프런트 코드를 보내세요. 예: country=us.
unsupported_platform400This metric source supports iOS. Send platform=ios.이 지표 소스는 iOS를 지원합니다. platform=ios를 보내세요.
bad_days400Send a whole number of days between 1 and 90.1에서 90 사이의 정수 일수를 보내세요.
hive_read_failed400Hive could not read this observation. Retry shortly.Hive가 이 관측값을 읽지 못했습니다. 잠시 후 다시 시도하세요.
hive_write_failed400Hive could not save this observation. Retry shortly.Hive가 이 관측값을 저장하지 못했습니다. 잠시 후 다시 시도하세요.
bad_kind400kind must be one of grossing, free, paid, ipad.kind는 grossing, free, paid, ipad 중 하나여야 합니다.
bad_genre400Send genre as an App Store genre id (e.g. 6014) or a category key such as games.genre는 App Store 장르 ID(예: 6014) 또는 games 같은 카테고리 키로 보내세요.
bad_day400Send day as YYYY-MM-DD, no later than yesterday.day는 YYYY-MM-DD 형식으로, 어제까지의 날짜로 보내세요.
bad_goal400Send goal as downloads, rank or revenue.goal은 downloads, rank 또는 revenue로 보내세요.
bad_range400Send from and to as YYYY-MM-DD, from on or before to.from과 to는 YYYY-MM-DD 형식으로, from이 to와 같거나 앞서도록 보내세요.
bad_term400Send a keyword of 1–150 characters.1–150자의 키워드를 보내세요.
bad_app_id400Send an App Store id (digits) or a Play package name.App Store ID(숫자) 또는 Play 패키지 이름을 보내세요.
not_measured404No 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_connected404This source is not connected to the workspace. Connect it under Settings › Connections.이 소스는 워크스페이스에 연결되어 있지 않습니다. 설정 › 연결에서 연결하세요.
bad_query400Send q with 1–120 characters.q는 1–120자로 보내세요.
bad_id400Send an id from a /v1/search result./v1/search 결과에 있는 ID를 보내세요.
no_filters400Send at least one filter; the accepted filters are listed in filters.필터를 하나 이상 보내세요. 사용할 수 있는 필터는 filters에 나열되어 있습니다.
bad_filter400A filter value is malformed; the field is named in the response. Ranges take numbers, min on or below max.필터 값의 형식이 잘못되었습니다. 해당 필드는 응답에 표시됩니다. 범위에는 숫자를 쓰고, min은 max 이하여야 합니다.
bad_cursor400The cursor is malformed or expired. Pass meta.pagination.nextCursor from the previous response unchanged.커서의 형식이 잘못되었거나 만료되었습니다. 이전 응답의 meta.pagination.nextCursor를 그대로 넘기세요.
bad_ids400Send ids as a comma-separated list, between min and max apps.ids는 쉼표로 구분한 목록으로, min개 이상 max개 이하의 앱을 보내세요.
explorer_required403This 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_allowed405Reads 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_metrics400metrics is a list of popularity and/or difficulty, each at most once.metrics는 popularity와 difficulty 중 하나 또는 둘 다를 담은 목록이며, 각각 한 번까지만 쓸 수 있습니다.
bad_wait400wait is a whole number of seconds from 0 to 20.wait는 0에서 20 사이의 정수(초)입니다.
hive_measurement_unavailable503Hive measurement is not available right now. Nothing was used; retry shortly.지금은 Hive 측정을 사용할 수 없습니다. 아무것도 차감되지 않았습니다. 잠시 후 다시 시도하세요.
hive_measurement_queue_failed503The measurement could not be queued. Nothing was charged; retry shortly.측정을 대기열에 넣지 못했습니다. 과금되지 않았습니다. 잠시 후 다시 시도하세요.
hive_measurement_failed503The source attempt failed. Valid metrics stay in the response; retry later.소스 시도가 실패했습니다. 유효한 지표는 응답에 남습니다. 나중에 다시 시도하세요.
hive_measurement_incomplete503The job finished without a result for every requested metric. Valid metrics stay in the response.요청한 지표 중 일부의 결과 없이 작업이 끝났습니다. 유효한 지표는 응답에 남습니다.
hive_measurement_deferred503The source deferred this job. Valid metrics stay in the response; retry later.소스가 이 작업을 뒤로 미뤘습니다. 유효한 지표는 응답에 남습니다. 나중에 다시 시도하세요.
hive_measurement_not_started503No measurement job is running for this keyword. Retry the request.이 키워드에 대해 실행 중인 측정 작업이 없습니다. 요청을 다시 보내세요.
unknown_action400No such action. Call POST /v1/actions with one of the listed actions.그런 액션은 없습니다. 나열된 액션 중 하나로 POST /v1/actions를 호출하세요.
invalid_arguments400An argument is missing or malformed; the field is named in the response.인수가 빠졌거나 형식이 잘못되었습니다. 해당 필드는 응답에 표시됩니다.
confirm_token_invalid400The confirmation token is unknown or was already used. Preview the action again.확인 토큰을 알 수 없거나 이미 사용되었습니다. 액션을 다시 미리 보세요.
confirm_token_expired400The confirmation token expired. Preview the action again.확인 토큰이 만료되었습니다. 액션을 다시 미리 보세요.
confirm_token_mismatch409The target changed after the preview. Preview the action again and re-read the diff.미리보기 이후 대상이 바뀌었습니다. 액션을 다시 미리 보고 차이를 다시 읽으세요.
write_limit_reached403This write is outside the guardrails for the action (see reason).이 쓰기는 해당 액션의 가드레일을 벗어납니다(reason 참고).
key_in_url400API 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에서 받지 않습니다. URL은 로그와 프록시에 남기 때문입니다. 키는 x-api-key 헤더(또는 Authorization: Bearer)로 보내고, 이 키는 교체하세요.
test_key_read_only403Test keys (sl_test_) never write.테스트 키(sl_test_)는 절대 쓰지 않습니다.
job_not_found404No such job in this workspace.이 워크스페이스에 그런 작업은 없습니다.
workspace_suspended403This workspace is suspended. Contact support@storelift.net.이 워크스페이스는 정지되었습니다. support@storelift.net으로 문의하세요.
ip_list_required403This workspace requires every key to carry an IP allow list. Add one in Settings › API.이 워크스페이스는 모든 키에 IP 허용 목록을 요구합니다. 설정 › API에서 추가하세요.
already_measuring409A measurement for this app is already running.이 앱의 측정이 이미 실행 중입니다.
ai_limit429This month's AI visibility runs are used. The response carries limit and resetsAt.이번 달 AI 가시성 실행을 모두 사용했습니다. 응답에 limit과 resetsAt이 담깁니다.
in_progress409A write for this target is already running. Wait for it to finish.이 대상에 대한 쓰기가 이미 실행 중입니다. 끝날 때까지 기다리세요.
asc_required403Connect App Store Connect under Settings › Connections first.먼저 설정 › 연결에서 App Store Connect를 연결하세요.
asc_role403The App Store Connect key needs the Admin or App Manager role to edit metadata.메타데이터를 편집하려면 App Store Connect 키에 Admin 또는 App Manager 역할이 필요합니다.
asc_rejected502App Store Connect refused the change; its own message is in detail.App Store Connect가 변경을 거부했습니다. App Store Connect의 메시지는 detail에 있습니다.
asc_unavailable502App Store Connect could not be reached. Retry in a moment.App Store Connect에 연결할 수 없습니다. 잠시 후 다시 시도하세요.
ios_only403This action needs the App Store side of the app.이 액션에는 앱의 App Store 쪽이 필요합니다.
no_editable_version404No 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 버전이 없습니다. 메타데이터는 버전이 '제출 준비 중'이거나 거부된 상태일 때만 변경할 수 있습니다. 현재 상태가 나열되어 있습니다.
locale_not_found404That storefront language is not on the version; the available locales are listed.해당 스토어프런트 언어는 이 버전에 없습니다. 사용할 수 있는 로케일이 나열되어 있습니다.
changed_since_preview409The listing changed in App Store Connect after the preview. Nothing was written — preview again.미리보기 이후 App Store Connect에서 등록 정보가 바뀌었습니다. 아무것도 쓰지 않았습니다. 다시 미리 보세요.
ai_text_limit429This month's AI writing allowance is used up. resetsAt says when it renews; Settings › Plan adds more.이번 달 AI 작성 한도를 모두 사용했습니다. resetsAt이 갱신 시점을 알려 주며, 설정 › 플랜에서 추가할 수 있습니다.
ai_not_configured503The AI writer is starting up. Retry in a moment.AI 작성기가 시작되는 중입니다. 잠시 후 다시 시도하세요.
ai_failed502The AI writer returned an answer we could not read. Retry in a moment.AI 작성기가 읽을 수 없는 응답을 반환했습니다. 잠시 후 다시 시도하세요.
audit_failed502The storefront scan stopped midway. Start it again with refresh.스토어프런트 스캔이 중간에 멈췄습니다. refresh로 다시 시작하세요.
review_ai_limit429This month's Review AI allowance is used up. resetsAt says when it renews; Settings › Plan adds more.이번 달 리뷰 AI 한도를 모두 사용했습니다. resetsAt이 갱신 시점을 알려 주며, 설정 › 플랜에서 추가할 수 있습니다.
review_not_found404No 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_locale400The locale is two letters, an underscore and two letters, e.g. de_de, pt_br.로케일은 두 글자, 밑줄, 두 글자 형식입니다. 예: de_de, pt_br.
no_audit409Localization 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_storefront409No storefront of this app reads that locale. Pick a locale the storefront audit lists.이 앱의 어떤 스토어프런트도 해당 로케일을 읽지 않습니다. 스토어프런트 점검에 나열된 로케일을 고르세요.
measure_busy503Apple's search is answering slowly this minute; call again shortly. Nothing was used.지금 Apple 검색의 응답이 느립니다. 잠시 후 다시 호출하세요. 아무것도 차감되지 않았습니다.
localize_quota429This plan's listing writes for the period are used. The response carries limit, used and period.이 플랜의 이번 기간 등록 정보 작성 횟수를 모두 사용했습니다. 응답에 limit, used, period가 담깁니다.
no_job404No localization is running for that locale. Call without poll to start one.해당 로케일에 대해 실행 중인 현지화가 없습니다. 시작하려면 poll 없이 호출하세요.
ai_timeout504The AI writer took too long. Retry in a moment; the allowance was returned.AI 작성기가 너무 오래 걸렸습니다. 잠시 후 다시 시도하세요. 한도는 반환되었습니다.
not_found404No such app in this workspace.이 워크스페이스에 그런 앱은 없습니다.
unknown_endpoint404No such endpoint.그런 엔드포인트는 없습니다.