Un recuento de 100k seguidores del que casi nadie entra a un directo suele significar que muchos de esos seguidores están inactivos o comprados, y puedes estimar cuántos muestreando el grafo de seguidores. Aquí recorremos cómo extraer una muestra de tus propios seguidores con la API de TikTok, puntuar cada uno con unas cuantas señales de autenticidad y sacar un porcentaje aproximado de cuentas de baja calidad. Es la versión, desde el lado del vendedor, del filtrado que hacen las marcas sobre los creadores antes de cerrar un trato. Dos advertencias honestas. Esto es una estimación por muestreo, no una auditoría certificada; TikTok no expone cada seguidor, y una puntuación baja es una señal, no una prueba. Y ninguna señal por sí sola es decisiva, un perfil vacío puede ser el de un lurker. Puntúa combinando varias señales a la vez. Cada endpoint de TikTok cuesta 1 crédito en Scavio ($0.005).
Requisitos previos
- Una API key de Scavio (los endpoints de TikTok cuestan 1 crédito cada uno)
- Python 3.10+ con requests
- El nombre de usuario de la cuenta que quieres auditar
Guia paso a paso
Paso 1: Resuelve el nombre de usuario a un sec_uid
Cada llamada de seguidores y de posts se indexa por sec_uid, no por el nombre de usuario. Extrae primero el perfil; también te da el follower_count contra el que muestrearás.
import os, requests
BASE = "https://api.scavio.dev"
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
# step 1: username -> sec_uid
prof = requests.post(f"{BASE}/api/v1/tiktok/profile", headers=H, json={"username": "yourshop"}).json()
user = prof["data"]["user"]
sec_uid = user["sec_uid"]
print(user["follower_count"], user["heart_count"], user["video_count"])Paso 2: Pagina una muestra de seguidores
El endpoint de seguidores usa paginación con page_token más min_time: ambos valores vuelven en la respuesta y ambos deben pasarse juntos en la siguiente llamada. Extrae unas pocas páginas para una muestra representativa en lugar del grafo completo.
followers, page_token, min_time = [], None, None
for _ in range(5): # 5 pages is a reasonable sample
body = {"sec_user_id": sec_uid, "count": 50}
if page_token: body["page_token"] = page_token
if min_time: body["min_time"] = min_time
res = requests.post(f"{BASE}/api/v1/tiktok/user/followers", headers=H, json=body).json()
data = res["data"]
followers += data["followers"]
if not data.get("has_more"): break
page_token, min_time = data["next_page_token"], data["min_time"]Paso 3: Puntúa cada seguidor muestreado
Marca las señales baratas de una cuenta desechable o comprada: sin avatar, bio vacía, cero posts y un número de seguidos desproporcionadamente mayor que el de seguidores. Ninguna es decisiva por sí sola; dos o más juntas son una fuerte señal de baja calidad.
def low_quality(u):
signals = 0
if not u.get("avatar"): signals += 1
if not u.get("signature"): signals += 1 # empty bio
if u.get("video_count", 0) == 0: signals += 1
if u.get("following_count", 0) > 20 * max(u.get("follower_count", 0), 1): signals += 1
return signals >= 2
flagged = [u for u in followers if low_quality(u)]
pct = round(100 * len(flagged) / max(len(followers), 1), 1)
print(f"Sampled {len(followers)} followers; {pct}% look inactive or fake")Ejemplo en Python
import os, requests
BASE = "https://api.scavio.dev"
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
# step 1: username -> sec_uid
prof = requests.post(f"{BASE}/api/v1/tiktok/profile", headers=H, json={"username": "yourshop"}).json()
user = prof["data"]["user"]
sec_uid = user["sec_uid"]
print(user["follower_count"], user["heart_count"], user["video_count"])Ejemplo en JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
const base = "https://api.scavio.dev";
const prof = await (await fetch(`${base}/api/v1/tiktok/profile`, {
method: "POST", headers: H, body: JSON.stringify({ username: "yourshop" }),
})).json();
const secUid = prof.data.user.sec_uid;
// then page /api/v1/tiktok/user/followers with next_page_token + min_timeSalida esperada
La llamada al perfil devuelve follower_count y sec_uid. Cada página de seguidores devuelve hasta 50 objetos de seguidor más next_page_token y min_time. El paso de puntuación imprime un porcentaje estimado de cuentas de baja calidad en tu muestra, una lectura orientativa de por qué tu alcance y la audiencia de tus directos van por detrás de tu recuento de seguidores.