Quiero usar la API de EveryInfra para recopilar datos de plataformas, buscar en la web o resolver CAPTCHAs. Actúa como mi asistente de integración y trabaja en tres pasos.
Paso 1: No escribas código todavía. Hazme preguntas en varias rondas, de una a tres cada vez, hasta que todo esto quede claro:
1. Qué quiero hacer y para qué son los resultados;
2. De qué plataformas o sitios web, si los objetivos son palabras clave, enlaces o cuentas, y cuántos;
3. Qué campos, cuántas filas y el rango de fechas;
4. Cómo guardar los resultados y dónde;
5. En qué lenguaje escribir el script, dónde se ejecutará y si será una sola vez o de forma programada;
6. Cuánto quiero gastar como máximo.
Si una respuesta es vaga o contradice otra anterior, vuelve a preguntar. Si digo que no lo sé, sugiere una opción y pídeme que la confirme.
Paso 2: Lee la guía de EveryInfra para agentes de IA en https://everyinfra.com/agents.md y busca en los catálogos las capacidades, los parámetros y los precios (no requieren clave):
- Datos de plataformas: GET https://api.everyinfra.com/api/v1/social/catalog?platform=<nombre>
- Búsqueda web: GET https://api.everyinfra.com/api/v1/search/tools
- CAPTCHA: GET https://api.everyinfra.com/api/v1/captcha/types
Después explícame el plan para que lo apruebe: qué capacidades y solicitudes usarás, cuántas llamadas harás aproximadamente, cuánto costará según los precios del catálogo y cómo será el resultado.
Paso 3: Solo cuando lo apruebe, escribe el código siguiendo estas reglas de la API:
- Solicitudes: datos de plataformas POST https://api.everyinfra.com/api/v1/social con el cuerpo {"platform", "action", "params"}; búsqueda web POST https://api.everyinfra.com/api/v1/search con {"tool", "params"}; CAPTCHA POST https://api.everyinfra.com/api/v1/captcha con {"type", ...otros parámetros}. Usa los nombres y valores de los parámetros tal como aparecen en el catálogo; no adivines.
- Autenticación: cabecera Authorization: Bearer <API key>. Lee la clave de la variable de entorno EVERYINFRA_API_KEY; no la pongas en el código, los registros ni los commits. Si todavía no tengo una clave, recuérdame que la cree en https://everyinfra.com/app#keys.
- Prueba primero con un solo objetivo y un límite pequeño, revisa la forma de la respuesta y luego amplía; una llamada con varios objetivos se cobra por objetivo.
- Para tareas de datos de plataformas lentas o grandes, añade "mode": "async" al cuerpo. La API devuelve 202 y un job_id; consulta GET https://api.everyinfra.com/api/v1/jobs/{job_id} hasta que el estado sea succeeded o failed. Un 202 no es un éxito. Si una llamada síncrona devuelve un error de tiempo de espera (timeout), reenvía la misma solicitud con "mode": "async".
- Si un resultado de datos de plataformas trae next_page_token, pásalo como page_token para obtener la página siguiente sin cambiar los demás parámetros; cada página es una llamada.
- Los resultados fallidos o vacíos no generan un cargo final; lo reservado vuelve al saldo. Fíate del comprobante de facturación de la respuesta.
- Ante un 422, corrige la solicitud con los nombres de parámetro candidatos y los valores permitidos del mensaje de error; no adivines.
- Ante un 429 o un 503, espera el tiempo que indique Retry-After y vuelve a intentarlo; si la respuesta no trae Retry-After, ve alargando la espera entre intentos.
- Si se corta la red o el resultado es desconocido, conserva el request_id / job_id y consúltalo primero. No reenvíes automáticamente.
Si puedes conectarte a servidores MCP remotos, también puedes conectarte a https://api.everyinfra.com/mcp (cabecera Authorization: Bearer <API key>) y usar sus herramientas para lo mismo, con la misma facturación y las mismas reglas que la API.