- Para una única URL conocida, el modo JSON en
/scrapees más económico y sincrónico. - Comparación completa: Cómo elegir el extractor de datos.
/agent es una API mágica que busca, navega y recopila datos desde la gama más amplia de sitios web, encontrando datos en lugares de difícil acceso y descubriéndolos de formas que ninguna otra API puede. Consigue en pocos minutos lo que a una persona le llevaría muchas horas: recopilación de datos de extremo a extremo, sin necesidad de scripts ni trabajo manual.
Tanto si necesitas un solo dato como conjuntos de datos completos a escala, Firecrawl /agent trabaja para obtener tus datos.
Piensa en /agent como una investigación profunda de datos, ¡estén donde estén!
Research Preview: Agent está en acceso anticipado. Es de esperar que tenga algunos detalles por pulir. Mejorará significativamente con el tiempo.
/extract y lo lleva más allá:
- No requiere URL: solo describe lo que necesitas mediante el parámetro
prompt. Las URL son opcionales - Búsqueda web profunda: busca y navega de forma autónoma en lo más profundo de los sitios para encontrar tus datos
- Fiable y preciso: funciona con una gran variedad de consultas y casos de uso
- Más rápido: procesa múltiples fuentes en paralelo para obtener resultados más rápido
Pruébalo en el Playground
Prueba el agente en el Playground interactivo, sin necesidad de programar.
Uso de /agent
El único parámetro obligatorio es prompt. Describe simplemente qué datos quieres extraer. Para obtener salida estructurada, proporciona un esquema JSON. Los SDK son compatibles con Pydantic (Python) y Zod (Node) para definiciones de esquemas con tipado seguro:
Respuesta
JSON
Proporcionar URLs (opcional)
Puedes proporcionar URLs opcionalmente para centrar al agente en páginas específicas:Estado y finalización de trabajos
Los trabajos de agente se ejecutan de forma asíncrona. Cuando envíes un trabajo, recibirás un ID de trabajo que podrás usar para comprobar su estado:- Método predeterminado:
agent()espera y devuelve los resultados finales - Iniciar y luego consultar: Usa
start_agent(Python) ostartAgent(Node) para obtener un ID de trabajo de inmediato y luego consulta su estado conget_agent_status/getAgentStatus - Push en lugar de consultar: Pasa un
webhookal iniciar el trabajo para recibir eventos de agente a medida que la ejecución avanza y finaliza
Los resultados de los trabajos estarán disponibles a través de la API durante 24 horas después de su finalización. Pasado este período, aún puedes ver el historial y los resultados de tu agente en los registros de actividad.
Posibles estados
La cancelación es cooperativa. Cuando llamas al endpoint de cancelación, la solicitud se registra de inmediato, pero cualquier paso que ya esté en curso (un paso de razonamiento del LLM, una llamada a una herramienta o una acción del navegador) se ejecuta hasta completarse correctamente antes de que el trabajo se detenga. Los créditos pueden seguir acumulándose durante ese breve intervalo, por lo que el valor final de
creditsUsed puede ser mayor que el valor informado en el momento en que hiciste clic en cancelar. Un trabajo cancelado informa el estado failed al consultarse y emite un evento de webhook agent.cancelled.Ejemplo en estado pendiente
JSON
Ejemplo completado
JSON
Listado de ejecuciones de agentes
GET /agent lista todas las ejecuciones de agentes de tu equipo, empezando por las más recientes, incluidas las iniciadas desde el playground o la API. Cada entrada incluye el ID de la ejecución, la hora de creación, el estado, una breve referencia al objetivo y las opciones con las que se inició.
Los resultados se dividen en páginas fijas de 20 ejecuciones. Cuando hay más páginas, la respuesta incluye una URL next; pasa su marca de tiempo before para obtener la página siguiente. Los métodos del SDK no paginan automáticamente, por lo que tú decides hasta dónde retroceder.
Seguimiento de una ejecución en curso
Agent no mantiene abierta una conexión de streaming. No hay flujo de eventos enviados por el servidor ni websocket, por lo que puedes seguir una ejecución sondeando su traza o recibiendo webhooks.
Si ordenas los eventos de traza por tu cuenta, agrúpalos primero por
agent.id: producerSequence es monótona para cada agente emisor, por lo que una única ordenación global intercala incorrectamente los eventos de un orquestador con los de sus subagentes. Los eventos también pueden llegar brevemente después del evento terminal run.finished, así que continúa sondeando durante un breve periodo adicional antes de mostrar el estado final.
Trazas de ejecución y snapshots
Cada ejecución registra una traza de ejecución canónica: una secuencia ordenada de eventos que incluye llamadas a herramientas, resúmenes de razonamiento, actualizaciones de progreso, sesiones de navegador y cambios en los artefactos de salida. Consúltala para depurar una ejecución o crear una interfaz de usuario de progreso en tiempo real:artifact.updated hacen referencia a la salida de trabajo del agente mediante snapshotId. Obtén el contenido completo de un snapshot mediante el endpoint de snapshots:
Las trazas y los snapshots se registran en las ejecuciones de Spark 2, es decir, en todas las ejecuciones nuevas; los trabajos iniciados en modelos Spark 1 antes de su retirada no los incluyen. Consulta las referencias de la API de traza y snapshot para ver el esquema completo de eventos, y el catálogo de errores de Agent para conocer los fallos que devuelven estos endpoints.
Obtención de los datos de origen del agente
Durante su ejecución, un agente va escribiendo su salida de trabajo en artefactos, que puedes recuperar cuando tengas la traza de la ejecución. Cada eventoartifact.updated describe un cambio en un artefacto: artifact.kind puede ser json, markdown, html, screenshot o text; artifact.path indica dónde lo guardó la ejecución, y artifact.snapshotId es el identificador que debes usar para obtener su contenido mediante GET /agent/{jobId}/snapshots/{snapshotId}. El endpoint de snapshots devuelve ese contenido en un campo snapshot como una cadena: en los artefactos json, esa cadena está codificada en JSON y debe decodificarse; en los artefactos markdown, html y text, es el contenido directamente.
Para obtener el contenido de página que produjo una ejecución, recupera la traza, conserva los eventos artifact.updated cuyo kind te interese y, después, obtén cada snapshot:
- Los artefactos son la salida de la ejecución, no un archivo de cada página. Lo que una ejecución escribe en un artefacto depende de cómo resuelva tu prompt, así que considera el conjunto de artefactos como lo que produjo esa ejecución concreta, no como un registro garantizado de todas las páginas que abrió.
- Los resultados de las herramientas contienen el resto. Cada evento
tool_call.finishedincluye un camporesultcon lo que devolvió la herramienta, donde aparece el contenido que nunca llegó a convertirse en un artefacto.
Compartir ejecuciones del agente
Puedes compartir ejecuciones del agente directamente desde el Agent Playground. Los enlaces compartidos son públicos: cualquier persona que tenga el enlace puede ver la salida y la actividad de la ejecución, y puedes revocar el acceso en cualquier momento para desactivar el enlace. Los motores de búsqueda no indexan las páginas compartidas.Selección de modelo
Firecrawl Agent se ejecuta con Spark 2 —más económico y rápido que los modelos anteriores de Spark 1, con una precisión comparable—. Es el modelo predeterminado: todas las ejecuciones usanspark-2, tanto si se establece el parámetro model como si no.
Los modelos Spark 1 están obsoletos. Los nombres de modelo de Spark 1 se siguen aceptando por compatibilidad con versiones anteriores, pero las solicitudes que los usan se redirigen a
spark-2.Spark 2
spark-2 gestiona toda la gama de tareas que antes requerían elegir entre Mini y Pro, por lo que no es necesario sacrificar precisión por costo.
Aspectos destacados:
- El menor costo por ejecución
- El tiempo de ejecución más rápido
- Precisión comparable a la del anterior modelo insignia Spark 1
- El único modelo con un presupuesto de razonamiento: pasa
effort(low,mediumohigh) para controlar cuánto razona
Especificar un modelo
El parámetromodel es opcional; todas las solicitudes usan spark-2:
Proveedores de datos que requieren aceptar términos
Agent puede llamar a proveedores de datos de Alexandria durante una ejecución, pero solo a aquellos cuyos términos de datos haya aceptado tu equipo. Nunca se llama a un provider cuyos términos no hayas aceptado, sea cual sea el valor deexchange.onTermsRequired. La ejecución continúa con los proveedores que puede usar, y la respuesta de estado indica cuáles omitió.
No existe un modo de aceptación automática. Aceptar los términos de un provider siempre requiere que una persona dé su conformidad, ya sea en el Dashboard o mediante una llamada a terms/accept que realice tu aplicación después de que su usuario haya dado su consentimiento explícito. Si construyes un agente sobre Firecrawl, este debe consultar a su usuario antes de llamar a terms/accept. Solicitar datos no equivale a aceptar los términos de un provider.
Si omites
onTermsRequired en un turno posterior de un hilo, se usa el valor del turno anterior. Si un turno termina con una aprobación de llamada de pago (requireApproval), no incluye ninguna oferta de términos.
Campos de la respuesta
Estos campos se encuentran en el objetoexchange de GET /v2/agent/{id}:
skippedProviders(cualquier modo): una entrada por cada provider restringido que habría sido útil, conprovider,name,capability,adds(lo que habría aportado),reason: "terms_required",version(la versión de los términos) ytermsUrl(dónde aceptarlos en el Dashboard).requiresAction(soloask):type: "accept_terms", unapprovalIdy una listaproviders.approvalIdsiempre está presente. Es el id de la aprobación pendiente determsque respondes al continuar el hilo. Cada provider incluye las llamadas exactas deshow(terms/show) yaccept(terms/accept) que debes realizar. Eldigestde cada provider (yaccept.options.digest) siempre está presente y puede sernull, lo que indica que el catálogo no publicó ninguno. En ese caso, ejecuta primeroterms/showy envía el digest que devuelve.
Acepta y luego continúa
En el modoask:
- Muestra los términos a tu usuario. Ejecuta la llamada
showdel provider a través de/v2/scrapeconalexandria. - Solo si el usuario acepta explícitamente, ejecuta su llamada
acceptde la misma forma. Siaccept.options.digestesnull, usa el digest que devolvióterms/show:
- Continúa el mismo hilo con
exchange.approve. La oferta se acepta en su totalidad, por lo quecallIdsyalwaysse ignoran. El siguiente turno usa esos providers para cubrir la carencia que señaló la respuesta anterior, en lugar de volver a ejecutarlo todo.
exchange.decline: { "approvalId": "..." }. Esto rechaza la oferta completa, y sus providers no se vuelven a ofrecer durante el resto del hilo.
En el modo skip no hay ninguna aprobación pendiente que responder. Una vez aceptados los términos, inicia una nueva ejecución (o un nuevo turno del hilo) y el provider estará disponible.
Parámetros
Agent vs Extract: Qué ha mejorado
Ejemplos de casos de uso
- Investigación: “Encuentra las 5 principales startups de IA y sus montos de financiación”
- Análisis de la competencia: “Compara los planes de precios entre Slack y Microsoft Teams”
- Recopilación de datos: “Extrae información de contacto de sitios web de empresas”
- Resumen de contenido: “Resume las últimas entradas de blog sobre web scraping”
Carga de archivos CSV en Agent Playground
El Agent Playground admite la carga de archivos CSV para el procesamiento por lotes. Tu CSV puede contener una o más columnas de datos de entrada. Por ejemplo, una sola columna con nombres de empresas, o varias columnas como nombre de la empresa, producto y URL del sitio web. Cada fila representa un elemento que el agente debe procesar. Sube tu CSV y luego agrega columnas de salida con el botón ”+” en el encabezado de la cuadrícula. Cada columna tiene su propio prompt: haz clic en el encabezado de una columna para describir qué debe encontrar el agente para ese campo (p. ej., “Nombre del CEO o fundador”, “Financiación total obtenida”). Pulsa Run y el agente procesa cada fila en paralelo y completa los resultados.Solución de problemas con Ask
Si los trabajos de tu agente fallan o devuelven resultados inesperados, usa la API de Ask para depuración agentic. Describe el problema y obtén una respuesta verificada con parámetros de solución que puedes aplicar directamente:Referencia de la API
Consulta la Agent API Reference para más detalles. ¿Tienes comentarios o necesitas ayuda? Escríbenos a help@firecrawl.com.Precios
Firecrawl Agent usa facturación dinámica que se ajusta a la complejidad de tu solicitud de extracción de datos. Pagas según el trabajo real que realiza Agent, lo que garantiza un precio justo tanto si estás extrayendo datos simples como información estructurada compleja de múltiples fuentes.Cómo funcionan los precios de Agent
Los precios de Agent son dinámicos y basados en créditos durante la Research Preview:- Extracciones simples (como obtener información de contacto de una sola página) suelen usar menos créditos y cuestan menos
- Tareas de investigación complejas (como análisis de la competencia en múltiples dominios) usan más créditos, pero reflejan el esfuerzo total involucrado
- Uso transparente te muestra exactamente cuántos créditos consumió cada solicitud
- Conversión de créditos convierte automáticamente el uso de créditos del agente en créditos para una facturación sencilla
El uso de créditos varía según la complejidad de tu prompt, la cantidad de datos procesados y la estructura de la salida solicitada. Como guía aproximada, la mayoría de las ejecuciones de agentes consumen unos pocos cientos de créditos, aunque las tareas simples de una sola página pueden usar menos y las investigaciones complejas en múltiples dominios pueden usar más.
Precios de agentes en paralelo
Si estás ejecutando varios agentes en paralelo con Spark-1 Fast, el precio es mucho más predecible: 10 créditos por celda.Primeros pasos
Todos los usuarios reciben 5 ejecuciones gratuitas al día, que pueden utilizarse tanto desde el playground como desde la API, para explorar las capacidades de Agent sin costo. El uso adicional se cobra en función del consumo de créditos y se convierte en créditos.Gestión de costos
Agent puede resultar costoso, pero hay algunas formas de reducir el costo:- Empieza con ejecuciones gratuitas: Usa tus 5 solicitudes gratuitas diarias para entender los precios
- Configura el parámetro
maxCredits: Limita tu gasto estableciendo un número máximo de créditos que estás dispuesto a usar. El panel de control limita esto a 2,500 créditos; para establecer un límite más alto, usa el parámetromaxCreditsdirectamente a través de la API (nota: los valores por encima de 2,500 siempre se facturan como solicitudes pagadas) - Optimiza los prompts: Los prompts más específicos suelen consumir menos créditos
- Divide las tareas grandes en ejecuciones más pequeñas: Una sola ejecución de Agent devuelve aproximadamente 150-200 filas de datos estructurados. Para trabajos de extracción grandes, divide por categoría, región o lote de URL (3-5 URL por ejecución) y combina los resultados. Esto también mantiene cada ejecución muy por debajo del límite de
maxCredits. - Supervisa tu uso: Haz seguimiento de tu consumo desde el panel de control
- Define expectativas: Las investigaciones complejas en múltiples dominios consumirán más créditos que las extracciones simples de una sola página
Los precios están sujetos a cambios a medida que pasamos de la Research Preview a la disponibilidad general. Los usuarios actuales recibirán aviso previo de cualquier actualización de precios.
¿Eres un Agent de IA que necesita una API key de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para obtener instrucciones de incorporación automatizada.

