Novedades
El endpoint /api/auto es ahora la vía más rápida para obtener una response válida para cualquier URL. Apúntalo a un target. Auto elige si ejecutar la request a través de Single, Proxy Finder o Browser, resuelve las comprobaciones de la página cuando aparecen y te devuelve una session que tu próxima llamada puede reutilizar.
Un solo endpoint. Cualquier target. Sin cambios de modo por tu parte.
Esa es toda la idea. El resto de este post explica cómo funciona, cuánto cuesta y cuáles son sus limitaciones.
Cómo funciona
Bajo Auto opera una escala de niveles (los más económicos primero, los más costosos al final). En cada request, Auto sube de nivel hasta que uno entrega una response que tus reglas validate aceptan.
Los niveles, en orden:
- Cached session. Si Auto tiene una session activa para este host de una llamada previa, la reutiliza primero. La vía más económica.
- Proxy Finder. Una request con proxy rotativo. Ideal para sitios protegidos principalmente por reputación de IP.
- Browser. Un renderizado completo que ejecuta JavaScript, completa las comprobaciones requeridas por la página y recolecta las cookies emitidas por el sitio.
En cuanto un nivel tiene éxito, Auto almacena la session obtenida: el proxy id utilizado, las cookies emitidas por el sitio y el User-Agent. En la siguiente llamada al mismo host, Auto prueba esa session primero. Si sigue funcionando, pagas el nivel económico, no el costoso.
Una llamada mínima:
curl -X POST "https://api.foura.ai/api/auto" \
-H "X-API-Key: pk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/data",
"validate": { "status": { "accept": [200] } }
}'
Una respuesta recortada:
{
"status": 200,
"data": "...",
"headers": [...],
"meta": {
"rung": "cache",
"solved": false,
"attempts": 1,
"credits": 2
},
"session": {
"proxy": "CLN1B8",
"cookies": [{ "name": "cf_clearance", "value": "..." }],
"userAgent": "..."
}
}
Dos campos importan para lo que construyas a continuación. meta.rung te indica qué ruta ganó. session es la tupla que puedes pasar a una llamada de /api/single para reproducir la misma salida por tu cuenta. El campo proxy es un ID opaco en base36 (sin IPs en bruto), seguro para registrar en logs y para transferir entre sistemas.
Impacto
Aquí importan dos números.
La primera llamada a un sitio protegido ejecuta el nivel Browser: renderiza, resuelve, recopila cookies y te entrega la página. Eso cuesta unos 10 créditos. Una vez que Auto ha guardado en caché una sesión funcional para ese host, las llamadas sucesivas la reproducen: mediante Single a 2 créditos, o mediante Proxy Finder a 4 créditos cuando las cookies de la sesión funcionan desde cualquier dirección. Así, la segunda llamada es hasta 5 veces más barata que la primera, y cada una posterior mantiene la tarifa económica mientras la sesión siga activa. Medimos esto en producción durante el despliegue: las salidas sin cookies (una vez encontradas) se reproducen a exactamente 2 créditos por llamada frente a los 10 que solían costar cuando cada request pasaba por Proxy Finder.
El segundo número: los niveles fallidos no se facturan. Si Auto prueba tres proxies y cada uno devuelve 403 antes de que el cuarto entregue el contenido, solo cuentan los créditos del cuarto. Pagas por el contenido entregado, no por la búsqueda.
Ese es el valor principal. El nivel costoso se ejecuta una vez, el nivel económico se ejecuta a partir de entonces de forma indefinida, y tú no tienes que escribir la lógica de caché por tu cuenta.
Vale la pena destacar otros dos comportamientos porque resuelven dolores de cabeza reales en producción:
Los objetivos con bloqueo geográfico dejan de desperdiciar salidas. Cuando un sitio devuelve 451 (o un interstitial de bloqueo legal) para la mayoría de las salidas, Auto aprende qué países entregaron contenido realmente. En la siguiente llamada, obtiene salidas nuevas de esos países primero y distribuye la carga concurrente entre ellas. De este modo, una única salida afortunada no se sobrecarga ni recibe rate limit.
Validate se ejecuta en cada nivel. Una página con contenido incorrecto (una restricción por país que devuelve status 200 con un aviso legal en el body) nunca cuenta como un acierto. Si tu validate.data.fail dice "legal reasons", Auto sigue intentándolo hasta que un nivel lo supere. No el nivel en caché. Ningún nivel. Si nada lo supera, recibes un fallo transparente con el motivo real.
Para usuarios avanzados
Algunos ajustes que importan una vez que envías volumen a través de Auto.
timeout_ms es un presupuesto para toda la operación, no por nivel. El valor predeterminado es 120 segundos. Auto lo raciona: cada subllamada recibe min(su timeout natural, el presupuesto restante), y la secuencia deja de lanzar nuevos niveles cuando queda muy poco tiempo. Configura 20,000 para tareas de latencia interactiva. Deja el valor predeterminado para rastreos masivos que toleran colas más largas.
forceProxy está activo por defecto. Auto nunca interactúa con el objetivo desde la IP de origen de FourA a menos que configures forceProxy: false. Una advertencia: algunos sitios (Cloudflare interactivo con filtrado por confianza de IP) funcionan mejor desde una IP de centro de datos limpia que desde una salida residencial de baja confianza. Por lo tanto, forceProxy: false puede hacer que ciertos objetivos sean más fáciles, no más difíciles. Si observas desafíos repetidos en un host específico, vale la pena probar desactivando esta opción.
ignoreProxies es una avoid-list del cliente. Pasa los proxy ids que sabes que están quemados (de una session.proxy previa que recibió rate limit de tu lado), y Auto los omitirá en todas partes: reutilización de warm sessions, búsqueda de salida y la sub-llamada a Proxy Finder. Así, Auto no volverá a elegir la salida que le acabas de indicar que evite.
meta también te permite crear tus propios dashboards encima: qué hosts llegaron al nivel de navegador hoy, promedio de intentos por entrega, proporción de solicitudes con desafío resuelto frente a las limpias. Si un host específico sube repentinamente de 2 créditos a 10, esa es una señal de degradación de sesión sobre la que puedes actuar antes de que tu factura aumente.
Un ejemplo que combina los cuatro:
import requests
r = requests.post(
"https://api.foura.ai/api/auto",
headers={"X-API-Key": "pk_live_..."},
json={
"url": "https://example.com/product/9876",
"timeout_ms": 30000,
"forceProxy": True,
"ignoreProxies": ["CLN1B8", "K7X9AB"],
"validate": {
"status": {"accept": [200]},
"data": {"accept": ['"price":'], "fail": ["captcha", "legal reasons"]}
}
}
).json()
# If Auto delivered, keep the session for the next call to this host
if r.get("status") == 200 and "session" in r:
session = r["session"] # {proxy, cookies, userAgent}
print(r["meta"]["rung"], r["meta"]["credits"], r["meta"]["attempts"])
Para el esquema de validate en sí, consulta la guía anterior en Validate Rules Now Decide What Counts as Success.
Próximos pasos
Hay dos elementos en el roadmap para Auto en este momento.
La inspección de sesiones llegará pronto al Dashboard. Ahora mismo, las sesiones que Auto mantiene por host residen dentro del servicio, y no hay nada que puedas revisar cuando depuras un consumo inesperado desde tu lado. Estamos integrando una vista de sesiones por host para que puedas ver las sesiones en caché, su antigüedad, cuánto tiempo seguirán activas y el historial de peldaños detrás de cada una. Además, un botón para eliminar una sesión manualmente cuando tu objetivo cambie y sepas que la caché no es válida.
Después de eso, controles de costos más estrictos. Un límite estricto de créditos por request (no gastar nunca más de X en esta llamada, fallar de forma transparente si fuera necesario) y un modo "single-only" para equipos cuyos objetivos nunca necesitan el peldaño del navegador. Ambos están detrás de feature flags hoy.
El propósito de Auto es que no tengas que pensar en qué producto llamar. Eso no significa que no puedas inspeccionar lo que ocurrió. Cada response incluye el peldaño que utilizó y la sesión que construyó. Lee esos dos campos y sabrás con exactitud por qué tus llamadas cuestan lo que cuestan.