Desarrolladores

Documentación de la API y MCP de EveryInfra

Elige una tarea del catálogo público, crea una clave API y haz tu primera llamada. Esta guía explica los ejemplos de solicitud, la configuración de MCP, la autenticación, la facturación y el tratamiento de errores.

Una cuenta para datos, búsqueda, CAPTCHA y una API de IA gratuita

EveryInfra ofrece 413 funciones de recopilación de datos en 90 plataformas, 17 herramientas de búsqueda, 52 tipos de CAPTCHA y una API de IA compatible con OpenAI que es gratis después de recargar. Cada producto tiene su propio endpoint, permisos y formato.

  • Los catálogos públicos se pueden consultar sin clave API.
  • Los endpoints autenticados usan una clave API de tipo Bearer.
  • MCP y REST comparten los mismos contratos públicos de las funciones.

Inicio rápido

Envía una solicitud real

Crea una clave API en la consola, consulta el catálogo correspondiente y envía el identificador de plataforma o función exactamente como aparece. La respuesta incluye datos estructurados e información de facturación de la solicitud.

  • Configura Authorization: Bearer YOUR_API_KEY.
  • Configura Content-Type: application/json para cuerpos de solicitud JSON.
  • Usa los identificadores y nombres de parámetros exactamente como los devuelve el catálogo.
  • Para tareas lentas, límites altos o lotes, envía "mode":"async" en el cuerpo de la solicitud: recibirás un job_id de inmediato y consultarás el resultado en GET /api/v1/jobs/{job_id}. Una solicitud síncrona debe terminar en un máximo de 85 segundos; un trabajo asíncrono no tiene ese límite.
Solicitud
curl -X POST https://api.everyinfra.com/api/v1/social \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"tiktok","action":"search","params":{"keyword":"AI infrastructure","limit":10}}'
Respuesta
{
  "id": "…",
  "platform": "tiktok",
  "action": "search",
  "results": [
    {
      "id": "…",
      "text": "…",
      "author_username": "…"
    }
  ],
  "count": 10,
  "billing": {
    "charged": true,
    "charged_usd": 0.005556,
    "balance_after_usd": 12.340122
  }
}

Consulta las tareas admitidas en los catálogos públicos

Consulta las tareas, entradas, precios y disponibilidad en los catálogos. El catálogo compacto de EveryData muestra lo esencial de cada acción; el completo incluye parámetros opcionales, límites y campos de respuesta. Actualiza los precios y la disponibilidad cuando los necesites en lugar de fijarlos en el código.

ProductoEndpoint del catálogoContenido
EveryDataGET /api/v1/social/catalog?compact=1Plataformas, acciones, parámetros obligatorios, modos de entrega, disponibilidad y precios
EverySearchGET /api/v1/search/toolsHerramientas de búsqueda, contratos de solicitud, niveles y precios
EverySolveGET /api/v1/captcha/typesTipos de CAPTCHA, parámetros, formatos de solución, disponibilidad y precios
API de IAGET /api/v1/modelsModelos que la API de IA acepta ahora; no necesita clave API

Autenticación

Envía la clave API como token Bearer. La autenticación se realiza antes de validar los parámetros: una solicitud sin clave válida recibe un 401, no detalles sobre los parámetros. No incluyas claves en código del navegador, registros ni repositorios públicos.

  • Crea claves distintas para cada entorno o carga de trabajo.
  • Rota una clave desde la consola si cambia su alcance o se ve expuesta.
  • Aplica las restricciones de la consola para limitar una clave a líneas de producto, funciones o rangos de IP concretos.
  • Con la misma clave, GET /api/v1/account te muestra el saldo (de pago, de bonificación y total), el descuento por recargas de este mes, el límite de solicitudes por minuto y el uso de las últimas 24 horas. Los importes están en USD. La consulta es de solo lectura, no tiene coste y no cuenta para el límite por minuto.
  • En esa respuesta, balance.total_usd suma el saldo de pago y el de bonificación, y las llamadas consumen primero la bonificación. bonus_expiring muestra los importes de bonificación con fecha de caducidad que aún siguen vigentes. rate_limit.requests_per_minute lo comparten todas las claves de la cuenta, y usage_24h puede ir con un minuto de retraso aproximadamente.
  • Para el historial de toda la cuenta (uso diario, llamadas recientes, facturación y movimientos del monedero), la misma clave puede leer la API de la consola, por ejemplo GET /portal/api/requests/{request_id}. La clave necesita acceso de lectura a la cuenta; estas lecturas no tienen coste y admiten 60 por minuto por cuenta. La lista completa está en la sección Account de la especificación OpenAPI.
  • Para que una IA también pueda cambiar la cuenta, concede permisos de escritura en API Keys → Restringir acceso: gestionar claves, cambiar ajustes y abrir o responder tickets. Los tres están desactivados por defecto y solo tú puedes activarlos, con la sesión iniciada en la consola. Con una clave se pueden crear como máximo 20 claves y 10 tickets al día; ver o rotar claves completas, cambiar permisos o listas de IP permitidas, reactivar claves y los pagos siempre se hacen en la consola. La sección Account de la especificación OpenAPI lista los endpoints, por ejemplo POST /portal/api/keys/{key_id}/disable.
  • Para no tener que consultar periódicamente, añade una dirección HTTPS en Configuración → Webhooks de la consola. Enviamos un POST firmado cuando el saldo baja hasta tu umbral o termina una tarea asíncrona. Verifica X-EveryInfra-Signature, un HMAC-SHA256 de la marca de tiempo, un punto y el cuerpo original calculado con tu secreto de firma; rechaza marcas de tiempo con más de 5 minutos de diferencia y elimina duplicados por el ID del evento, porque los envíos fallidos se reintentan con espera creciente, hasta 7 intentos.
account.sh
curl https://api.everyinfra.com/api/v1/account \
  -H "Authorization: Bearer YOUR_API_KEY"

POST /api/v1/social

EveryData

Recopila datos de 90 plataformas con 413 acciones admitidas. Elige una plataforma y una acción, y proporciona las entradas que requiere.

GET /api/v1/social/catalog?compact=1

POST /api/v1/search

EverySearch

Elige entre 17 herramientas para buscar en la web y recuperar textos originales. Indica el identificador de la herramienta y sus entradas obligatorias.

GET /api/v1/search/tools

POST /api/v1/captcha

EverySolve

Resuelve 52 tipos de CAPTCHA mediante un endpoint. Indica el campo `type` y las entradas obligatorias. Solo se factura la entrega correcta; un intento fallido no deja un cargo final y cualquier importe reservado se restaura automáticamente.

GET /api/v1/captcha/types

POST /api/v1/chat/completions

API de IA

chat/completions compatible con OpenAI, gratis para cuentas con recarga. Úsala para limpiar, clasificar, extraer y resumir los datos que recopilas.

GET /api/v1/models

Valida los parámetros de la solicitud

Los parámetros desconocidos devuelven un 422 con la lista de parámetros admitidos y, cuando es posible, una sugerencia de nombre similar. Los valores enumerados no válidos devuelven los valores permitidos. Los parámetros no se ignoran ni se sustituyen por valores predeterminados sin avisar.

  • Usa los nombres de parámetros en snake_case del catálogo.
  • Trata did_you_mean como una ayuda para corregir la solicitud, no como una sustitución ya realizada.
  • Antes de enviar una lista de objetivos, revisa las reglas de facturación y los límites del catálogo.

API de IA (gratis con recarga)

La API de IA es chat/completions compatible con OpenAI. Cualquier cuenta con recarga la usa sin coste y sin consumir saldo para limpiar, quitar duplicados, clasificar, extraer y resumir los datos que recopila; el prompt define el formato de salida.

  • Con el SDK de OpenAI, usa https://api.everyinfra.com/api/v1 como base_url y envía tu clave API de EveryInfra en la cabecera Authorization: Bearer; un ?key= en la URL se rechaza.
  • El endpoint de chat es POST /api/v1/chat/completions, con el formato de solicitud y respuesta de OpenAI.
  • Hay dos modelos: gemini-3.6-flash, el predeterminado, y gemini-flash-lite, más ligero. GET /api/v1/models devuelve la misma lista y no necesita clave. Un nombre de modelo mal escrito devuelve 422 con el nombre correcto más probable.
  • Admite streaming: envía stream: true para recibir SSE que termina con data: [DONE] y añade stream_options.include_usage para el uso de tokens.
  • messages admite hasta 45.000 caracteres en total; una entrada mayor devuelve 422 input_too_large, así que divídela en solicitudes más pequeñas.
ai_quickstart.py
from openai import OpenAI
import os

client = OpenAI(base_url="https://api.everyinfra.com/api/v1",
                api_key=os.environ["EVERYINFRA_API_KEY"])
reply = client.chat.completions.create(
    model="gemini-3.6-flash",
    messages=[{"role": "user", "content": "Devuelve solo JSON: indica el sentimiento, el tema y la intención de esta reseña."}],
)
print(reply.choices[0].message.content)

Límites según el total recargado, sumando todas las claves de la cuenta

Total recargadoSolicitudes por minutoSimultáneas
Con recarga, menos de $100505
Desde $10050050
Desde $5005000500

El saldo de prueba y los códigos de crédito no cuentan en el total recargado; una cuenta que nunca ha recargado recibe 403 ai_topup_required. Los niveles son límites, no un rendimiento garantizado.

EstadoSignificado
403 ai_topup_requiredLa cuenta nunca ha recargado; cualquier recarga habilita la API de IA.
429 rate_limitedSe agotaron las solicitudes por minuto (per_minute_limit) o hay demasiadas en curso (concurrency_limit); espera Retry-After y vuelve a intentarlo.
503 ai_busyEl servicio está ocupado; reintenta después de Retry-After.
403 ai_disabledLa API de IA está pausada para esta cuenta.
422 unknown_modelEl modelo no existe; el mensaje sugiere el nombre correcto más probable.

La API de IA sirve para organizar los datos que recopilas con EveryInfra. Si se usa para otra cosa o las llamadas son claramente anómalas, podemos pausar la API de IA de esa cuenta; la cuenta, sus demás API y su saldo no se ven afectados.

MCP para agentes de IA

Usa MCP para que un cliente compatible descubra y llame directamente a las herramientas de EveryInfra. La superficie actual cubre datos, búsqueda, CAPTCHA y chat de IA con everyinfra_chat (gratis con recarga, sin streaming), con las reglas de autenticación, facturación, límites, validación y ajustes de saldo de cada capacidad REST.

  • Configura la URL del servidor remoto y una clave API de EveryInfra en el cliente.
  • Consulta las funciones disponibles antes de una llamada de datos, búsqueda o CAPTCHA.
  • Guarda la clave API en la configuración de secretos o del entorno del cliente.
  • Usa la herramienta gratuita everyinfra_account (sin argumentos) para ver el saldo, el descuento, el límite por minuto y el uso reciente; devuelve el mismo resumen que GET /api/v1/account.
  • Después de una llamada de datos con mode: "async", consulta el resultado con la herramienta gratuita everyinfra_get_job y el job_id devuelto; muestra lo mismo que GET /api/v1/jobs/{job_id}.
  • Para los registros de la cuenta, las herramientas gratuitas everyinfra_usage, everyinfra_requests, everyinfra_billing, everyinfra_keys y everyinfra_tickets devuelven el uso diario, las llamadas recientes (consulta una por request_id para ver cómo se liquidó su cobro), el gasto y los movimientos del monedero, la lista de claves y los tickets de soporte. Necesitan acceso de lectura a la cuenta en la clave: las claves sin límites de línea de producto pueden leer uso, llamadas y facturación de forma predeterminada; para las claves limitadas y para los tickets, actívalo en API Keys → Restringir acceso en la consola.
  • Cuando la cuenta necesita saldo, everyinfra_topup_link devuelve la página de recarga de la consola; el titular de la cuenta paga allí, y la herramienta nunca crea un pago ni cobra nada.
  • Cuando el titular concede permisos de escritura a la clave en la consola, una IA también puede usar everyinfra_key_create, everyinfra_key_update, everyinfra_key_disable, everyinfra_key_delete, everyinfra_settings_update, everyinfra_webhook_set, everyinfra_webhook_test, everyinfra_ticket_create y everyinfra_ticket_reply. Una clave creada así nunca supera a la que llama ni recibe permisos de escritura, las claves creadas en la consola solo se pueden desactivar, y cada cambio aparece en las notificaciones de la consola.
Endpoint
POST /mcp
Transporte
Streamable HTTP, sin estado
Herramientas
Los nombres de herramientas del espacio everyinfra_* forman parte del contrato público de los clientes.

Comprende los cobros y los ajustes de saldo

Consulta en el catálogo público el precio y la unidad de facturación de cada función. Cada respuesta registra el importe cobrado. En los productos facturados por entrega correcta, un resultado fallido o vacío no deja un cargo final y cualquier importe reservado se restaura automáticamente.

  • No conviertas unidades internas del saldo a moneda en tu cliente.
  • Muestra la moneda y los importes devueltos por la API y úsalos para conciliar los cobros.
  • Cuando una operación basada en entrega no se completa, cualquier importe reservado vuelve automáticamente al saldo de la cuenta.
  • El objeto billing de cada respuesta de pago incluye charged_usd, lo que se cobró en esa llamada en USD (0 si no hubo cargo y null mientras el resultado aún no se conoce), y balance_after_usd, el saldo que queda una vez liquidada la llamada (null si no se puede leer). Durante un lote, sigue balance_after_usd en lugar de consultar la cuenta una y otra vez.
  • Si una llamada falla y el importe reservado ya volvió a tu saldo, el billing del cuerpo del error también incluye balance_after_usd.

Tratamiento de errores

Lee el estado HTTP y el cuerpo del error juntos. Los errores de validación indican qué entradas corregir. Antes de reintentar, comprueba qué falló y si repetir la solicitud podría duplicar una acción.

EstadoSignificadoQué hacer
401Clave API ausente, no válida o desactivadaComprueba el token Bearer y el estado de la clave.
402Saldo insuficienteConsulta el saldo actual con GET /api/v1/account y después añade saldo o reduce el alcance de la solicitud.
404Ruta o recurso desconocidoComprueba el endpoint y el identificador del recurso.
422Parámetro, valor, plataforma, acción o tipo no válidoConsulta los valores admitidos y did_you_mean en la respuesta.
429Límite de frecuencia alcanzadoEspera lo que indique Retry-After antes de reintentar. El límite es por cuenta y todas sus claves API cuentan juntas; una clave también puede tener su propio límite menor.
5xxNo se pudo completar la solicitudRegistra el identificador de la solicitud. Ante un timeout (timeout), reintenta la misma solicitud con "mode":"async" para recibir un job_id en lugar de esperar.

¿Necesito una clave API para consultar los catálogos?

No. Puedes consultar los catálogos públicos antes de registrarte. Las llamadas autenticadas sí necesitan una clave API Bearer válida.

¿MCP y REST son productos distintos?

No. MCP es otra forma de acceder a las herramientas que EveryInfra publica en ese momento. Datos, búsqueda, CAPTCHA y el chat de IA comparten las reglas REST correspondientes.

¿La API de IA es gratis?

Sí. Cualquier cuenta con recarga puede llamarla sin consumir saldo. Los límites dependen del total recargado: 50 solicitudes por minuto y hasta 5 a la vez por debajo de $100; 500 y 50 desde $100; 5000 y 500 desde $500; el saldo de prueba y los códigos de crédito no cuentan.

¿Cómo consulto mi saldo desde el código?

Llama a GET /api/v1/account con la misma clave API Bearer. Devuelve el saldo de pago, el de bonificación y el total en USD, el descuento por recargas de este mes, el límite de solicitudes por minuto y el uso de las últimas 24 horas, sin cobrar nada ni contar para el límite. Además, cada respuesta de pago incluye billing.balance_after_usd.

¿Se puede ignorar un parámetro no admitido?

No. Los parámetros desconocidos devuelven un 422 con los valores admitidos y, cuando se puede determinar, una sugerencia de nombre similar.

¿Cómo envío un lote grande de solicitudes?

Usa el modo asíncrono: añade "mode": "async" al cuerpo de la solicitud. Cada llamada devuelve un job_id al instante y consultas el resultado en GET /api/v1/jobs/{job_id}. Una llamada síncrona debe terminar en un máximo de 85 segundos o falla por tiempo de espera agotado (sin cargo); un trabajo asíncrono no tiene ese límite.