Documentação para desenvolvedores › Referência da API
Endpoints dos seus apps
Os apps que este workspace acompanha: posições, concorrentes, avaliações, página na loja, linha do tempo da página, destaques, top charts e verificações da página.
Autenticação · Créditos · Parâmetros comuns · Códigos de erro · openapi.json
GET /apps
Lista os apps acompanhados nesta conta do Storelift (id, nome, países, palavras-chave). Chame primeiro: todas as outras ferramentas precisam de um appId daqui.
curl "https://storelift.net/v1/apps" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/keywords
Posições das palavras-chave de um app em um país da App Store / Google Play. SÃO TRÊS ESTADOS DIFERENTES: measured=false significa que a consulta não pôde ser medida, rank=null significa que foi medida, mas o app não está entre os primeiros resultados, e rank=<number> é a posição. Nunca os reduza a um só: contar um dia não medido como zero gera uma resposta falsa.
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/keywords?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/rivals
Apps que aparecem ACIMA deste app na busca. Para cada concorrente, você recebe as palavras-chave em que ele supera você, a posição dele (theirRank) e a sua (ourRank); ourRank null significa que o app não aparece para essa palavra-chave.
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/ai
Menções ao app em uma amostra datada de respostas de mecanismos de IA; isso não reproduz o que o ChatGPT, o Claude ou o Gemini mostram a cada usuário. Exige Studio ou Enterprise e o escopo ai:read. engines traz as respostas de cada mecanismo medido; providers informa os estados measured, failed ou not_measured. Um mecanismo indisponível não é uma pontuação zero. Leia a amostra datada e sua contagem de perguntas; não é um ranking universal nem uma medida de todas as respostas dadas aos consumidores.
Também aceita: appId (obrigatório) · country
curl "https://storelift.net/v1/apps/sbx-lumen/ai?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/ai-check
Inicia uma amostra de visibilidade em IA para um app em um país, com os mecanismos disponíveis para a execução. Exige Studio ou Enterprise e o escopo ai:read; a cota do painel do Pro não dá acesso a esta ferramenta MCP. Consome uma execução de visibilidade em IA do plano ou comprada; get_ai_visibility retorna o resultado. Só uma medição por app é executada por vez.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
country | query | string | código do país, ex.: tr, us (vazio = os três primeiros países do app) |
Também aceita: appId (obrigatório)
Além dos créditos, esta chamada usa uma execução de visibilidade em IA, do plano ou comprada, então não há comando para copiar aqui.
GET /apps/{appId}/history
Histórico de posições das palavras-chave em um país. Os pontos da série são [dia, posição]; uma posição null significa que o app não estava entre os primeiros resultados naquele dia, o que não é o mesmo que uma posição ruim. Plano Pro.
Também aceita: appId (obrigatório) · country
curl "https://storelift.net/v1/apps/sbx-lumen/history?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/page
Os sinais da página da loja do próprio app em um país (sem nome e subtítulo): versão, eventos no app, destaques editoriais, seções de apps semelhantes e o conjunto de capturas de tela (iOS), além da página do Google Play (número exato de instalações, histograma de notas, indicadores de anúncios e de compras no app, selo de parada). ios.listingExtras traz os idiomas que o app suporta, a distribuição de estrelas (de 1★ a 5★), os eventos no app em andamento e futuros, o texto promocional e as compras no app em destaque; no Free vêm o número de idiomas, os 5 primeiros idiomas e a distribuição de estrelas, e locked mostra quantos itens há no resto. timeline lista as mudanças datadas que detectamos na página: a explicação mais simples para uma mudança de posição. measured=false significa que a página nunca foi lida; não é o mesmo que uma página vazia.
Também aceita: appId (obrigatório) · country
curl "https://storelift.net/v1/apps/sbx-lumen/page?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/reviews
Avaliações recentes de um país: list traz as avaliações da App Store e android, as do Google Play (uma janela mais curta), cada uma com texto, nota e data. newCount é quantas chegaram desde a medição anterior; em um registro antigo vem como null, então leia como desconhecido, e não como zero. android: null significa que essa página do Play aguarda a primeira medição, e uma lista vazia significa que a página não tem avaliações.
Também aceita: appId (obrigatório) · country
curl "https://storelift.net/v1/apps/sbx-lumen/reviews?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/charts
Posição nas paradas da App Store em um país: posições atuais por lista (gratuitos / pagos / faturamento, geral e na categoria) e seu histórico. O Google Play fica de fora de propósito: ele não tem uma parada pública, e um número aqui seria inventado.
Também aceita: appId (obrigatório) · country
curl "https://storelift.net/v1/apps/sbx-lumen/charts?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/reviews/search
Pesquisa as avaliações de um app em uma loja por texto, nota em estrelas, versão do app e intervalo de datas, da mais recente para a mais antiga: até 1.000 linhas do arquivo completo de avaliações dentro da janela de avaliações do seu plano. total é o número de correspondências; truncated informa quando mais linhas corresponderam do que você pediu.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
q | query | string | texto a encontrar no título ou no corpo da avaliação |
rating | query | string | notas em estrelas, separadas por vírgula, ex.: 1,2 |
version | query | string | versão do app em que a avaliação foi escrita, ex.: 2.4.0 |
from | query | string | primeiro dia, YYYY-MM-DD |
to | query | string | último dia, YYYY-MM-DD |
limit | query | number | linhas, até 1000 (padrão 100) |
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/reviews/search?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/reviews/stats
Distribuição das notas em estrelas, média e parcela de avaliações de 1–2 estrelas de um app em uma loja, além de uma curva dia a dia (contagem e média por dia) e um detalhamento por versão, para que uma queda seja associada à versão que a causou. Padrão: os últimos 90 dias.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
days | query | number | últimos N dias, até 365 (padrão 90) |
from | query | string | primeiro dia, YYYY-MM-DD (tem prioridade sobre days) |
to | query | string | último dia, YYYY-MM-DD |
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/reviews/stats?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/reviews/summary
IA de avaliações para um app em uma loja: um resumo das avaliações recentes e dos temas nelas — reclamações, pedidos, elogios —, cada um com as avaliações citadas como evidência. O mesmo dia e o mesmo lote de avaliações retornam o resumo guardado sem consumir a cota; um novo resumo consome um crédito de IA de avaliações da cota mensal (todos os planos; o Free tem uma amostra). Responde state: "too_few" com a contagem enquanto houver poucas avaliações para resumir.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
store | query | ios | android | padrão: ios |
lang | query | en | tr | de | es | fr | pt | ru | ja | ko | zh | idioma do resumo (padrão en) |
Também aceita: appId (obrigatório) · country
Além dos créditos, esta chamada usa um crédito da IA de avaliações da cota mensal, então não há comando para copiar aqui.
GET /apps/{appId}/reviews/reply-draft
Um rascunho de resposta do desenvolvedor a uma avaliação, no idioma da loja. A nota e o texto vêm da avaliação guardada do nosso lado, então o rascunho responde ao que a pessoa realmente escreveu; note acrescenta o que você quer que a resposta diga (uma correção publicada, uma configuração a testar). Só o rascunho é retornado: reply_review publica a resposta depois da sua confirmação. Consome um crédito de IA de avaliações.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
store | query | ios | android | padrão: ios |
reviewIdobrigatório | query | string | id da avaliação, de get_reviews ou search_reviews |
note | query | string | o que a resposta deve dizer, ex.: corrigido na 2.4.1 |
Também aceita: appId (obrigatório) · country
Além dos créditos, esta chamada usa um crédito da IA de avaliações, então não há comando para copiar aqui.
GET /apps/{appId}/timeline
Mudanças datadas na página da loja de um app — nova versão, capturas de tela, eventos no app, destaques da página da loja e edições do campo de palavras-chave no App Store Connect —, cada uma com o movimento de posições das palavras-chave ao redor: termos que subiram, caíram, entraram ou saíram entre a última medição antes da mudança e a última dentro de window dias depois, além dos cinco maiores movimentos.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
window | query | number | dias após cada mudança para ler as posições, até 30 (padrão 7) |
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/timeline?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/today
O dia de um app em uma única resposta — a tela Hoje: compras, testes gratuitos e renovações das fontes conectadas, novas avaliações, mudanças de posição e de categoria em relação a ontem, novos entrantes acima de você, novos eventos no app e os números de ontem da App Store, do Google Play, da receita líquida e de anúncios, cada um marcado com a fonte de origem. tz faz de "hoje" o dia do próprio usuário.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
tz | query | string | fuso horário IANA, ex.: Europe/Istanbul (padrão UTC) |
day | query | string | outro dia para ler, YYYY-MM-DD |
Também aceita: appId (obrigatório)
curl "https://storelift.net/v1/apps/sbx-lumen/today" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/competition
Quantos apps competem por cada palavra-chave em uma loja; retornado para termos vistos em dois ou mais apps. O padrão são as palavras-chave acompanhadas do app; envie terms para contar candidatas antes de acompanhá-las. corpus é o tamanho do conjunto por trás da contagem.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
terms | query | string | até 100 termos, separados por vírgula (padrão: as palavras-chave acompanhadas) |
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/competition?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/rivals/{rivalId}
Um concorrente do seu app em uma loja: nome, nota e número de notas com um histórico de 90 dias (uma mudança de nome é o sinal de que a página foi reescrita), e as palavras-chave para as quais ele aparece, com a posição em cada uma. A lista de palavras-chave consome um uso do espião de palavras-chave da cota mensal e fica aberta por 30 dias; quando a cota acaba, a resposta traz os números do próprio concorrente com locked: true.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
rivalIdobrigatório | path | string | id do concorrente, de get_rivals |
Também aceita: appId (obrigatório) · country · platform
Além dos créditos, esta chamada usa uma consulta de palavras-chave de um concorrente da cota mensal, então não há comando para copiar aqui.
GET /apps/{appId}/rivals/{rivalId}/adnetworks
Como um concorrente monetiza com anúncios: as redes de anúncios com que ele trabalha, cada uma marcada como DIRECT ou RESELLER. O estado separa os casos: as redes encontradas, um desenvolvedor que não declara redes de anúncios (no_file), uma verificação que não pôde ser concluída desta vez (unreachable) ou uma página da loja sem site do desenvolvedor (no_site). Guardado por 14 dias.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
rivalIdobrigatório | path | string | id do concorrente, de get_rivals |
Também aceita: appId (obrigatório) · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals/1000000001/adnetworks" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/rivals/{rivalId}/market
O mercado de um concorrente em uma loja: no Google Play, o número exato de instalações e a faixa de preço das compras no app, e as instalações entre duas medições quando já há duas; na App Store, o preço, o número de notas, a data de lançamento e se vende compras no app. Medido sob demanda e guardado por 7 dias.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
rivalIdobrigatório | path | string | id do concorrente, de get_rivals |
Também aceita: appId (obrigatório) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals/1000000001/market?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/storefront-audit
Sua página do iOS em todas as lojas da App Store: onde o app é vendido, quais lojas exibem o texto ou as capturas de tela de reserva em vez dos do próprio idioma, e a segunda localidade que cada loja também indexa. Retorna a última varredura; refresh: true inicia uma nova quando a última tem mais de 12 horas e responde 202 com eta segundos; chame de novo depois disso. A tabela completa está no Pro e acima; o Free recebe a prévia.
Também aceita: appId (obrigatório)
curl "https://storelift.net/v1/apps/sbx-lumen/storefront-audit" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/suggest
Novas ideias de palavras-chave para um app em uma loja, escritas no idioma de busca dessa loja: termos de 1 a 3 palavras que as pessoas digitam na busca da loja, cada um com um motivo de uma linha dizendo quem busca e por que o app atende a essa necessidade. Ficam de fora as palavras-chave acompanhadas, as que você descartou e os nomes de marca. Consome um crédito de textos com IA da cota mensal (Pro e acima); meça as ideias com get_keyword_metrics antes de acompanhá-las.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
cc | query | string | código da loja, ex.: tr, us (padrão: o primeiro país do app) |
lang | query | en | tr | de | es | fr | pt | ru | ja | ko | zh | idioma dos motivos (padrão en) |
Também aceita: appId (obrigatório)
Além dos créditos, esta chamada usa um crédito de escrita com IA da cota mensal, então não há comando para copiar aqui.
POST /apps/{appId}/validate-listing
Verifica um rascunho de página da App Store antes de ele ir para o App Store Connect. Informa os limites de caracteres por campo, o espaço do campo de palavras-chave perdido com espaços, repetições, palavras que já estão no nome ou no subtítulo, a marca e palavras de enchimento, repetições entre nome e subtítulo, nomes de produtos da Apple e palavras sobre preço, se o texto está no idioma e na escrita da localidade, e quais palavras-chave acompanhadas do app o rascunho deixa de fora. Não grava nada; envie só os campos que quiser verificar.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
locale | body | string | localidade da página da loja, ex.: en-US, de-DE, ja |
country | body | string | país cujas palavras-chave acompanhadas servem para verificar a cobertura, ex.: us (padrão: o primeiro país do app) |
name | body | string | nome do app, até 30 caracteres |
subtitle | body | string | subtítulo, até 30 caracteres |
keywords | body | string | campo de palavras-chave, separadas por vírgula, até 100 caracteres |
promotionalText | body | string | texto promocional, até 170 caracteres |
description | body | string | descrição, até 4000 caracteres |
Também aceita: appId (obrigatório)
curl -X POST "https://storelift.net/v1/apps/sbx-lumen/validate-listing" \
-H "Authorization: Bearer $STORELIFT_API_KEY" \
-H "content-type: application/json" \
-d '{"locale":"en-US","name":"Lumen: Sleep Sounds","subtitle":"White noise and rain for sleep","keywords":"calm,relax,nap,baby,fan,ocean,lullaby"}'GET /apps/{appId}/draft
Um rascunho de página da loja — título, subtítulo, texto promocional e descrição — criado a partir das palavras-chave medidas para este app em uma loja, ordenadas por demanda. Cada campo vem com a contagem de caracteres em relação ao limite da loja, além de duas verificações de revisão: um nome de produto da Apple no título ou no subtítulo (só App Store) e linguagem sobre preço. termsUsed lista os termos medidos por trás do rascunho; excluded, os termos acompanhados que ainda faltam medir. Nada é gravado na loja: isso é com update_listing. Consome um crédito de textos com IA (Pro e acima).
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
cc | query | string | código da loja, ex.: tr, us (padrão: o primeiro país do app) |
Também aceita: appId (obrigatório) · platform
Além dos créditos, esta chamada usa um crédito de escrita com IA, então não há comando para copiar aqui.
GET /apps/{appId}/localize
Escreve a página completa da App Store para uma nova localidade — nome, subtítulo, campo de palavras-chave e descrição — a partir da página de origem do app, medindo antes cada palavra-chave nessa loja. A primeira chamada inicia a escrita e responde pending (consome uma escrita de página da loja do plano: Free 1 no total, Pro 20 e Studio 75 por mês); chame de novo com poll=true até a página voltar. Com shots=true, as legendas das capturas de tela também voltam no mesmo idioma. Precisa que get_storefront_audit já tenha sido executado para o app. Não grava nada no App Store Connect: isso é com update_listing.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
localeobrigatório | query | string | localidade de destino, ex.: de_de, pt_br, ja_jp (de-DE também funciona) |
Também aceita: appId (obrigatório)
Além dos créditos, esta chamada usa uma das escritas de página na loja do plano, então não há comando para copiar aqui.
GET /apps/{appId}/shot-text
O texto das legendas das quatro primeiras capturas de tela do seu app na App Store em uma loja. A Apple indexa o texto da página da loja, então este texto atua na conversão, e não na posição de busca; a resposta diz isso com indexed: false. Guardado até as capturas mudarem; uma nova leitura consome um crédito de textos com IA (Pro e acima).
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
cc | query | string | código da loja, ex.: tr, us (padrão: o primeiro país do app) |
Também aceita: appId (obrigatório)
Além dos créditos, esta chamada usa um crédito de escrita com IA, então não há comando para copiar aqui.
GET /apps/{appId}/chart-movers
Quem se moveu na parada da categoria do app: quem subiu e quem caiu (3 ou mais posições), novos entrantes e saídas, com nomes, além de onde o próprio app e os concorrentes escolhidos estavam nos dois dias. A categoria vem do registro de paradas do app; envie genre para ver outra. Plano Pro.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
kind | query | free | paid | grossing | parada (padrão free) |
genre | query | string | id de gênero da App Store, ex.: 6013 (padrão: a categoria do app) |
days | query | number | comparar com esta quantidade de dias atrás, 1-90 (padrão 1) |
limit | query | number | linhas por grupo, até 100 (padrão 25) |
Também aceita: appId (obrigatório) · country
curl "https://storelift.net/v1/apps/sbx-lumen/chart-movers?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/featuring
Onde a Apple exibe o app hoje, por país: cartões editoriais (dedicated: true quando a história é sobre este app, false quando ele está em uma coleção), eventos no app ativos e agendados, a seção You Might Also Like da Apple e o histórico datado de destaques e novos eventos. Deixe country vazio para todos os países que o app acompanha.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
country | query | string | código do país, ex.: tr, us (vazio = todos os países que o app acompanha) |
Também aceita: appId (obrigatório)
curl "https://storelift.net/v1/apps/sbx-lumen/featuring?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}
Um app acompanhado com seus ids de plataforma, países, palavras-chave acompanhadas por país e a medição mais recente (tabelas de palavras-chave por país). Use list_apps antes para obter o appId.
Também aceita: appId (obrigatório)
curl "https://storelift.net/v1/apps/sbx-lumen" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Resposta de exemplo
GET /apps/{appId}/weekly-plan
As sugestões desta semana para a página da loja do app: a mesma lista do cartão "Esta semana" do painel, da melhor para a pior. Uma sugestão só aparece quando passa por verificações rigorosas: uma palavra-chave entra no título ou no subtítulo só se for um termo central e de alta demanda do nicho do app, se o app já estiver entre as posições 4 e 15 para ela, se os apps concorrentes acima a tiverem no nome e se ela couber sem tirar a marca nem nada que já ranqueie; palavras-chave de nicho ou de cauda longa vão, no máximo, para o campo de palavras-chave, e só quando há espaço; outras categorias, outros idiomas e palavras-chave que o usuário recusou nunca aparecem; nada é sugerido enquanto uma mudança recente na página ainda está se assentando (settling informa até quando). Cada tarefa traz a frase, o texto atual e o proposto, as palavras que adiciona e remove, os motivos (fatos medidos), a contrapartida e um nível de confiança. Sem country, todas as lojas são combinadas e a mesma mudança vira uma única tarefa com seus países. Costuma vir vazia, e isso é intencional. Plano Pro.
| Parâmetro | Local | Tipo | Descrição |
|---|---|---|---|
country | query | string | uma loja, ex.: tr, us (omita para combinar todas as lojas) |
goal | query | downloads | rank | revenue | aceito por compatibilidade; as sugestões são ordenadas por valor esperado |
platform | query | ios | android | loja de apps (padrão ios) |
limit | query | integer | tarefas a retornar, 1–10 (padrão 5) |
Também aceita: appId (obrigatório)
curl "https://storelift.net/v1/apps/sbx-lumen/weekly-plan?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"