# A API do Storelift URL: https://storelift.net/pt/guide/storelift-api/ Language: pt Updated: 2026-09-20 Tudo o que o painel mostra também é um endpoint JSON. São 9, todos GET, todos sobre os seus próprios apps acompanhados — assim um script, uma rotina de planilha ou uma etapa de CI leem os mesmos números sem raspar uma página. A API está incluída no Pro e no Studio; um assistente que lê os mesmos dados costuma preferir o servidor MCP. ## Endereço base e autenticação A base é https://storelift.net/v1. Crie uma chave em Configurações → API; ela é exibida uma única vez e guardada só como hash, então uma chave perdida é substituída, não recuperada. Envie-a como x-api-key, ou como bearer token se o seu cliente só trabalha com cabeçalhos Authorization: curl -s https://storelift.net/v1/apps \ -H "x-api-key: sl_live_..." NOTE: O acesso à API está nos planos Pro e Studio — a partir de US$ 20 por mês, US$ 60 no Studio. Se o plano for rebaixado, a chave para de funcionar mas não é apagada, então voltar ao plano reativa a mesma integração. ## Os 9 endpoints | Endpoint | O que retorna | | --- | --- | | GET /v1/apps | Os apps que esta conta acompanha. Toda outra chamada começa aqui — o id vem desta. | | GET /v1/apps/{id} | Um app e o retrato da execução mais recente. | | GET /v1/apps/{id}/keywords | A posição atual de cada palavra-chave acompanhada em um storefront, com o estado da medição e a profundidade buscada. | | GET /v1/apps/{id}/rivals | Os apps que estão acima de você, cada um com os termos em que ganha de você e as duas posições. | | GET /v1/apps/{id}/ai | Se um assistente cita o seu app para a sua categoria, com a série armazenada. Medido no Studio. | | GET /v1/apps/{id}/history | A série de posições por palavra-chave, cortada na janela de histórico do plano. | | GET /v1/apps/{id}/page | A sua própria página como a loja a serve, nas duas plataformas, mais as mudanças datadas detectadas nela. | | GET /v1/apps/{id}/reviews | Avaliações recentes com o resumo de estrelas, quantas são novas nesta execução e o lado do Play quando medido. | | GET /v1/apps/{id}/charts | A posição no top chart do gênero e do storefront do app, com a série. | Os endpoints abaixo de /apps/{id} aceitam country (um código de storefront como us; o padrão é o primeiro do app) e, quando as duas lojas são medidas, platform=ios|android. ## Os três estados de medição atravessam a fronteira Esta é a parte que vale ler antes de escrever a integração. Um campo de posição pode ser um número, mas a ausência de número são duas coisas diferentes, e a API mantém as duas separadas: - measured: true, rank: 7 — o app foi encontrado na posição 7. - measured: true, rank: null — a busca rodou e o app não estava nos resultados até a profundidade que lemos. - measured: false — a busca não pôde ser feita naquele dia. Nada se sabe sobre a posição. { "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 } ] } Juntar os dois últimos num zero descreveria uma queda que nunca aconteceu, e toda média construída em cima disso sairia errada. Se o seu código precisa de um único número, trate measured: false como uma lacuna na série, não como um valor. ## O que ela não faz - Não escreve. Todo endpoint é GET; qualquer outro método retorna method_not_allowed. Não há caminho da API até a sua página, as suas palavras-chave acompanhadas ou a sua cobrança. - Não mede sob demanda. Os endpoints leem o que a execução noturna coletou. Perguntar duas vezes não envia uma segunda consulta às lojas. - Não traz a camada de receita. As contas conectadas (App Store Connect, Apple Ads, RevenueCat, GA4) ficam no painel — uma linha traçada de propósito, não um esquecimento. - O histórico é cortado pelo plano. history e charts cortam os dois na janela do plano, então a mesma chave não vai mais longe por um endpoint do que pelo outro. ## Erros | Status | error | Quando | | --- | --- | --- | | 401 | missing_api_key | Nenhuma chave na requisição. | | 401 | invalid_api_key | A chave é desconhecida ou foi revogada. | | 401 | account_deleted | A conta por trás da chave não existe mais. | | 403 | plan_required | O plano não inclui acesso à API. A resposta traz o plano atual. | | 405 | method_not_allowed | Todo endpoint é GET. Nada escreve. | | 404 | not_found | Esse id de app não está nesta conta. | | 404 | unknown_endpoint | Não existe esse caminho em /v1. | Todo erro é JSON com um campo error. plan_required também retorna plan, para que o cliente diga em qual plano a chave está em vez de adivinhar. ## FAQ Q: Existe limite de requisições? A: Não há cota por chave. O gateway na frente da API tem um teto para a conta inteira, e cada chamada atualiza um contador de uso na chave, para você ver em Configurações se uma chave antiga ainda está em uso. Q: Posso usar no plano gratuito? A: Não — o acesso à API começa no Pro. As ferramentas gratuitas deste site não exigem conta nenhuma, e o plano gratuito continua medindo um app por dia. Q: API ou servidor MCP? A: Um script quer a API: formatos fixos, uma chamada, nenhum modelo no meio. Um assistente quer o servidor MCP, porque as ferramentas trazem as próprias descrições e ele escolhe a chamada certa sem você escrever a integração. Os dois leem as mesmas medições.