Convierte Google Trends en una señal de demanda con Python
Lee la serie temporal, calcula una dirección de tendencia simple, y lo único que hay que hacer bien: un valor de Trends es interés relativo, nunca un número de volumen de búsquedas. Probado en agosto de 2026.

Quieres un número que diga cuánto interés está recibiendo un tema ahora mismo, para meterlo en un dashboard, decidir qué stock pedir, o decidir sobre qué escribir a continuación. Leer un gráfico de líneas en la web de Google Trends no escala más allá de una consulta cada vez, y no hay forma de que un script lo aproveche.
Qué devuelve /v1/trends
Envía una query a /v1/trends y recibes interest_over_time, y dentro un listado timeline_data. Cada punto tiene un date (un rango legible tipo “Aug 23-29, 2026”), un timestamp, y un listado values con una entrada por cada consulta que hiciste, cada una con un value de 0 a 100. Nuestra muestra, para la consulta “web scraping api”, trajo 53 puntos semanales a lo largo de casi un año, por 5 créditos.
El número es relativo, nunca absoluto
Aquí es donde más se falla: un value de Trends no es un recuento de búsquedas. Es un índice, escalado para que el punto más alto del rango que pediste sea 100 y todos los demás sean una fracción de ese pico. Un valor de 14 no significa 14 búsquedas ni 14 de nada que se pueda contar. Significa un 14 por ciento de lo que fuera la semana más activa de esa ventana.
Eso tiene dos consecuencias que se le escapan a la gente. Primera, no puedes comparar el valor de una consulta con el de otra distinta y concluir que un tema se busca más, porque cada una está escalada contra su propio pico, no contra una base común. Segunda, un valor calculado sobre un rango de fechas o una ubicación no es comparable con uno calculado sobre otro distinto, por el mismo motivo: cambia la ventana y todos los puntos se reescalan contra un pico nuevo. Si necesitas dos temas en la misma escala, pídelos juntos en una sola llamada para que compartan base, o compara la forma (subiendo, bajando, plano) en vez del nivel bruto.
Leer la serie y calcular una dirección de tendencia
import requests
API_KEY = "faf_live_..." # tu clave de FastAF
resp = requests.get(
"https://api.fastaf.co/v1/trends",
params={"query": "web scraping api", "data_type": "TIMESERIES"},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
resp.raise_for_status()
points = resp.json()["interest_over_time"]["timeline_data"]
series = [(p["date"], p["values"][0]["value"]) for p in points]
for date, value in series[-8:]:
print(f"{date:<26} {value:>3}")
recent = [v for _, v in series[-8:]]
prior = [v for _, v in series[-16:-8]]
recent_avg = sum(recent) / len(recent)
prior_avg = sum(prior) / len(prior)
change = (recent_avg - prior_avg) / prior_avg * 100
direction = "rising" if change > 10 else "falling" if change < -10 else "flat"
print(f"recent avg {recent_avg:.1f} vs prior avg {prior_avg:.1f}: {direction} ({change:+.1f}%)")
En nuestra muestra esto imprimió las últimas ocho semanas, moviéndose entre 5 y 88, con una media reciente de 37,9 frente a una media previa de ocho semanas de 84,6: una caída del 55 por ciento, etiquetada “falling”. Si ocho semanas es la ventana correcta depende de cómo se mueva normalmente el tema. Una categoría más lenta podría comparar bloques de 90 días en vez de dos de 8 semanas; la forma del cálculo es la misma.
Aplícalo
Una fila de dashboard solo necesita el último value y la etiqueta de dirección, actualizada con la cadencia que corresponda a cómo se mueve de verdad el interés subyacente: a diario es excesivo para una serie que solo reporta en bloques semanales, como nuestra muestra. Para una decisión de stock o de qué escribir, la dirección importa más que el nivel absoluto: un tema que sube de 20 a 40 es una señal más clara que uno que lleva meses parado en 80, aunque 80 suene como el número más grande.
Cuánto cuesta
Una llamada cuesta 5 créditos, sin importar cuántas semanas traiga la serie, así que rellenar un dashboard con un año de historia y actualizarlo cada semana cuestan lo mismo, 5 créditos. Las solicitudes fallidas no se cobran.
Empieza con el plan gratuito, 500 créditos sin tarjeta, que son 100 llamadas: suficiente para sacar la serie de cada tema entre los que estás decidiendo antes de comprometerte a seguir ninguno.