Saltar al contenido
Twexapi
Español
Esc
↑↓navegar↵abrir⌘Jvista previa
En esta página

Manejo de errores

Recupera errores HTTP de TwexAPI, fallos de herramientas MCP, límites de créditos y reintentos de acciones de escritura.

TwexAPI devuelve errores en dos capas: errores JSON-RPC de MCP (autenticación antes de que se ejecute una herramienta) y errores HTTP REST (después de que la solicitud llegue a la API). Conserva los códigos de estado, los cuerpos de respuesta, los cursores y los ID para que los reintentos y la revisión humana sigan siendo seguros.

Envelope de respuesta REST

Las llamadas exitosas devuelven:

{
  "code": 200,
  "msg": "success",
  "data": {}
}

Cuando el estado HTTP no es 2xx, trata la respuesta como un fallo aunque el cuerpo incluya un campo code. Registra el cuerpo completo, la ruta de la solicitud y cualquier cursor que ya hayas consumido.

Recuperación por estado HTTP

Estado Significado Acción
400 Consulta inválida, campo faltante o cuerpo mal formado Corrige la entrada. No reintentes sin cambios.
401 API key faltante o inválida Reemplaza la credencial desde el dashboard. Verifica el formato de Authorization: Bearer.
403 Créditos agotados, cuenta restringida o acción no permitida Consulta Get Balance. Recarga o elimina pasos de escritura hasta que se restaure el acceso.
404 Tweet, usuario, lista o recurso no encontrado Verifica ID, nombres de usuario y vigencia del cursor.
422 Validación fallida en entrada estructurada Corrige los campos del schema documentados en la página del endpoint. No reintentes sin cambios.
429 Límite de tasa excedido Haz backoff siguiendo Rate Limits. Conserva next_cursor y las filas completadas.
5xx Fallo transitorio del servicio o de la obtención upstream Reintenta con backoff exponencial y un límite máximo.

Créditos y balance

Las lecturas y escrituras medidas consumen créditos de la cuenta. Cuando un trabajo procesa muchas páginas, verifica el balance antes y después de ejecuciones largas:

curl --request GET \
  --url 'https://api.twexapi.io/balance' \
  --header 'Authorization: Bearer YOUR_API_KEY'

Si las respuestas 403 mencionan créditos o acceso:

  1. Detén los trabajos programados que sigan golpeando la API.
  2. Confirma el balance en el dashboard.
  3. Reanuda desde el último cursor guardado después de restaurar los créditos.

Reintentos seguros con paginación

Para búsqueda, seguidores, timelines e historial de DM:

  • Almacena next_cursor, has_next_page y cualquier task_id fuera de la conversación del agente.
  • Después de 429 o 5xx, reintenta el mismo cursor, no la página siguiente.
  • Después de 400, 404 o 422, inspecciona ID y parámetros de consulta antes de reintentar.

Acciones de escritura

Los endpoints de escritura (tweet, respuesta, like, follow, envío de DM) requieren:

  • Una API key de TwexAPI válida
  • Una cookie de Twitter o auth_token guardada en la solicitud

Reglas de recuperación:

Situación Acción
401 en escritura Corrige la API key y las credenciales de cookie antes de reintentar.
403 en escritura Confirma créditos y que la cuenta conectada aún tenga permiso.
Éxito ambiguo Busca el tweet, DM o estado de engagement con un endpoint de lectura antes de duplicar la acción.
Flujos de agentes Requiere aprobación humana antes de cualquier llamada MCP con read_only: false.

Public docs focus on API-key reads.

Reintenta publicaciones de forma segura con un Idempotency-Key

POST /twitter/tweets/create y POST /twitter/tweets/quote aceptan un header opcional Idempotency-Key. Usa un valor nuevo para cada publicación, como un UUID, y vuelve a enviar el mismo valor cuando reintentes esa publicación tras un timeout o un error de red:

curl https://api.twexapi.io/twitter/tweets/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 8f14e45f-ceea-467f-a8d1-1f0b4c2a9e01" \
  -d '{"cookie": "auth_token=...; ct0=...", "tweet_content": "Hello from TwexAPI"}'
Reintento con la misma key Resultado
La primera solicitud tuvo éxito (en las últimas 24 horas) Devuelve la primera respuesta con el header Idempotent-Replayed: true. No se publica de nuevo ni se cobran créditos.
La primera solicitud sigue en curso 409. Espera un momento y reintenta con la misma key.
El body es distinto 422. Usa una key nueva para otra publicación.
La primera solicitud falló Se ejecuta de nuevo. Las solicitudes fallidas no conservan la key.

Las keys tienen de 1 a 255 caracteres ASCII visibles y son independientes por API key. Sin el header, cada solicitud publica. Las llamadas MCP a twexapi_write envían una key automáticamente: repetir exactamente la misma llamada en menos de 10 minutos devuelve el primer resultado.

Errores MCP

La autenticación falló antes de ejecutar la herramienta

Cuando falla la autenticación de MCP, no se ejecuta ninguna herramienta:

{
  "jsonrpc": "2.0",
  "id": null,
  "error": {
    "code": 401,
    "message": "Access token is invalid or expired"
  }
}

Vuelve a iniciar sesión desde el cliente MCP, o corrige x-api-key o Authorization: Bearer, y repite la llamada. Consulta la referencia de herramientas MCP para ver todos los mensajes de autenticación.

Sin créditos

Cuando la cuenta se queda sin créditos, la conexión MCP sigue funcionando y explore es gratis, pero las demás llamadas devuelven un resultado de error sin llamar a la API:

{
  "error": "No credits left on this TwexAPI account. Top up at https://twexapi.io/dashboard and try again."
}

Detén el trabajo y pide al usuario que recargue; reintentar no sirve.

Error de API devuelto por twexapi_request o twexapi_write

Cuando falla la llamada REST subyacente, conserva el resultado de la herramienta:

{
  "status_code": 429,
  "endpoint": "get_global_trending_tweets",
  "method": "GET",
  "path": "/twitter/global-trending/tweets",
  "result": {
    "code": 429,
    "msg": "Rate limit exceeded. QPS limit: 2 requests per second",
    "data": []
  }
}

Aplica la misma tabla de recuperación HTTP de arriba. No dejes que el modelo adivine una ruta nueva: vuelve a llamar a explore si la ruta pudo cambiar.

Errores de SDK y CLI

Los SDK generados mapean fallos HTTP a excepciones nativas del lenguaje. Captura errores en el límite del trabajo, registra el código de estado y el cuerpo de respuesta, y enruta 429/5xx a políticas de reintento.

Ejemplo en Python:

import requests

try:
    response = requests.get(
        "https://api.twexapi.io/balance",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        timeout=30,
    )
    response.raise_for_status()
except requests.HTTPError as exc:
    status = exc.response.status_code
    body = exc.response.text
    if status == 429:
        # Back off, preserve cursor, retry later
        ...
    elif status in (400, 404, 422):
        # Fix input; do not retry unchanged
        ...
    raise

Consulta patrones específicos por lenguaje en cada página de SDK.

Plantilla de backoff para reintentos

Usa backoff exponencial con límite para 429 y 5xx:

retry_delays_seconds = [5, 15, 45, 120]

for delay in retry_delays_seconds:
    response = call_twexapi()
    if response.ok:
        break
    if response.status_code in (429, 500, 502, 503, 504):
        time.sleep(delay)
        continue
    break  # 4xx other than 429: stop and fix input

Combina el backoff con Rate Limits para que los trabajos programados no reinicien a QPS completo inmediatamente después de un 429.

Notas específicas por framework

Runtime Orientación
LangChain Valida modelos de handoff; detén el grafo en 401.
Prefect Usa reintentos de tareas con jitter; almacena cursores en el estado de la tarea.
n8n / Zapier / Make Enruta 401/403 a alertas de ops; retrasa replays de 429.
Agentes MCP Nunca descartes next_cursor después de un éxito parcial.

Páginas relacionadas

¿Te ha resultado útil esta página?