Documentación para desarrolladores › Referencia de la API
Endpoints de sus apps
Las apps que sigue este espacio de trabajo: posiciones, competidores, reseñas, página de la tienda, cronología de la ficha, apariciones destacadas, top charts y comprobaciones de la ficha.
Autenticación · Créditos · Parámetros comunes · Códigos de error · openapi.json
GET /apps
Lista las apps seguidas en esta cuenta de Storelift (id, nombre, países, palabras clave). Llámela primero: todas las demás herramientas necesitan un appId de aquí.
curl "https://storelift.net/v1/apps" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/keywords
Posiciones de las palabras clave de una app en un país de App Store / Google Play. HAY TRES ESTADOS DISTINTOS: measured=false significa que la consulta no se pudo medir, rank=null significa que se midió pero la app no está entre los primeros resultados, y rank=<number> es la posición. Nunca los reduzca a uno solo: contar un día sin medir como cero da una respuesta falsa.
También admite: appId (obligatorio) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/keywords?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/rivals
Apps que aparecen POR ENCIMA de esta app en la búsqueda. Para cada competidor recibe las palabras clave en las que le supera, la posición del competidor (theirRank) y la suya (ourRank); ourRank null significa que la app no aparece en absoluto para esa palabra clave.
También admite: appId (obligatorio) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/ai
Menciones de la app en una muestra fechada de respuestas de motores de IA; no reproduce lo que ChatGPT, Claude o Gemini muestran a cada usuario. Requiere Studio o Enterprise y el ámbito ai:read. engines contiene las respuestas de cada motor medido; providers indica los estados measured, failed o not_measured. Un motor no disponible no equivale a una puntuación de cero. Lea la muestra fechada y su número de preguntas; no es una clasificación universal ni una medida de todas las respuestas que reciben los consumidores.
También admite: appId (obligatorio) · country
curl "https://storelift.net/v1/apps/sbx-lumen/ai?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/ai-check
Inicia una muestra de visibilidad en IA para una app en un país, con los motores disponibles para la ejecución. Requiere Studio o Enterprise y el ámbito ai:read; la cuota del panel de Pro no da acceso a esta herramienta MCP. Consume una ejecución de visibilidad en IA del plan o comprada; get_ai_visibility devuelve el resultado. Solo se ejecuta una medición por app a la vez.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
country | query | string | código de país, p. ej. tr, us (vacío = los tres primeros países de la app) |
También admite: appId (obligatorio)
Además de sus créditos, esta llamada consume una ejecución de visibilidad en IA, del plan o comprada, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/history
Historial de posiciones de las palabras clave en un país. Los puntos de la serie son [día, posición]; una posición null significa que ese día la app no estaba entre los primeros resultados, lo que no es lo mismo que una mala posición. Plan Pro.
También admite: appId (obligatorio) · country
curl "https://storelift.net/v1/apps/sbx-lumen/history?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/page
Las señales de la ficha de la propia app en un país (sin nombre ni subtítulo): versión, eventos in-app, apariciones editoriales, estantes de apps similares y el conjunto de capturas de pantalla (iOS), además de la página de Google Play (número exacto de instalaciones, histograma de valoraciones, indicadores de anuncios y de compras in-app, insignia de lista). ios.listingExtras recoge los idiomas que admite la app, su reparto de estrellas (de 1★ a 5★), los eventos in-app en curso y próximos, el texto promocional y las compras in-app destacadas; en Free trae el número de idiomas, los 5 primeros idiomas y el reparto de estrellas, y locked indica cuántos hay del resto. timeline enumera los cambios fechados que detectamos en la ficha: la explicación más sencilla de un movimiento de posición. measured=false significa que la página nunca se leyó; no es lo mismo que una página vacía.
También admite: appId (obligatorio) · country
curl "https://storelift.net/v1/apps/sbx-lumen/page?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/reviews
Reseñas recientes de un país: list contiene las reseñas de App Store y android, las de Google Play (un periodo más corto), cada una con su texto, su valoración y su fecha. newCount indica cuántas llegaron desde la medición anterior; en un registro antiguo llega como null, así que léalo como desconocido y no como cero. android: null significa que esa página de Play espera su primera medición, y una lista vacía significa que la página no tiene reseñas.
También admite: appId (obligatorio) · country
curl "https://storelift.net/v1/apps/sbx-lumen/reviews?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/charts
Posición en las listas de App Store en un país: posiciones actuales por lista (gratis / de pago / ingresos, general y por categoría) y su historial. Google Play falta a propósito: no tiene una lista de éxitos pública, y una cifra aquí sería inventada.
También admite: appId (obligatorio) · country
curl "https://storelift.net/v1/apps/sbx-lumen/charts?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/reviews/search
Busca en las reseñas de una app en una tienda por texto, valoración en estrellas, versión de la app e intervalo de fechas, de la más reciente a la más antigua: hasta 1000 filas del archivo completo de reseñas dentro del periodo de reseñas de su plan. total es el número de coincidencias; truncated indica si coincidieron más filas de las solicitadas.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
q | query | string | texto que buscar en el título o el cuerpo de la reseña |
rating | query | string | valoraciones en estrellas, separadas por comas, p. ej. 1,2 |
version | query | string | versión de la app con la que se escribió la reseña, p. ej. 2.4.0 |
from | query | string | primer día, YYYY-MM-DD |
to | query | string | último día, YYYY-MM-DD |
limit | query | number | filas, hasta 1000 (100 por defecto) |
También admite: appId (obligatorio) · 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
Distribución de valoraciones en estrellas, media y porcentaje de reseñas de 1–2 estrellas de una app en una tienda, además de una curva día a día (número y media por día) y un desglose por versión, para que una caída se pueda asociar con la versión que la causó. Por defecto, los últimos 90 días.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
days | query | number | últimos N días, hasta 365 (90 por defecto) |
from | query | string | primer día, YYYY-MM-DD (tiene prioridad sobre days) |
to | query | string | último día, YYYY-MM-DD |
También admite: appId (obligatorio) · 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 reseñas para una app en una tienda: un resumen de las reseñas recientes y de sus temas — quejas, peticiones, elogios —, cada uno con las reseñas citadas como prueba. El mismo día y el mismo lote de reseñas devuelven el resumen guardado sin consumir cuota; un resumen nuevo consume un crédito de IA de reseñas de la cuota mensual (todos los planes; Free incluye una muestra). Responde state: "too_few" con el recuento mientras haya muy pocas reseñas para resumir.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
store | query | ios | android | ios por defecto |
lang | query | en | tr | de | es | fr | pt | ru | ja | ko | zh | idioma del resumen (en por defecto) |
También admite: appId (obligatorio) · country
Además de sus créditos, esta llamada consume un crédito de la IA de reseñas de la cuota mensual, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/reviews/reply-draft
Un borrador de respuesta del desarrollador a una reseña, en el idioma de la tienda. La valoración y el texto proceden de la reseña guardada en nuestro lado, así que el borrador responde a lo que la persona escribió realmente; note añade lo que usted quiere que diga la respuesta (una corrección publicada, un ajuste que probar). Solo se devuelve el borrador: reply_review publica la respuesta tras su confirmación. Consume un crédito de IA de reseñas.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
store | query | ios | android | ios por defecto |
reviewIdobligatorio | query | string | id de la reseña, de get_reviews o search_reviews |
note | query | string | lo que debe decir la respuesta, p. ej. corregido en la 2.4.1 |
También admite: appId (obligatorio) · country
Además de sus créditos, esta llamada consume un crédito de la IA de reseñas, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/timeline
Cambios fechados en la ficha de una app — nueva versión, capturas de pantalla, eventos in-app, destacados de la página de la tienda y ediciones del campo de palabras clave en App Store Connect —, cada uno con el movimiento de posiciones de las palabras clave a su alrededor: términos que subieron, bajaron, entraron o salieron entre la última medición anterior al cambio y la última dentro de los window días posteriores, además de los cinco movimientos más grandes.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
window | query | number | días tras cada cambio en los que leer las posiciones, hasta 30 (7 por defecto) |
También admite: appId (obligatorio) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/timeline?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/today
El día de una app en una sola respuesta — la pantalla Hoy: compras, pruebas y renovaciones de las fuentes conectadas, reseñas nuevas, movimientos de posición y de categoría respecto a ayer, nuevas apps por encima de la suya, nuevos eventos in-app y las cifras de ayer de App Store, Google Play, ingresos netos y anuncios, cada una marcada con la fuente de la que procede. tz hace que «hoy» sea el día del propio usuario.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
tz | query | string | zona horaria IANA, p. ej. Europe/Istanbul (UTC por defecto) |
day | query | string | otro día que leer, YYYY-MM-DD |
También admite: appId (obligatorio)
curl "https://storelift.net/v1/apps/sbx-lumen/today" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/competition
Cuántas apps compiten por cada palabra clave en una tienda; se devuelve para los términos vistos en dos o más apps. Por defecto usa las palabras clave seguidas de la app; envíe terms para contar candidatas antes de seguirlas. corpus es el tamaño del conjunto en el que se basa el recuento.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
terms | query | string | hasta 100 términos, separados por comas (por defecto, las palabras clave seguidas) |
También admite: appId (obligatorio) · country · platform
curl "https://storelift.net/v1/apps/sbx-lumen/competition?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/rivals/{rivalId}
Un competidor de su app en una tienda: su nombre, su valoración y su número de valoraciones con un historial de 90 días (un cambio de nombre es la señal de que se reescribió la ficha), y las palabras clave por las que aparece, con su posición en cada una. La lista de palabras clave consume un uso del espía de palabras clave de la cuota mensual y permanece abierta 30 días; cuando la cuota se agota, la respuesta incluye las cifras propias del competidor con locked: true.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
rivalIdobligatorio | path | string | id del competidor, de get_rivals |
También admite: appId (obligatorio) · country · platform
Además de sus créditos, esta llamada consume una consulta del espía de palabras clave de la cuota mensual, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/rivals/{rivalId}/adnetworks
Cómo monetiza un competidor con anuncios: las redes publicitarias con las que trabaja, cada una marcada como DIRECT o RESELLER. El estado distingue los casos: las redes encontradas, un desarrollador que no declara redes publicitarias (no_file), una comprobación que esta vez no pudo completarse (unreachable) o una ficha sin sitio del desarrollador (no_site). Se conserva 14 días.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
rivalIdobligatorio | path | string | id del competidor, de get_rivals |
También admite: appId (obligatorio) · platform
curl "https://storelift.net/v1/apps/sbx-lumen/rivals/1000000001/adnetworks" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/rivals/{rivalId}/market
El mercado de un competidor en una tienda: en Google Play, el número exacto de instalaciones y el rango de precios de las compras in-app, y las instalaciones entre dos mediciones cuando ya hay dos; en App Store, su precio, su número de valoraciones, su fecha de lanzamiento y si vende compras in-app. Se mide a petición y se conserva 7 días.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
rivalIdobligatorio | path | string | id del competidor, de get_rivals |
También admite: appId (obligatorio) · 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
Su ficha de iOS en todas las tiendas de App Store: dónde se vende la app, qué tiendas muestran el texto o las capturas de pantalla de reserva en lugar de los de su propio idioma, y el segundo idioma regional que cada tienda también indexa. Devuelve el último análisis; refresh: true inicia uno nuevo cuando el último tiene más de 12 horas y responde 202 con eta segundos; vuelva a llamar pasado ese tiempo. La tabla completa está en Pro y superiores; Free recibe la vista previa.
También admite: appId (obligatorio)
curl "https://storelift.net/v1/apps/sbx-lumen/storefront-audit" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/suggest
Ideas de palabras clave nuevas para una app en una tienda, escritas en el idioma de búsqueda de esa tienda: términos de 1 a 3 palabras que la gente escribe en el buscador de la tienda, cada uno con un motivo de una línea que indica quién lo busca y por qué la app responde a esa necesidad. Quedan fuera las palabras clave seguidas, las que usted descartó y los nombres de marca. Consume un crédito de redacción con IA de la cuota mensual (Pro y superiores); mida las ideas con get_keyword_metrics antes de seguirlas.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
cc | query | string | código de tienda, p. ej. tr, us (por defecto, el primer país de la app) |
lang | query | en | tr | de | es | fr | pt | ru | ja | ko | zh | idioma de los motivos (en por defecto) |
También admite: appId (obligatorio)
Además de sus créditos, esta llamada consume un crédito de redacción con IA de la cuota mensual, así que aquí no hay ningún comando para copiar.
POST /apps/{appId}/validate-listing
Revisa un borrador de ficha de App Store antes de enviarlo a App Store Connect. Informa de los límites de caracteres por campo, el espacio del campo de palabras clave perdido en espacios, las repeticiones, las palabras que ya están en el nombre o el subtítulo, la marca y las palabras de relleno, las repeticiones entre nombre y subtítulo, los nombres de productos de Apple y las palabras sobre precios, si el texto está en el idioma y la escritura del código regional, y qué palabras clave seguidas de la app deja fuera el borrador. No escribe nada; envíe solo los campos que quiera revisar.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
locale | body | string | código regional de la ficha, p. ej. en-US, de-DE, ja |
country | body | string | país con cuyas palabras clave seguidas se comprueba la cobertura, p. ej. us (por defecto, el primer país de la app) |
name | body | string | nombre de la app, hasta 30 caracteres |
subtitle | body | string | subtítulo, hasta 30 caracteres |
keywords | body | string | campo de palabras clave, separadas por comas, hasta 100 caracteres |
promotionalText | body | string | texto promocional, hasta 170 caracteres |
description | body | string | descripción, hasta 4000 caracteres |
También admite: appId (obligatorio)
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
Un borrador de ficha — título, subtítulo, texto promocional y descripción — creado a partir de las palabras clave medidas para esta app en una tienda, ordenadas por demanda. Cada campo incluye su recuento de caracteres frente al límite de la tienda, además de dos comprobaciones de revisión: un nombre de producto de Apple en el título o el subtítulo (solo App Store) y lenguaje sobre precios. termsUsed enumera los términos medidos en los que se basa; excluded, los términos seguidos que aún faltan por medir. No se escribe nada en la tienda: de eso se encarga update_listing. Consume un crédito de redacción con IA (Pro y superiores).
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
cc | query | string | código de tienda, p. ej. tr, us (por defecto, el primer país de la app) |
También admite: appId (obligatorio) · platform
Además de sus créditos, esta llamada consume un crédito de redacción con IA, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/localize
Redacta la ficha completa de App Store para un nuevo idioma regional — nombre, subtítulo, campo de palabras clave y descripción — a partir de la ficha de origen de la app, midiendo antes cada palabra clave en esa tienda. La primera llamada inicia la redacción y responde pending (consume una redacción de ficha del plan: Free 1 en total, Pro 20 y Studio 75 al mes); vuelva a llamar con poll=true hasta que llegue la ficha. Con shots=true, los textos de las capturas de pantalla llegan también en el mismo idioma. Requiere que get_storefront_audit se haya ejecutado para la app. No escribe nada en App Store Connect: de eso se encarga update_listing.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
localeobligatorio | query | string | código regional de destino, p. ej. de_de, pt_br, ja_jp (de-DE también funciona) |
También admite: appId (obligatorio)
Además de sus créditos, esta llamada consume una escritura de ficha del plan, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/shot-text
El texto de las cuatro primeras capturas de pantalla de su app en App Store en una tienda. Apple indexa el texto de la ficha, así que este texto influye en la conversión y no en la posición de búsqueda; la respuesta lo indica con indexed: false. Se conserva hasta que cambien las capturas; una lectura nueva consume un crédito de redacción con IA (Pro y superiores).
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
cc | query | string | código de tienda, p. ej. tr, us (por defecto, el primer país de la app) |
También admite: appId (obligatorio)
Además de sus créditos, esta llamada consume un crédito de redacción con IA, así que aquí no hay ningún comando para copiar.
GET /apps/{appId}/chart-movers
Quién se movió en la lista de la categoría de la app: subidas y bajadas (3 o más puestos), novedades y salidas, con nombres, además del puesto de la propia app y de sus competidores elegidos en ambos días. La categoría procede del registro de listas de la app; envíe genre para consultar otra. Plan Pro.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
kind | query | free | paid | grossing | lista (free por defecto) |
genre | query | string | id de género de App Store, p. ej. 6013 (por defecto, la categoría de la app) |
days | query | number | comparar con hace tantos días, 1-90 (1 por defecto) |
limit | query | number | filas por grupo, hasta 100 (25 por defecto) |
También admite: appId (obligatorio) · country
curl "https://storelift.net/v1/apps/sbx-lumen/chart-movers?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}/featuring
Dónde muestra Apple la app hoy, por país: tarjetas editoriales (dedicated: true cuando la historia trata de esta app, false cuando forma parte de una colección), eventos in-app activos y programados, el estante You Might Also Like de Apple y el historial fechado de destacados y eventos nuevos. Deje country vacío para consultar todos los países que sigue la app.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
country | query | string | código de país, p. ej. tr, us (vacío = todos los países que sigue la app) |
También admite: appId (obligatorio)
curl "https://storelift.net/v1/apps/sbx-lumen/featuring?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"GET /apps/{appId}
Una app seguida con sus ids de plataforma, sus países, sus palabras clave seguidas por país y la última medición (tablas de palabras clave por país). Use antes list_apps para obtener el appId.
También admite: appId (obligatorio)
curl "https://storelift.net/v1/apps/sbx-lumen" \
-H "Authorization: Bearer $STORELIFT_API_KEY"Respuesta de ejemplo
GET /apps/{appId}/weekly-plan
Las sugerencias de ficha de esta semana para la app: la misma lista que la tarjeta «Esta semana» del panel, de mejor a peor. Una sugerencia solo aparece si supera comprobaciones estrictas: una palabra clave entra en el título o el subtítulo solo si es un término central y de alta demanda del nicho de la app, la app ya está en los puestos 4–15 para ella, las apps competidoras que están por encima la llevan en su nombre y cabe sin quitar la marca ni nada que ya posicione; las palabras clave de nicho o de cola larga van como mucho al campo de palabras clave, y solo si hay espacio; nunca aparecen otras categorías, otros idiomas ni palabras clave que el usuario rechazó; no se sugiere nada mientras un cambio reciente de la ficha se esté asentando (settling indica hasta cuándo). Cada tarea incluye la frase, el texto actual y el propuesto, las palabras que añade y quita, los motivos (hechos medidos), la contrapartida y un nivel de confianza. Sin country se combinan todas las tiendas y el mismo cambio es una sola tarea con sus países. A menudo está vacía, y es intencionado. Plan Pro.
| Parámetro | Ubicación | Tipo | Descripción |
|---|---|---|---|
country | query | string | una tienda, p. ej. tr, us (omítalo para combinar todas las tiendas) |
goal | query | downloads | rank | revenue | se acepta por compatibilidad; las sugerencias se ordenan por valor esperado |
platform | query | ios | android | tienda de apps (ios por defecto) |
limit | query | integer | tareas que devolver, 1–10 (5 por defecto) |
También admite: appId (obligatorio)
curl "https://storelift.net/v1/apps/sbx-lumen/weekly-plan?country=us" \
-H "Authorization: Bearer $STORELIFT_API_KEY"