TikHub API Token y la skill API Helper: prueba con un agente de IA
El TikHub API Helper de la comunidad trae una copia vieja: el 25,7 % de sus rutas ya no existe. Probamos token, límites, agentes de IA y precio.

La skill de Claude Code que sale primero al buscar «tikhub api helper» no es un producto de TikHub. Es un proyecto de la comunidad que un desarrollador mantiene en una cuenta personal de GitHub. Más abajo lo llamamos repositorio comunitario A. La revisamos archivo por archivo en la madrugada del 2026-11-06 (hora de Singapur, SGT, UTC+8). Su copia de los endpoints tiene 1120 rutas, y 288 de ellas (el 25,7 %) ya no están en la documentación de TikHub de ese día. Tres de los cuatro ejemplos de llamada de su SKILL.md usan nombres de parámetro que la documentación actual no tiene. La skill le pide definir TIKHUB_TOKEN, pero su código lee TIKHUB_API_TOKEN.
El problema mayor es el cliente HTTP. La skill envía las peticiones con urllib, la biblioteca de Python, y con su User-Agent por defecto. Hicimos dos rondas de pruebas desde Singapur, a las 00:20 y a las 00:25 SGT. Todas las peticiones con esa cabecera a api.tikhub.io y a api.tikhub.dev recibieron HTTP 403 y «error code: 1010». Ni siquiera pasó la comprobación de estado, que no necesita token.
Por las mismas 1.000 peticiones de TikTok o Douyin, el precio público de TikHub es 1,00 USD. Nuestras tres llamadas reales costaron 0,000556 USD cada una, así que 1.000 llamadas cuestan 0,556 USD y TikHub cuesta 1,8 veces más. TikHub solo nos iguala con unas 117.900 llamadas al día a un mismo endpoint, después de su descuento diario por volumen.
Este artículo responde a una pregunta concreta de quien busca «tikhub api token», «tikhub api helper» o «api tikhub io». Usted ya tiene un token y quiere que un agente de IA encuentre endpoints, los llame y resuelva los errores por su cuenta.
¿Dónde guarda el token y cómo lo controla? ¿Cómo funcionan los límites de velocidad? ¿Puede usar el Helper de la comunidad tal cual? Del lado de TikHub usamos solo material público: la documentación, los archivos de la API, las páginas de precios y los repositorios públicos de GitHub. No nos registramos en TikHub. No usamos el token de nadie para llamar a sus endpoints de pago. Del lado de EveryInfra, cada cifra sale de llamadas reales de la misma noche, con la hora de cada lectura y cada llamada.
Cómo crear un tikhub api token: permisos, caducidad y estado
El token de TikHub se crea en el centro de usuario. La sección «Get API Token», al final del README - English de su documentación, da cuatro pasos. Se registra e inicia sesión. Abre el menú API token del centro de usuario y crea un token. Lo copia en la cabecera de la petición. Lo mantiene en secreto y lo usa solo en la cabecera.
El README en chino dice lo mismo. La página de tutoriales y preguntas frecuentes añade que cada usuario puede crear hasta 100 claves de API, lo que permite una clave por proyecto.
Hasta aquí, coincide con lo que ya cubre nuestro artículo API key, documentación y GitHub de TikHub, a prueba. Este artículo va un paso más allá. Con el token ya creado, ¿puede limitarlo a algunos endpoints? ¿Puede ponerle fecha de caducidad? ¿Puede desactivarlo un tiempo? Estos tres controles deciden si puede dar el token con seguridad a un agente de IA que toma sus propias decisiones.
No encontramos instrucciones para estos tres controles en la documentación pública actual de TikHub. El README actual y el openapi.json de api.tikhub.io (leído a las 00:16 SGT del 2026-11-06) solo los mencionan en las notas de códigos de estado. Las seis causas de un 401 incluyen «API token has expired» y «status is invalid or not activated». Las causas de un 403 incluyen «API token lacks required permissions». Los tres estados existen, pero la documentación no dice cómo configurarlos.
Encontramos el texto en una fuente antigua. La página de PyPI de la versión 1.13.0 del SDK de Python de TikHub salió el 2024-12-05. Dice que puede definir Scopes propios para un token, fijar una Expire Date y desactivarlo a mano con Status. También recomienda con fuerza un token por proyecto, con los Scopes que tocan, porque si no las peticiones fallan por falta de permiso.
En la versión 2.2.0 (2026-10-03) esa sección ya no está. El texto nuevo solo dice que copie su API key del panel y la guarde como TIKHUB_API_KEY. No iniciamos sesión en el centro de usuario de TikHub, así que no podemos confirmar si el panel actual conserva los tres controles. Esto es lo que sí podemos decir: la documentación antigua decía que se podían configurar, la actual no dice cómo, y las notas de códigos de estado siguen listando los tres estados.
En EveryInfra, los tres controles están en la sección de cuenta de /docs. En la consola, en «API Keys → Permisos», puede desactivar un producto para cada clave. Una llamada a un producto desactivado devuelve 403 capability_denied. Una llamada con una clave desactivada devuelve 401. Tres permisos de escritura están desactivados por defecto: gestión de claves, ajustes de la cuenta y tickets de soporte. Solo una persona en la consola puede activarlos.
Una clave puede crear otras claves, pero solo 20 al día. Algunas acciones son siempre solo de consola: ver o rotar una clave completa, cambiar permisos y la lista de IP permitidas, volver a activar una clave y pagar. Lo diseñamos así a propósito. Cuando un agente de IA tiene una clave, el riesgo principal no es una llamada errónea. El riesgo principal es que el agente cambie la cuenta o gaste dinero que no debe gastar.
La tabla resume los dos lados. «Sin documentar» del lado de TikHub significa que no encontramos instrucciones en la documentación pública actual. No significa que la función no exista.
| Acción | TikHub (documentación pública, leída el 2026-11-06) | EveryInfra (/docs, leída el 2026-11-06) |
|---|---|---|
| Crear un token | Centro de usuario → API token → crear; hasta 100 por usuario | Consola → API Keys → crear; la clave completa se ve una vez |
| Limitar qué puede llamar | Documentación de 2024: Scopes; hoy solo «token sin permisos» en las notas del 403 | Desactivar un producto; devuelve 403 capability_denied |
| Caducidad | Documentación de 2024: Expire Date; hoy solo «token caducado» en las notas del 401 | Sin caducidad; se desactiva o se rota |
| Desactivar un tiempo | Documentación de 2024: Status; hoy «estado no válido o no activado» en las notas del 401 | Clave desactivada devuelve 401; reactivar solo en la consola |
| ¿Puede un agente cambiar la cuenta? | Sin documentar | Permisos de escritura desactivados por defecto; claves creadas por una clave: 20 al día |
| Nombre de la variable de entorno | SDK y plugin de TikHub: TIKHUB_API_KEY | EVERYINFRA_API_KEY |
La segunda fila es la que más importa. Un agente que elige sus propios endpoints, tarde o temprano, elige uno que usted no tenía previsto. Por ejemplo, usted quiere que lea perfiles de TikTok, y llama a un endpoint de Douyin Xingtu de 0,02 USD por llamada. Si TikHub todavía admite Scopes, marque solo las plataformas que necesita al crear el token. Si su panel ya no tiene esa opción, le quedan dos controles: un token por agente y solo el saldo necesario.
Nuestro interruptor por producto es menos fino que un permiso por endpoint. La ventaja es que un solo interruptor apaga un producto entero, como la resolución de CAPTCHA o los proxies, que no tiene nada que ver con la recogida de datos.
Límites de velocidad: TikHub cuenta por endpoint y por segundo, nosotros por cuenta y por minuto
Cuando el agente ya tiene el token, el siguiente problema habitual son los límites de velocidad. A los agentes les gusta llamar en paralelo, y una docena de peticiones a la vez es normal. El openapi.json de TikHub empieza con «QPS: 10/Second». Las preguntas frecuentes de la página de precios dan más detalle. El límite se aplica por endpoint, no por cuenta.
El valor por defecto de 10 peticiones por segundo se aplica a cada ruta por separado, así que puede llamar a endpoints distintos en paralelo. Para más velocidad, puede comprar un plan RPS en su panel RPS. Es un cargo mensual, aparte del precio de las peticiones. La documentación de 2024 era algo distinta. Decía que el límite es por endpoint para el correo de cada titular del token, en la mayoría de los casos 5 por segundo.
La documentación dice «10 por defecto». La cifra real de cada endpoint está en el endpoint de la lista de precios, que se puede leer sin token. A las 00:18:13 SGT leímos 1471 endpoints con precio y contamos el campo rate_limit. 1397 endpoints permiten 10 por segundo. 47 permiten 5, 14 permiten 3 y 10 permiten 1. Un endpoint permite 20, otro 4 y otro 2.
Así que 74 endpoints no están en el valor por defecto. Un agente que va al ritmo por defecto recibirá un 429 tras otro en un endpoint que solo permite 1 por segundo.
EveryInfra cuenta el límite por cuenta, no por endpoint. Nuestra página de precios dice que el valor por defecto es 60 peticiones por minuto para todas las claves de la cuenta juntas. Más claves no suman más capacidad. Para más velocidad, puede comprar un paquete de 30 días: 180 por minuto por 10 USD o 600 por minuto por 30 USD. También obtiene límites más altos con niveles más altos de recarga acumulada.
Si pasa el límite, recibe 429 rate_limited con una cabecera Retry-After que indica cuántos segundos esperar. El código 429 y Retry-After vienen de la sección 4 del RFC 6585, y los dos servicios los usan. Cada enfoque tiene costes y ventajas. El límite por endpoint de TikHub da mucho caudal total si llama a muchos endpoints a la vez, y sus 10 por segundo son mucho más rápidos que nuestros 60 por minuto. Nuestro límite por cuenta evita que el agente tenga que recordar 1471 límites distintos: le basta un número.
| Límite | TikHub | EveryInfra |
|---|---|---|
| Qué cuenta | Cada endpoint por separado (mismo titular del token) | Toda la cuenta, todas las claves juntas |
| Por defecto | Casi siempre 10 por segundo; 74 endpoints por debajo o por encima | 60 por minuto |
| Más velocidad | Plan RPS, comprado en el panel RPS, mensual | Paquete desde 10 USD por 30 días, o nivel de recarga |
| Al pasar el límite | 429 «Request too fast» | 429 rate_limited con Retry-After |
| Qué debe saber el agente | El límite de cada endpoint (rate_limit en la lista de precios) | Un solo límite de cuenta |
Un detalle más del Helper de la comunidad. Su SKILL.md dice «QPS 10 por segundo por endpoint, tiempo de espera de 30 a 60 segundos, hasta 3 reintentos en errores». Esas líneas vienen del principio del openapi.json de TikHub. Pero el cliente del Helper no tiene código de reintento. Su tiempo de espera está fijo en 30 segundos. Ante un 429, solo devuelve «HTTP 429» al modelo. El modelo lee SKILL.md y cree que el cliente reintenta por él.
Quién hizo el tikhub api helper y qué contiene
Al buscar «tikhub api helper», los primeros resultados son un repositorio de GitHub llamado tikhub_api_skill (repositorio comunitario A) y las páginas de directorios de skills que lo listan. Por ejemplo, el mercado de skills de LobeHub y Shyft. El dueño del repositorio es una cuenta personal. No está en la organización de TikHub en GitHub. La descripción del repositorio lo llama «una Agent Skill de Codex/Claude Code» para la API de TikHub. No dice que lo haya hecho TikHub.
A las 00:14 SGT, la API de GitHub mostraba 129 estrellas y la página contaba 17 forks. El repositorio se creó el 2026-01-08, el último push fue el 2026-07-08 y no tiene licencia. La descripción correcta es esta: es un proyecto de la comunidad, y TikHub no tiene ninguna skill llamada «API Helper». El producto propio de TikHub es tikhub-plugin, un plugin de Claude Code. Su última versión es la v1.1.0 del 2026-06-15, con 18 skills y ajustes MCP para 7 plataformas.
El Helper tiene una estructura simple: cuatro archivos bajo .claude/skills/tikhub-api-helper/. SKILL.md ocupa 5850 bytes y le dice al modelo que busque un endpoint, lea sus parámetros y luego lo llame. api_searcher.py busca por palabra clave en un openapi.json local. api_client.py envía las peticiones. openapi.json es una copia de los endpoints de 2.997.476 bytes.
La idea es buena. El archivo de la API de TikHub tiene unos 840.000 tokens, así que no se le puede dar entero a un modelo. Una búsqueda local que solo pasa los resultados al modelo ahorra mucho contexto. La documentación de skills de Claude Code coincide. El cuerpo de la skill solo se carga cuando se usa, y los archivos de referencia grandes casi no ocupan contexto hasta entonces. Los problemas están en los detalles, y las secciones siguientes los tratan uno a uno.
No es la única skill de la comunidad. El directorio de skills de TypingMind lista también otra skill de la comunidad, tikhub-skill (repositorio comunitario B). Forma parte del proyecto de código abierto OpenCompany y funciona de otra forma. No trae copia de los endpoints, sino que convierte los métodos del SDK de Python de TikHub en una sola herramienta. Estos son los tres enfoques, uno al lado del otro.
| Enfoque | Autor | Cómo encuentra endpoints | Dónde lee el token | Problemas encontrados |
|---|---|---|---|---|
| tikhub_api_skill (API Helper) | Repositorio comunitario A (un desarrollador) | Copia local de 1120 rutas, búsqueda por subcadena | Código: TIKHUB_API_TOKEN; documentación: TIKHUB_TOKEN | 25,7 % de la copia ya no existe; urllib bloqueado; parámetros de ejemplo erróneos |
| tikhub-skill de OpenCompany | Repositorio comunitario B | Nombres de métodos del SDK de Python de TikHub | Sin revisar | Sin revisar archivo por archivo |
| tikhub-plugin | TikHub | 18 skills y un servidor MCP por plataforma | TIKHUB_API_KEY | Revisado en nuestro artículo anterior: 237 de las 1109 rutas de su código ya no están en la documentación |
Nuestro artículo API key, documentación y GitHub de TikHub, a prueba ya revisó el plugin propio de TikHub. Este se centra en el Helper de la comunidad por dos motivos. Es el resultado que más se abre en esta búsqueda. Y la gente lo copia tal cual. En la sección sobre el token verá que un arreglo en el repositorio original no llega a las copias que ya existen.
La copia de endpoints está desfasada: 288 de 1120 rutas ya no existen
El openapi.json del Helper es una copia que el autor descargó de TikHub en enero de 2026. Después solo cambió una vez, en mayo. La comparamos ruta por ruta con el openapi.json de TikHub leído a las 00:16:44 SGT del 2026-11-06. Los dos archivos dicen info.version V5.3.2, así que el número de versión sugiere que nada cambió. En realidad, solo 832 de las 1120 rutas de la copia siguen en la documentación de hoy. 288 rutas (el 25,7 %) ya no están.
También pasa al revés. De las 1058 rutas del archivo de hoy, 226 (el 21,4 %) no están en la copia, así que un agente que usa el Helper nunca puede encontrarlas. Entre los 832 endpoints comunes, 59 tienen parámetros de consulta distintos. Por ejemplo, la búsqueda de usuarios de Kuaishou quitó page y añadió pcursor y tres filtros.
Los cambios se concentran en unos pocos grupos. Los grupos nuevos son justo los endpoints que más quiere quien trabaja en marketing de influencers y análisis de anuncios.
| Retiradas de la documentación (de 288) | Rutas | Nuevas en la documentación (de 226) | Rutas |
|---|---|---|---|
| LinkedIn (dos grupos) | 77 | Bilibili Huahuo | 45 |
| TikTok Ads | 23 | Douyin Xingtu V2 | 29 |
| Douyin Web | 20 | Xiaohongshu Pugongying | 20 |
| Xiaohongshu Web V2 | 18 | Douyin DOU+ | 17 |
| TikTok App V3 / Sora2 | 17 cada uno | — | — |
| Xiaohongshu Web (primer grupo) | 15, el grupo entero | — | — |
Hay un punto más. 201 de las 288 rutas retiradas siguen en la lista de precios, con precio. En API key, documentación y GitHub de TikHub, a prueba también encontramos 433 rutas en la lista de precios que no están en la documentación. Esto sugiere que TikHub quita primero un endpoint de la documentación y lo deja en la lista de precios. Para un agente, aparecer en la lista de precios no prueba que un endpoint siga funcionando.
La tabla de plataformas de SKILL.md también muestra el desfase. Dice que Xiaohongshu Web tiene 26 endpoints. La copia tiene 15, y la documentación de hoy tiene 0. Las cifras de la tabla no coinciden ni con la copia que la acompaña ni con la documentación de hoy.
| Grupo | Según SKILL.md | Documentación de hoy |
|---|---|---|
| Xiaohongshu Web | 26 (copia: 15) | 0 |
| YouTube Web | 16 | 8 |
| TikTok App | 76 | 58 |
Un agente que planifica con esta tabla creerá que Xiaohongshu Web tiene muchos endpoints. Después, su búsqueda solo devuelve rutas que ya no existen.
Buscar como dice SKILL.md: por qué las consultas de varias palabras dan 0
El flujo del Helper tiene tres pasos: buscar, leer detalles y llamar. A las 00:19 SGT ejecutamos su api_searcher.py sin conexión en nuestra propia máquina. Probamos cada consulta tal como aparece en SKILL.md, y cuatro consultas más en chino y con varias palabras. «tiktok user profile» es el primer paso del flujo de ejemplo de SKILL.md. Encuentra 1 resultado, y es un endpoint de demostración que no acepta parámetros. «fetch user profile tiktok», de la sección de uso habitual, encuentra 0.
| Consulta (* = tal cual en SKILL.md) | Resultados | Siguen en la documentación de hoy |
|---|---|---|
| tiktok user profile * | 1 | Solo uno de demostración |
| fetch user profile tiktok * | 0 | — |
| douyin video comments | 0 | — |
| Notas de Xiaohongshu (en chino) | 0 | — |
| fetch post detail * | 2 | 2 |
| search video * | 5 | 5 |
| fetch comment * | 3 | 1 |
| user profile * | 20 | 15 |
| Notas (en chino) | 20 | 12 |
| Comentarios (en chino) | 20 | 14 |
La causa está en el script de búsqueda. Trata toda la consulta como una sola subcadena. La busca en una cadena que une «ruta + resumen + descripción + operationId», y se detiene en 20 resultados. Una consulta de varias palabras solo coincide si las palabras aparecen juntas y en ese orden exacto. Los resúmenes de TikHub dicen cosas como «Get user profile», así que las tres palabras «tiktok user profile» nunca aparecen juntas.
El script sí contiene una función suggest_api con un mapa de palabras clave. Puede ampliar «user profile» a fetch_user_profile. Pero el punto de entrada de la línea de comandos nunca la llama. Las palabras sueltas sí encuentran resultados, pero llenan los 20 huecos de golpe y el script corta la lista por el orden del archivo. De los 20 resultados de la palabra china para «notas», 8 ya no existen. Los primeros resultados no siempre son de la plataforma que usted busca.
El segundo paso, «leer detalles», también falla. El ejemplo de SKILL.md es detail:tiktok_web_fetch_user_profile_get. Lo ejecutamos tal cual y obtuvimos «No API found». El operationId real en la copia es fetch_user_profile_api_v1_tiktok_web_fetch_user_profile_get. Con ese nombre obtuvimos 1970 bytes de detalles de parámetros.
Para el último paso, la llamada, SKILL.md da cuatro ejemplos distintos. Comparamos cada uno con los parámetros de la documentación de hoy.
| Ejemplo de SKILL.md | Parámetro del ejemplo | Parámetros en la documentación de hoy | Resultado |
|---|---|---|---|
tiktok/web/fetch_user_profile | sec_user_id | uniqueId o secUid | El parámetro no existe |
tiktok/web/fetch_post_detail | post_id | itemId (obligatorio), region | El parámetro no existe; falta el obligatorio |
tiktok/web/fetch_post_comment | post_id | aweme_id (obligatorio), cursor, count, current_region | El parámetro no existe; falta el obligatorio |
tiktok/web/fetch_search_video | keyword | keyword (obligatorio), count, offset, search_id, cookie | Coincide |
Un agente que aprende de estos ejemplos enviará sec_user_id en su primera llamada de perfil, y el servidor no conoce ese parámetro. Los endpoints de TikHub usan FastAPI. En el openapi.json de hoy, 973 endpoints declaran un error de validación 422. El cuerpo de la respuesta tiene los campos estándar loc, msg y type. Le dice qué parámetro obligatorio falta. No le dice que su post_id debería ser itemId.
En el endpoint de perfil, los dos parámetros son opcionales. ¿Ignora el servidor un parámetro desconocido sin avisar, y cobra la llamada? No tenemos cuenta, así que no lo probamos, y debemos marcarlo como desconocido. La sección «Qué pasa cuando se equivoca», más abajo, muestra cómo responde nuestra API a los mismos errores.
Dónde guardar el token: tres nombres de variable y un token escrito en el código
Empiece por el error más fácil: el nombre de la variable de entorno. La sección Authentication de SKILL.md le pide definir TIKHUB_TOKEN. Pero api_client.py lee TIKHUB_API_TOKEN. El SDK de Python y el plugin de TikHub usan un tercer nombre, TIKHUB_API_KEY, que aparece 83 veces en los ajustes del plugin.
Definimos solo TIKHUB_TOKEN en nuestra máquina y dejamos las otras dos sin definir. Luego creamos el cliente del Helper. Leyó un token de longitud 0. La cabecera quedó como el nombre del esquema, un espacio y nada más. Quien sigue SKILL.md al pie de la letra envía todas las peticiones sin token y solo recibe respuestas 401.

| Dónde | Nombre de la variable | Resultado si es la única definida |
|---|---|---|
SKILL.md del Helper | TIKHUB_TOKEN | Token de longitud 0, cabecera Bearer vacía, 401 |
api_client.py del Helper | TIKHUB_API_TOKEN | Funciona (con el arreglo del User-Agent) |
| SDK y plugin de TikHub | TIKHUB_API_KEY | Funciona con el SDK y el plugin |
El primer recuadro de la captura dice «API requests use a default token for development». Esa línea viene de una versión temprana del Helper, que tenía un token escrito directamente en el código.
Más tarde, otro colaborador envió un arreglo. Cambió el código para leer el token solo de una variable de entorno, y el cambio se fusionó en la rama principal. El arreglo es correcto. Pero no actualizó SKILL.md. Por eso hoy SKILL.md sigue diciendo al modelo que las peticiones usan un token por defecto, mientras que el código ya no tiene ese valor. Un modelo que lee esa línea espera que la llamada funcione sin la variable, y solo recibe respuestas 401.
Los forks preocupan más. Con la API de GitHub leímos uno por uno los forks del repositorio. Solo comparamos hashes de la cadena; no copiamos ni probamos el valor. La conclusión cabe en una frase: algunos forks todavía conservan el token escrito en la primera versión, y recomendamos al autor que lo rote.
No probamos si el token sigue funcionando, y no debemos hacerlo. Una llamada con un token filtrado gasta el dinero de otra persona. Para quien usa el Helper, la lección es la otra cara: la versión que instaló desde un fork o una copia puede no ser la versión arreglada del repositorio original.
| Su situación | Qué hacer |
|---|---|
| Usa la rama principal actual del repositorio original | Defina TIKHUB_API_TOKEN, no TIKHUB_TOKEN, y añada un User-Agent |
| Instaló el Helper desde un fork o una copia | Busque un token escrito en su copia, bórrelo y lea el token de una variable |
| Mantiene el repositorio o un fork | Revoque y rote el token de la primera versión; cambiar el historial no llega a otras copias |
La documentación de GitHub es clara en este caso. Si filtra una credencial como una contraseña o un token, el primer paso es revocarla o rotarla. Una vez revocada, nadie puede usarla, y a menudo no hace falta reescribir el historial. Si solo reescribe el historial y fuerza el push, cualquiera puede seguir obteniendo los commits antiguos desde un clon o un fork. También desde las vistas en caché de GitHub por hash y desde los pull requests que los mencionan. Solo el dueño de un fork puede borrar la copia de ese fork.
Dicho de otro modo, el arreglo del repositorio original protege solo el futuro. No puede arreglar las copias que ya circulan. El paso que funciona es revocar el token.

Si instaló el Helper desde un fork o una copia, busque en su copia local una cadena larga escrita en el código. Si la encuentra, bórrela, lea el token de una variable de entorno y no use nunca un token que dejó otra persona. En nuestro caso, use ${EVERYINFRA_API_KEY} en sus ajustes MCP y en ningún otro sitio. La documentación MCP de Claude Code dice que .mcp.json admite esta expansión de variables. Su equipo puede compartir el archivo de ajustes sin compartir la clave.
api tikhub io y api.tikhub.dev: por qué urllib de Python no conecta
Quien busca «api tikhub io» suele haber visto el dominio en código o en un mensaje de error. api.tikhub.io es el dominio principal de TikHub. Su ruta raíz es una página Swagger donde puede escribir un token y probar llamadas en el navegador. También existe api.tikhub.dev. El Helper lo llama «dominio para China que evita límites de red». El README de TikHub dice otra cosa en sus notas de dominios y conexión. Pide usar api.tikhub.io y evitar api.tikhub.dev, que puede ser más lento.
Si una petición tarda más de 30 segundos, sugiere que configure su propio proxy. Lo que bloquea al Helper no es el dominio, sino la cabecera de la petición. El api_client.py del Helper envía las peticiones con urllib.request, de la biblioteca estándar de Python, y no define User-Agent. Así que usa el valor por defecto de la documentación de Python: «Python-urllib/» más la versión. A las 00:20:21 SGT usamos el Helper tal cual para llamar al endpoint de estado /api/v1/health/check, que no necesita token. Devolvió «HTTP 403: Forbidden».
Después enviamos peticiones a la misma dirección con cabeceras distintas. La tabla y el gráfico muestran los resultados. Cada cuerpo de 403 era una sola línea, «error code: 1010», con la cabecera de respuesta server: cloudflare.
| User-Agent | api.tikhub.io | api.tikhub.dev |
|---|---|---|
| Python-urllib/3.15 (por defecto en el Helper) | 403, 1010 (2 de 2) | 403, 1010 (2 de 2) |
| python-requests/2.32.3 | 200 (2 de 2) | 200 (1 de 1) |
| python-httpx/0.28.1 | 200 (1 de 1) | sin probar |
| curl/8.7.1 | 200 (1 de 1) | 200 (1 de 1) |
| Cabecera de navegador | 200 (1 de 1) | sin probar |
1010 es un código de error de Cloudflare. La página de Cloudflare sobre este error dice que el dueño del sitio bloqueó el acceso según la firma de su navegador. Entre las causas habituales nombra «el user agent por defecto de Python urllib». La Browser Integrity Check de Cloudflare viene activada por defecto y bloquea peticiones sin User-Agent o con uno poco habitual. La solución que da Cloudflare es enviar un User-Agent que diga quién es usted, como «my-app/1.0». No hace falta hacerse pasar por un navegador.
Este resultado tiene límites. Probamos desde una sola red de Singapur y en dos momentos. TikHub define sus propias reglas de Cloudflare, así que el resultado puede cambiar según la región y la hora. Pero las dos rondas y los dos dominios dieron lo mismo.

Para un agente de IA, este 403 es más difícil que un 401. Cuando el Helper recibe un 403 con un cuerpo que no es JSON, solo devuelve {"error": "HTTP 403: Forbidden", "status_code": 403}. La pista clave, «1010», se pierde. La tabla de errores de SKILL.md solo lista cuatro casos: 401, 429, errores de conexión y parámetros que faltan. No tiene fila para el 403.
El README de TikHub da cuatro causas para un 403. El token no tiene permiso para la ruta, la cuenta está suspendida, el correo no está verificado o el token no tiene permisos. Un modelo que lee la documentación con cuidado casi siempre tratará este 403 como un problema del token. Le dirá que revise la verificación del correo o que cree un token nuevo. El arreglo real es una línea en la cabecera. Añada una línea User-Agent a _build_headers:
# _build_headers en api_client.py: añada solo la línea User-Agent, el resto igual
def _build_headers(self, content_type: str = "application/json"):
return {
"Authorization": f"Bearer {self.api_token}",
"Content-Type": content_type,
"User-Agent": "my-tikhub-agent/1.0", # sin esta línea, Cloudflare bloquea la cabecera por defecto de urllib con 1010
}También probamos EveryInfra con la misma cabecera Python-urllib. A las 00:26:04 SGT leímos el catálogo de capacidades de TikTok, y a las 00:26:05 pedimos la lista de herramientas MCP. Las dos devolvieron 200. El mismo código simple de Python funciona en un lado y se bloquea en el otro. Muchos scripts que escriben los agentes son justo de este tipo, sin bibliotecas extra.
Cuántos pasos lleva una llamada: el Helper, el MCP de TikHub y el MCP remoto de EveryInfra
Ahora junte las secciones anteriores. Tome una tarea: un agente debe obtener los datos del perfil de una cuenta de TikTok. Estos son los pasos de cada enfoque. Para el Helper, suponemos el mejor caso, después de arreglar el nombre de la variable y la cabecera. Para el MCP de TikHub, usamos los ajustes de su página MCP. Para EveryInfra, usamos nuestras llamadas reales de la misma noche.
| Paso | Helper de la comunidad (arreglado) | MCP de TikHub | MCP remoto de EveryInfra |
|---|---|---|---|
| Preparación | Clonar el repositorio, definir TIKHUB_API_TOKEN, arreglar la cabecera | Instalar Node.js; una entrada npx mcp-remote por plataforma | Una entrada HTTP; la clave sale de una variable |
| Encontrar el endpoint | api_searcher.py; las consultas de varias palabras suelen dar 0 | El servidor de TikTok lista 163 herramientas, el de Douyin 319 | Llamar a everyinfra_list_capabilities, gratis, o leer el catálogo |
| Leer parámetros | detail: más el operationId completo | Los parámetros están en cada herramienta | Cada entrada del catálogo lista parámetros, response_fields y precio |
| Llamar | api_client.py GET ruta parámetros | Llamar a la herramienta | everyinfra_call_api con platform, action, params |
| Ante un error | Solo el estado HTTP y el cuerpo crudo | Respuesta 401 o 422 de TikHub | 400 o 422 con did_you_mean y example, sin cargo |
| Total | Al menos 4 llamadas de herramienta, más si la búsqueda falla | 1 llamada tras cargar las herramientas | 2 llamadas (catálogo + llamada), 1 cuando el agente ya conoce los nombres |
El MCP de TikHub tiene un servidor por plataforma. Puede leer la lista de plataformas sin token. TikTok tiene 163 herramientas, Douyin 319, Instagram 93 y Xiaohongshu 45. Cada endpoint es una herramienta, así que el modelo puede elegir una directamente. El coste es que conectarse al servidor de Douyin carga 319 descripciones de herramientas.
El ejemplo de ajustes de TikHub usa npx mcp-remote para convertir el servidor HTTP remoto en un proceso local. La autenticación va en un argumento --header. Los ajustes del plugin de TikHub usan la variable de entorno con ${TIKHUB_API_KEY}. Abajo están el ejemplo de TikHub (con la clave cambiada por una referencia a variable) y el nuestro. Compruebe los campos exactos en la documentación de su cliente.
{
"mcpServers": {
"tikhub-tiktok": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.tikhub.io/tiktok/mcp",
"--header", "Authorization: Bearer ${TIKHUB_API_KEY}"]
},
"everyinfra": {
"type": "http",
"url": "https://api.everyinfra.com/mcp",
"headers": { "Authorization": "Bearer ${EVERYINFRA_API_KEY}" }
}
}
}Nosotros tenemos una sola dirección: https://api.everyinfra.com/mcp. A las 00:21:08 SGT pedimos su lista de herramientas sin clave. Devolvió 12 herramientas en 16.247 bytes. Otras 12 herramientas de cuenta (uso, facturación, claves y más) están en la dirección completa /mcp/all, así que hay 24 herramientas en total. Vea /mcp-server. Las capacidades de datos no tienen una herramienta cada una. Todas pasan por everyinfra_call_api, y dos parámetros, platform y action, eligen la capacidad, por ejemplo tiktok/profile.
La ventaja es una lista de herramientas pequeña, y las capacidades nuevas no exigen cambiar los ajustes. El coste es que el modelo debe leer antes el catálogo para conocer los nombres de action. El catálogo no necesita clave. GET /api/v1/social/catalog?platform=tiktok&compact=1 devuelve solo TikTok. A las 00:18:12 SGT ocupaba 6835 bytes, con los parámetros, precios y nombres de campos de todas las capacidades de TikTok.
La especificación MCP admite los dos diseños. La sección de autorización de la especificación del 2026-07-28 dice que la autorización es opcional. Ninguno de los dos servicios usa OAuth. Los dos envían la clave en una cabecera, con el formato Bearer del RFC 6750.
Qué pasa cuando se equivoca: 400, 422 y did_you_mean, a prueba
El error más común de un agente es usar el estilo de nombres de otro servicio. Imitamos a un agente que acaba de usar TikHub. A las 00:21:08 SGT enviamos una petición con action al estilo de TikHub, fetch_user_profile, y el parámetro uniqueId. Después enviamos una segunda petición con el nombre de capacidad correcto pero con el parámetro del ejemplo del Helper, sec_user_id.
La primera devolvió 400 unknown_capability. Su did_you_mean era profile, y allowed listaba las 24 capacidades de datos de TikTok (otras 24, distintas de las 24 herramientas MCP de arriba). Su next_steps decía que se reenviara con profile y que no se cobró nada. La segunda devolvió 422 missing_param. Su next_steps decía que se añadiera el username obligatorio y que sec_user_id no es un parámetro aquí. También incluía un example que se puede ejecutar tal cual. Ninguna de las dos costó nada.

Compare con TikHub. Sin token, comprueba primero la autenticación. A las 00:20:40 SGT llamamos al endpoint de detalle de publicación con el parámetro erróneo post_id y sin token. Devolvió 401. El cuerpo repetía la ruta y los parámetros, pero no señalaba el parámetro erróneo. Con token, su openapi.json dice que un parámetro obligatorio que falta devuelve un 422 de FastAPI. Esa respuesta nombra el campo que falta, pero no sugiere el nombre correcto.
Nuestro orden también es primero la autenticación y después los parámetros. Sin clave, recibe 401, así que una petición sin autenticar no puede averiguar la forma de nuestra API. Con clave, un parámetro desconocido o un valor no válido devuelve 422 con los parámetros admitidos, los valores permitidos y did_you_mean. El objetivo de esta regla es que la IA de quien llama pueda corregir su propio error. Una llamada errónea no debería costar dinero cada vez.
Tres llamadas reales: una por MCP y dos con curl
Ahora las llamadas reales. Elegimos tres capacidades de 0,000556 USD cada una, en dos plataformas y con dos formas de llamar. En cada llamada anotamos la hora SGT, el número de elementos y charged_usd.
| Hora (SGT) | Capacidad | Forma | Duración | Resultado | Cargo |
|---|---|---|---|---|---|
| 00:21:20 | tiktok/profile, username=tiktok | MCP remoto everyinfra_call_api | 30,2 s | 1 cuenta: 96.600.000 seguidores, 1513 vídeos | 0,000556 USD |
| 00:21:56 | tiktok/user_videos, username=tiktok | curl | 38,3 s | 10 vídeos | 0,000556 USD |
| 00:22:42 | douyin/comments, un enlace de vídeo de Douyin | curl | 19,4 s | 20 comentarios | 0,000556 USD |
Las tres llamadas costaron 0,001668 USD en total. Hay que ser honestos con el tiempo. Las llamadas tardaron 30, 38 y 19 segundos. Es el tiempo de espera de un resultado síncrono. Sirve para un agente que trabaja en segundo plano, no para una persona que mira una página. No tenemos cuenta en TikHub, así que no pudimos medir su velocidad. Su README dice que se fije un tiempo de espera de 30 a 60 segundos.
Los response_fields del catálogo definen los campos devueltos. La capacidad de perfil devuelve 16 campos, como follower_count y video_count. La de vídeos devuelve más de 30 campos. La de comentarios incluye like_count, reply_count, ip_location y next_page_token para la página siguiente. Esta es la petición curl de la segunda llamada. La clave sale solo de una variable de entorno.
curl -s https://api.everyinfra.com/api/v1/social \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"tiktok","action":"user_videos","params":{"username":"tiktok"}}'
# devuelve count: 10, billing.charged_usd: 0.000556Precio: las mismas 1.000 peticiones de TikTok y Douyin
Esta sección de precios es corta a propósito. Para el desglose completo, vea Precios de TikHub explicados. Para TikHub usamos la lista de precios leída a las 00:18:13 SGT y la página de precios leída a las 00:16 SGT. Los endpoints que corresponden a nuestras llamadas son el perfil de TikTok fetch_user_profile, los vídeos de TikTok fetch_user_post y los comentarios de Douyin fetch_video_comments. Cada uno cuesta 0,001 USD por llamada. TikTok y Douyin suman 658 endpoints con precio, y 529 cuestan 0,001 USD. Para EveryInfra usamos el charged_usd de las tres llamadas reales: 0,000556 USD cada una.
| Caso (1.000 peticiones cada uno) | Precio público de TikHub | EveryInfra, medido | Proporción |
|---|---|---|---|
| Perfil de TikTok | 1,00 USD (0,001 USD × 1.000) | 0,556 USD | 1,8 |
| Vídeos de TikTok | 1,00 USD; 15 elementos por página por defecto, unos 0,067 USD por 1.000 elementos | 0,556 USD; 10 elementos por llamada, 0,0556 USD por 1.000 elementos | 1,8 por llamada, 1,2 por elemento |
| Comentarios de Douyin | 1,00 USD; 20 elementos por página por defecto, 0,05 USD por 1.000 elementos | 0,556 USD; 20 elementos por llamada, 0,0278 USD por 1.000 elementos | 1,8 por llamada, 1,8 por elemento |
| Crédito gratis | 0,05 USD al registrarse, unas 50 llamadas; algunos endpoints son gratis | 1 USD por una estrella en GitHub, válido 24 horas | — |
| Recarga mínima | 5 USD | Desde el nivel de 10 USD | TikHub es más bajo |
Dos notas sobre el precio por elemento. Puede subir el parámetro count del endpoint de vídeos de TikHub. Más elementos por página bajan el precio por elemento, y no pudimos probar el máximo. Nuestro tiktok/user_videos devuelve 10 elementos por llamada, así que la diferencia por elemento es solo de 1,2 veces.
TikHub también tiene un descuento diario por volumen. En un mismo endpoint, tras las primeras 1.000 llamadas del día, el precio baja a 0,0009 USD, luego a 0,0008 USD, y llega a 0,0005 USD después de 30.000. Convertimos esos tramos en un precio medio por 1.000 llamadas para N llamadas al día. Con 10.000 llamadas al día, la media es 0,86 USD. Con 50.000, es 0,632 USD. Solo con unas 117.900 llamadas al día baja a nuestros 0,556 USD. Por encima de eso, TikHub es más barato.
El descuento solo se aplica a los endpoints que lo admiten. De los 529 endpoints de TikTok y Douyin a 0,001 USD, el 52,0 % admite el descuento. El endpoint de un solo vídeo de Douyin, fetch_one_video, por ejemplo, no lo admite.
Así que la respuesta depende del volumen. Un agente que hace de unos miles a decenas de miles de llamadas al día a un mismo endpoint paga menos con EveryInfra. Con más de unas 118.000 llamadas al día a un endpoint que admite el descuento, el precio por volumen de TikHub es más bajo. Nuestros precios también tienen niveles de descuento por recargas mensuales, y la página de precios tiene los detalles.
La página de precios de TikHub también dice que las llamadas por MCP y por la extensión del navegador cuestan lo mismo que las llamadas directas a la API. Lo mismo pasa con nosotros. MCP, el SDK y curl cobran el mismo charged_usd, y las llamadas fallidas y los resultados vacíos no cuestan nada.
Antes de dar un token a un agente de IA: seis comprobaciones
Las secciones anteriores trataron por separado los tokens, los límites, el Helper y los errores. Aquí van juntos en una lista. Elija TikHub o EveryInfra, haga estas seis comprobaciones antes de la primera llamada real de un agente. Cada una incluye una forma de verificarla.
Primero, dé a cada agente su propio token. TikHub permite hasta 100 por usuario. En nuestro caso, una clave puede crear como máximo 20 claves al día. Las claves que crea en la consola no cuentan para ese límite. Con tokens separados, el registro de uso muestra qué agente gastó qué y cuál llegó al límite. Si los ajustes de un agente acaban por error en un repositorio público, desactiva solo ese token. Para verificarlo, compruebe que cada token está en el entorno de un solo proyecto.
Segundo, guarde el token solo en una variable de entorno. No lo ponga en un archivo de skill ni en texto plano en un archivo de ajustes. El plugin de TikHub y el nuestro usan la variable con ${...} en sus ajustes, y es la forma correcta. La historia del Helper muestra el caso contrario. El token que entró en el código en una versión temprana salió después del repositorio original, pero algunos forks todavía lo tienen. Para verificarlo, busque «Bearer» y los primeros caracteres de su token en la carpeta del proyecto: solo deben aparecer nombres de variable.
Tercero, use el nombre de variable que lee su código. Parece obvio, pero el Helper usa tres nombres distintos. SKILL.md dice TIKHUB_TOKEN, el código lee TIKHUB_API_TOKEN, y el SDK y el plugin de TikHub usan TIKHUB_API_KEY. Si define solo el nombre de SKILL.md, las peticiones salen con una cabecera Bearer vacía. TikHub devuelve 401, y el modelo probablemente creerá que el token está mal y le pedirá uno nuevo. Para verificarlo, imprima la longitud del token antes de la llamada, no el valor: una longitud 0 indica un nombre de variable erróneo.
Cuarto, haga primero una petición gratis. La comprobación de estado y la lista de precios de TikHub no necesitan token. El catálogo y la lista de herramientas MCP de EveryInfra no necesitan clave. Envíe una petición con el mismo cliente HTTP que usará su agente. Así separa tres tipos de problema: una cabecera bloqueada (1010), una autenticación fallida (401) y parámetros erróneos (422). Con este paso descubrimos que la cabecera por defecto de urllib no llega a ninguno de los dos dominios de TikHub, mientras que curl y requests sí.
Quinto, ponga el límite de velocidad en las instrucciones del agente. TikHub cuenta por endpoint. 74 endpoints no están en los 10 por segundo por defecto, y el más bajo permite 1 por segundo. Nosotros contamos por cuenta, con 60 por minuto por defecto. Los agentes llaman en paralelo por defecto, así que dígale con claridad que espere tras un 429. Nuestra respuesta trae Retry-After, así que el agente espera esos segundos. La nota del 429 de TikHub solo dice «Request too fast», y su documentación pública no dice cuánto esperar: sugerimos 1 segundo, el doble tras cada nuevo 429.
Sexto, ponga un límite al saldo y encuentre primero la llamada más cara. De los 1471 endpoints con precio de TikHub, la mayoría cuesta 0,001 USD por llamada. Pero de los 78 endpoints de Douyin Xingtu con «xingtu» en la ruta, 19 cuestan 0,02 USD por llamada. La búsqueda general v2 de Douyin cuesta 0,01 USD. Con un mismo token, los precios varían hasta 20 veces. En nuestro caso, el precio de cada capacidad está en el catálogo, y el agente puede leerlo antes de llamar. Para verificarlo, pida al agente que liste los endpoints y precios antes de llamar, y apruebe la lista.
| Comprobación | Cómo verificarla | Quién la hace en EveryInfra |
|---|---|---|
| 1. Un token por agente | Cada token está en un solo proyecto | Usted |
| 2. Token solo en una variable | Busque «Bearer»: solo nombres de variable | Usted |
| 3. Nombre de variable correcto | La longitud del token no es 0 | Un solo nombre: EVERYINFRA_API_KEY |
| 4. Primero una petición gratis | Separe 1010, 401 y 422 | Catálogo y lista de herramientas gratis |
| 5. Límite en las instrucciones | El agente espera tras un 429 | Retry-After da la espera |
| 6. Límite de saldo y precio máximo | El agente lista precios antes | Los precios están en el catálogo |
Las skills gratuitas de análisis de datos no son lo mismo que el Helper
Muchas personas que buscan «tikhub api helper» quieren una cosa: instalar una skill y que la IA obtenga los datos y los analice. Aquí hay dos tipos de skills. El Helper es una guía de «cómo llamar a la API». Le dice al modelo dónde encontrar endpoints y cómo armar las peticiones. No analiza datos.
EveryInfra también tiene skills de análisis de datos. Se descargan gratis y se usan con sus propias herramientas y modelos de IA. La versión v0.4.1, del 2026-10-15, trae cuatro: análisis de productos de comercio electrónico, rendimiento de contenido social, etiquetado de contenido y análisis de reseñas. No recogen datos. Los datos se recogen con la API de EveryInfra, y la recogida se cobra por llamada. Nuestro artículo un SKILL.md para cuatro herramientas de IA explica cómo usarlas.
La parte de la API está en nuestro repositorio de plugins. La versión v0.4.0 salió el 2026-10-21, y sus ajustes usan ${EVERYINFRA_API_KEY}. El 2026-11-01 también publicamos everyinfra 0.3.0 en PyPI, con una herramienta de línea de comandos y estimación de precios.
Separar la recogida del análisis también ayuda a gestionar el token. Las skills de análisis no necesitan clave. Solo el paso de la API la necesita. Puede ejecutar el análisis en local y dar al paso de recogida una clave con permisos estrictos.
Cuándo conviene más TikHub
Estos son los puntos en los que TikHub nos supera. Primero, la cobertura de endpoints. Su documentación de hoy tiene 1058 rutas. Para datos de marketing de influencers y plataformas de anuncios, como Douyin Xingtu, DOU+, Xiaohongshu Pugongying y Bilibili Huahuo, tiene muchos endpoints detallados. En estos endpoints de marketing, tiene más que nosotros.
Segundo, el precio con mucho volumen. Con más de unas 118.000 llamadas al día a un endpoint con descuento, su precio por volumen es más bajo que el nuestro. Tercero, el coste de entrada. Su recarga mínima es de 5 USD, menos que nuestro nivel de 10 USD, y sus 0,05 USD gratis no caducan. Cuarto, los campos crudos. Devuelve la estructura de datos propia de la plataforma. En API key, documentación y GitHub de TikHub, a prueba, por ejemplo, dio la cifra exacta de seguidores de TikTok, y nosotros damos una cifra redondeada. Quinto, el número de claves. Cada usuario puede tener 100, lo que facilita la contabilidad por proyecto. La descripción de su SDK de Python 2.2.0 dice que cubre 1048 endpoints y tiene un cliente asíncrono.
La comparación de la copia también muestra hacia dónde va. Casi todos los 226 endpoints nuevos son de marketing de influencers y plataformas de anuncios. Si su trabajo es buscar creadores para marcas y leer tarifas y datos de anuncios, TikHub llega mucho más lejos que nosotros. Revise el precio de esos endpoints uno por uno, porque muchos no cuestan 0,001 USD.
Si ya usa TikHub y quiere seguir, este artículo le ayuda en tres cosas. Use el plugin o el SDK de TikHub, no el Helper desfasado de la comunidad. Defina el nombre de variable que lee su código. Ponga un User-Agent en sus propios scripts de Python. Si conecta por primera vez un agente de IA a datos sociales, quizá le importen otras cosas: errores que el agente puede corregir, ningún cargo por fallos y una sola dirección para todas las plataformas. También el coste con unos miles o decenas de miles de llamadas al día. En ese caso, EveryInfra es la opción más sencilla.
Nuestros otros textos sobre TikHub cubren otros temas. API key, documentación y GitHub de TikHub, a prueba trata la clave, el tamaño de la documentación y el estado del SDK de TikHub. Precios de TikHub explicados desglosa más de mil líneas de precios. Alternativas a TikHub y /alternatives/tikhub dan la comparación completa.
Novedades del sector
| Fecha | Qué pasó | Qué significa para usted |
|---|---|---|
| 2026-10-22 | Anthropic donó el estándar Agent Skills a la Agentic AI Foundation; el anuncio de la Linux Foundation habla de más de 70 plataformas, 1 millón de skills y casi 280 millones de instalaciones | Más herramientas leerán cada SKILL.md, así que los nombres de variable y de endpoints erróneos de una skill también llegan más lejos por forks y copias, como pasa con el Helper de este artículo |
| 2026-10-24 | Cloudflare actualizó su página del error 1010, que nombra el User-Agent por defecto de Python urllib | Defina un User-Agent en los scripts de agentes antes de usarlos en producción |
| 2026-10-27 | Google Cloud lanzó IAM Helper: skills y herramientas MCP para que los agentes investiguen errores 403 y pidan acceso temporal de una hora, con aprobación humana | Los agentes responderán cada vez más a un 403 pidiendo más acceso. Si el 403 es en realidad un bloqueo 1010 por la cabecera, más acceso no sirve: lea primero el cuerpo de la respuesta |
| 2026-10-28 | GitHub conectó la detección de secretos con IA a la protección de push, en vista previa pública y desactivada por defecto | Puede frenar futuros pushes con tokens escritos en el código, pero no las copias que ya están en forks |
Preguntas frecuentes
¿Dónde se crea un tikhub api token?
(Fuente: autocompletado de Google para «tikhub api token», leído el 2026-11-06.) Inicie sesión en el centro de usuario de TikHub. Abra el menú API token y cree un token. Póngalo en la cabecera Authorization: Bearer. La sección «Get API Token» al final del README de la documentación tiene el texto original, y cada usuario puede tener hasta 100.
La documentación antigua decía que se podían fijar permisos, fecha de caducidad y un estado activo o inactivo. La documentación pública actual no dice cómo, y esos estados solo aparecen entre las causas de los 401 y 403. Para agentes de IA, dé a cada agente su propio token.
¿El tikhub api helper lo hizo TikHub?
(Fuente: autocompletado de Google para «tikhub api helper», leído el 2026-11-06.) No. El primer resultado, tikhub_api_skill, pertenece a una cuenta personal, y su descripción no dice que lo hiciera TikHub. Los productos propios de TikHub son tikhub-plugin, en la organización TikHub de GitHub (v1.1.0, 18 skills), y el SDK de Python de TikHub. El 25,7 % de la copia del Helper de la comunidad ya no existe, y su cabecera urllib por defecto se bloquea. Use el plugin de TikHub, o haga antes los dos arreglos de este artículo.
¿Qué hago si api tikhub io no abre o devuelve 403?
(Fuente: autocompletado de Google para «api tikhub io» y «https api tikhub io», leído el 2026-11-06.) Lea primero el cuerpo de la respuesta. Si dice «error code: 1010», Cloudflare bloqueó la cabecera de su petición. Defina un User-Agent en su cliente y el problema desaparece; no tiene nada que ver con el token. Si el cuerpo JSON dice que el token no tiene permisos o que el correo no está verificado, es un problema de la cuenta. TikHub pide usar api.tikhub.io y configurar su propio proxy si las peticiones tardan más de 30 segundos. api.tikhub.dev puede ser más lento.
¿Una tikhub api key y un token son lo mismo?
(Fuente: autocompletado de Google para «tikhub api key» y «tikhub api token», leído el 2026-11-06.) Sí. TikHub usa las dos palabras en sitios distintos. La documentación dice «API Token». La página de tutoriales y el SDK de Python nuevo dicen «API key», y la variable de entorno es TIKHUB_API_KEY. Lo confuso es el nombre de la variable. El código del Helper de la comunidad lee TIKHUB_API_TOKEN, pero su SKILL.md dice TIKHUB_TOKEN. El servicio de agentes de IA de TikHub también tiene claves propias que no sirven para la API de datos.
¿Puedo instalar tal cual las skills de TikHub de GitHub?
(Fuente: autocompletado de Google para «tikhub github», leído el 2026-11-06.) Puede instalar tikhub-plugin de TikHub como plugin de Claude Code, y sus ajustes usan ${TIKHUB_API_KEY}. Puede instalar el Helper de la comunidad, pero antes haga tres cosas. Defina el nombre de variable correcto. Añada un User-Agent en api_client.py. Busque en su copia local si hay un token escrito en el código. Un fork o una copia puede conservar el token escrito de la primera versión, y no debe usarlo.
¿Qué es la tikhub ai api y usa la misma clave?
(Fuente: autocompletado de Google para «tikhub ai api», leído el 2026-11-06.) TikHub tiene un servicio de agentes de IA aparte, en pruebas. Según la propia documentación de TikHub, que citó API key, documentación y GitHub de TikHub, a prueba, se registra en otro sitio y recibe otra clave. Esa clave no sirve para la API de datos sociales. En este artículo, «token» significa solo el token de la API de datos. Una clave de EveryInfra puede llamar a datos, búsqueda y resolución de CAPTCHA, y puede desactivar cada producto para cada clave en la consola.
Primeros pasos
- Abra /docs, regístrese y cree una clave en la consola. Guárdela en la variable de entorno
EVERYINFRA_API_KEY. Para tener crédito antes de recargar, siga /pricing y obtenga 1 USD de prueba por una estrella en GitHub. - Lea el catálogo sin clave:
GET https://api.everyinfra.com/api/v1/social/catalog?platform=tiktok&compact=1. Muestra las capacidades y precios de TikTok y Douyin. - Añada MCP a su herramienta de IA. La dirección es
https://api.everyinfra.com/mcp, y la cabecera de autenticación usa la variable de entorno. Vea /mcp-server para los ajustes. - Pida al agente que llame primero a
everyinfra_list_capabilities. Después llama a una capacidad comotiktok/profileconeveryinfra_call_api. Si se equivoca, siguedid_you_meanyexamplede la respuesta, sin cargo.
Referencias
- README - English (API Token Introduction, HTTP Status Codes), documentación de TikHub, leído el 2026-11-06, https://docs.tikhub.io/4592766m0
- README en chino, documentación de TikHub, leído el 2026-11-06, https://docs.tikhub.io/4579297m0
- llms.txt (índice de la documentación), TikHub, leído el 2026-11-06, https://docs.tikhub.io/llms.txt
- Página Swagger de la API de TikHub, TikHub, leído el 2026-11-06, https://api.tikhub.io/
- openapi.json (V5.3.2, 1058 rutas), TikHub, leído el 2026-11-06 a las 00:16 SGT, https://api.tikhub.io/openapi.json
- Lista de precios get_all_endpoints_info (1471 endpoints con precio, campo rate_limit), TikHub, leído el 2026-11-06 a las 00:18 SGT, https://api.tikhub.io/api/v1/tikhub/user/get_all_endpoints_info
- Endpoint health/check, TikHub, consultado el 2026-11-06 de 00:20 a 00:26 SGT, https://api.tikhub.io/api/v1/health/check
- Pricing (descuento por volumen, planes RPS, recarga mínima), TikHub, leído el 2026-11-06, https://tikhub.io/pricing
- Tutorials & FAQ (hasta 100 claves por usuario, códigos de estado), TikHub, leído el 2026-11-06, https://tikhub.io/tutorials
- Getting Started, TikHub, leído el 2026-11-06, https://tikhub.io/getting-started
- MCP Integration Guide, TikHub, leído el 2026-11-06, https://tikhub.io/mcp
- MCP platforms (herramientas por plataforma), TikHub, leído el 2026-11-06, https://mcp.tikhub.io/platforms
- llms.txt (sitio principal), TikHub, leído el 2026-11-06, https://tikhub.io/llms.txt
- tikhub 2.2.0, PyPI, publicado el 2026-10-03, https://pypi.org/project/tikhub/
- tikhub 1.13.0 (texto de Scopes, Expire Date y Status), PyPI, publicado el 2024-12-05, https://pypi.org/project/tikhub/1.13.0/
- TikHub-API-Python-SDK, GitHub TikHub, leído el 2026-11-06, https://github.com/TikHub/TikHub-API-Python-SDK
- tikhub-plugin (v1.1.0), GitHub TikHub, publicado el 2026-06-15, https://github.com/TikHub/tikhub-plugin
- .mcp.json de tikhub-plugin, GitHub TikHub, leído el 2026-11-06, https://github.com/TikHub/tikhub-plugin/blob/main/.mcp.json
- Repositorio tikhub_api_skill, GitHub liangdabiao, leído el 2026-11-06, https://github.com/liangdabiao/tikhub_api_skill
- SKILL.md (95b2a10), GitHub liangdabiao, versión del 2026-07-08, https://github.com/liangdabiao/tikhub_api_skill/blob/95b2a10199b77d461a2108785eb2c03569bc28c9/.claude/skills/tikhub-api-helper/SKILL.md
- api_client.py (95b2a10), GitHub liangdabiao, versión del 2026-07-08, https://github.com/liangdabiao/tikhub_api_skill/blob/95b2a10199b77d461a2108785eb2c03569bc28c9/.claude/skills/tikhub-api-helper/api_client.py
- api_searcher.py (95b2a10), GitHub liangdabiao, versión del 2026-07-08, https://github.com/liangdabiao/tikhub_api_skill/blob/95b2a10199b77d461a2108785eb2c03569bc28c9/.claude/skills/tikhub-api-helper/api_searcher.py
- tikhub-api-helper, LobeHub Skills Marketplace, leído el 2026-11-06, https://lobehub.com/skills/liangdabiao-tikhub_api_skill-tikhub-api-helper
- TikHub API Skill, Shyft, leído el 2026-11-06, https://shyft.ai/skills/tikhub-api-skill
- Tikhub Skill by zeenie-ai, TypingMind, leído el 2026-11-06, https://www.typingmind.com/skills/zeenie-ai-tikhub-skill
- Código de tikhub-skill de OpenCompany, GitHub zeenie-ai, leído el 2026-11-06, https://github.com/zeenie-ai/OpenCompany/tree/main/server/skills/web_agent/tikhub-skill
- Extend Claude with skills, documentación de Claude Code, leído el 2026-11-06, https://code.claude.com/docs/en/skills
- Connect Claude Code to tools via MCP, documentación de Claude Code, leído el 2026-11-06, https://code.claude.com/docs/en/mcp
- Donating Agent Skills to the Agentic AI Foundation, Anthropic, 2026-10-22, https://www.anthropic.com/news/donating-agent-skills-to-the-agentic-ai-foundation
- Agentic AI Foundation Announces Four New Projects, Linux Foundation, 2026-10-22, https://www.linuxfoundation.org/press/agentic-ai-foundation-announces-four-new-projects-agent-skills-open-responses-openenv-and-opensandbox
- Authorization (versión del 2026-07-28), especificación de Model Context Protocol, leído el 2026-11-06, https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
- RFC 6750 The OAuth 2.0 Authorization Framework: Bearer Token Usage, IETF, 2012-10, https://datatracker.ietf.org/doc/html/rfc6750
- RFC 6585 Additional HTTP Status Codes (429), IETF, 2012-04, https://datatracker.ietf.org/doc/html/rfc6585
- Error 1010, documentación de Cloudflare, actualizado el 2026-10-24, https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/error-1010/
- Browser Integrity Check, documentación de Cloudflare, leído el 2026-11-06, https://developers.cloudflare.com/waf/tools/browser-integrity-check/
- urllib.request, documentación de Python, leído el 2026-11-06, https://docs.python.org/3/library/urllib.request.html
- Removing sensitive data from a repository, documentación de GitHub, leído el 2026-11-06, https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository
- Push protection beyond predefined secret patterns, GitHub Changelog, 2026-10-28, https://github.blog/changelog/2026-10-28-push-protection-beyond-predefined-secret-patterns/
- Scale agents securely with IAM Helper Agent Skills and MCP Tools, Google Cloud, 2026-10-27, https://cloud.google.com/blog/products/identity-security/scale-agents-securely-with-iam-helper-agent-skills-and-mcp-tools
- Catálogo de capacidades de EveryInfra (TikTok, compact), EveryInfra, leído el 2026-11-06 a las 00:18 SGT, https://api.everyinfra.com/api/v1/social/catalog?platform=tiktok&compact=1
- llms.txt de EveryInfra, EveryInfra, leído el 2026-11-06, https://api.everyinfra.com/llms.txt
- everyinfra-agent-plugins (v0.4.0), GitHub everyinfra, publicado el 2026-10-21, https://github.com/everyinfra/everyinfra-agent-plugins
- analysis-skills v0.4.1, GitHub everyinfra, publicado el 2026-10-15, https://github.com/everyinfra/analysis-skills/releases/tag/v0.4.1
- everyinfra 0.3.0, PyPI, publicado el 2026-11-01, https://pypi.org/project/everyinfra/
Referencia BL-98