> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Crawl

> Nota: Una nueva [versión v2 de esta API](/es/api-reference/endpoint/crawl-post) ya está disponible con funciones y rendimiento mejorados.


## OpenAPI

````yaml es/api-reference/v1-openapi.json POST /crawl
openapi: 3.0.0
info:
  contact:
    email: support@firecrawl.dev
    name: Firecrawl Support
    url: https://firecrawl.dev/support
  description: >-
    API para interactuar con los servicios de Firecrawl y realizar tareas de
    scraping y rastreo web.
  title: Firecrawl API
  version: v1
servers:
  - url: https://api.firecrawl.dev/v1
security:
  - bearerAuth: []
paths:
  /crawl:
    post:
      tags:
        - Crawling
      summary: Rastrear varias URL en función de opciones
      operationId: crawlUrls
      requestBody:
        content:
          application/json:
            schema:
              properties:
                allowBackwardLinks:
                  default: false
                  deprecated: true
                  description: >-
                    ⚠️ EN DESUSO: Usa 'crawlEntireDomain' en su lugar. Permite
                    que el rastreador siga enlaces internos a URL hermanas o
                    superiores, no solo a rutas hijas.
                  type: boolean
                allowExternalLinks:
                  default: false
                  description: >-
                    Permite que el rastreador siga enlaces a sitios web
                    externos.
                  type: boolean
                allowSubdomains:
                  default: false
                  description: >-
                    Permite que el rastreador siga enlaces a subdominios del
                    dominio principal.
                  type: boolean
                crawlEntireDomain:
                  default: false
                  description: >-
                    Permite que el rastreador siga enlaces internos a URLs del
                    mismo nivel o superiores, no solo rutas hijas.


                    false: Solo rastrea URLs más profundas (hijas).

                    → p. ej. /features/feature-1 → /features/feature-1/tips ✅

                    → No seguirá /pricing ni / ❌


                    true: Rastrea cualquier enlace interno, incluyendo del mismo
                    nivel y superiores.

                    → p. ej. /features/feature-1 → /pricing, /, etc. ✅


                    Usa true para lograr una cobertura interna más amplia, más
                    allá de rutas anidadas.
                  type: boolean
                delay:
                  description: >-
                    Pausa en segundos entre scrapes. Esto ayuda a respetar los
                    límites de tasa del sitio web.
                  type: number
                excludePaths:
                  description: >-
                    Patrones de expresiones regulares para el pathname de la URL
                    que excluyen del rastreo las URL que coincidan. Por ejemplo,
                    si configuras `"excludePaths": ["blog/.*"]` para la URL base
                    firecrawl.dev, se excluirán todos los resultados que
                    coincidan con ese patrón, como
                    https://www.firecrawl.dev/blog/firecrawl-launch-week-1-recap.
                  items:
                    type: string
                  type: array
                ignoreQueryParameters:
                  default: false
                  description: >-
                    No vuelvas a hacer scraping de la misma ruta con distintos
                    parámetros de consulta (o sin parámetros)
                  type: boolean
                ignoreSitemap:
                  default: false
                  description: Ignorar el sitemap del sitio web durante el rastreo
                  type: boolean
                includePaths:
                  description: >-
                    Patrones regex de rutas de URL que determinan qué URLs se
                    incluyen en el rastreo. Solo las rutas que coincidan con los
                    patrones especificados se incluirán en la respuesta. Por
                    ejemplo, si configuras `"includePaths": ["blog/.*"]` para la
                    URL base firecrawl.dev, solo se incluirán los resultados que
                    coincidan con ese patrón, como
                    https://www.firecrawl.dev/blog/firecrawl-launch-week-1-recap.
                  items:
                    type: string
                  type: array
                limit:
                  default: 10000
                  description: >-
                    Número máximo de páginas a rastrear. El límite por defecto
                    es 10.000.
                  type: integer
                maxConcurrency:
                  description: >-
                    Número máximo de scrapes concurrentes. Este parámetro te
                    permite establecer un límite de concurrencia para este
                    rastreo. Si no se especifica, el rastreo se ajusta al límite
                    de concurrencia de tu equipo.
                  type: integer
                maxDepth:
                  default: 10
                  description: >-
                    Profundidad absoluta máxima de rastreo desde la base de la
                    URL introducida. Básicamente, es el número máximo de barras
                    diagonales (/) que puede contener el pathname de una URL
                    rastreada.
                  type: integer
                maxDiscoveryDepth:
                  description: >-
                    Profundidad máxima de rastreo basada en el orden de
                    descubrimiento. El sitio raíz y las páginas del mapa del
                    sitio tienen una profundidad de descubrimiento de 0. Por
                    ejemplo, si la configuras en 1 y habilitas ignoreSitemap,
                    solo se rastreará la URL ingresada y todas las URL que estén
                    enlazadas en esa página.
                  type: integer
                regexOnFullURL:
                  default: false
                  description: >-
                    Cuando es true, los patrones regex de includePaths y
                    excludePaths se comparan con la URL completa (incluidos los
                    parámetros de consulta), en lugar de solo con la ruta
                    (pathname) de la URL. Es útil cuando necesitas filtrar URLs
                    en función de las cadenas de consulta (query strings).
                  type: boolean
                scrapeOptions:
                  $ref: '#/components/schemas/ScrapeOptions'
                url:
                  description: La URL base desde la que se iniciará el rastreo
                  format: uri
                  type: string
                webhook:
                  description: Un objeto de especificación de un webhook.
                  properties:
                    events:
                      description: >-
                        Tipo de eventos que se enviarán a la URL del webhook
                        (valor predeterminado: todos).
                      items:
                        enum:
                          - completed
                          - page
                          - failed
                          - started
                        type: string
                      type: array
                    headers:
                      additionalProperties:
                        type: string
                      description: Cabeceras HTTP que se enviarán a la URL del webhook.
                      type: object
                    metadata:
                      additionalProperties: true
                      description: >-
                        Metadatos personalizados que se incluirán en todos los
                        payloads de webhook de este rastreo
                      type: object
                    url:
                      description: >-
                        La URL a la que se enviará el webhook. Este se activará
                        cuando se inicie el rastreo (crawl.started), en cada
                        página rastreada (crawl.page) y cuando el rastreo se
                        complete (crawl.completed o crawl.failed). La respuesta
                        será la misma que la del endpoint `/scrape`.
                      type: string
                  required:
                    - url
                  type: object
                zeroDataRetention:
                  default: false
                  description: >-
                    Si se establece en true, no se conservarán datos de este
                    rastreo. Para activar esta función, ponte en contacto con
                    help@firecrawl.dev.
                  type: boolean
              required:
                - url
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrawlResponse'
          description: Respuesta exitosa
        '402':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Payment required to access this resource.
                    type: string
                type: object
          description: Pago requerido
        '429':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: >-
                      Request rate limit exceeded. Please wait and try again
                      later.
                    type: string
                type: object
          description: Demasiadas solicitudes
        '500':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: An unexpected error occurred on the server.
                    type: string
                type: object
          description: Error del servidor
      security:
        - bearerAuth: []
components:
  schemas:
    ScrapeOptions:
      allOf:
        - $ref: '#/components/schemas/BaseScrapeOptions'
        - properties:
            changeTrackingOptions:
              description: >-
                Opciones de seguimiento de cambios (Beta). Solo aplicable cuando
                'changeTracking' está incluido en los formatos. El formato
                'markdown' también debe especificarse al usar el seguimiento de
                cambios.
              properties:
                modes:
                  description: >-
                    El modo que se utilizará para el seguimiento de cambios.
                    'git-diff' proporciona un diff detallado y 'json' compara
                    los datos JSON extraídos.
                  items:
                    enum:
                      - git-diff
                      - json
                    type: string
                  type: array
                prompt:
                  description: >-
                    Prompt que se usará para el seguimiento de cambios cuando se
                    utilice el modo «json». Si no se especifica, se utilizará el
                    prompt predeterminado.
                  type: string
                schema:
                  description: >-
                    Esquema para la extracción en modo `json`. Define la
                    estructura de los datos que se van a extraer y comparar.
                    Debe ajustarse a [JSON Schema](https://json-schema.org/).
                  type: object
                tag:
                  default: null
                  description: >-
                    Etiqueta que se usará para el seguimiento de cambios. Las
                    etiquetas pueden separar el historial de seguimiento de
                    cambios en «ramas» independientes, donde el seguimiento de
                    cambios con una etiqueta específica solo se comparará con
                    extracciones (scrapes) realizadas con la misma etiqueta. Si
                    no se proporciona, se usará la etiqueta predeterminada
                    (null).
                  nullable: true
                  type: string
              type: object
            formats:
              default:
                - markdown
              description: Formatos que se incluirán en el resultado.
              items:
                enum:
                  - markdown
                  - html
                  - rawHtml
                  - links
                  - screenshot
                  - screenshot@fullPage
                  - json
                  - changeTracking
                type: string
              type: array
          type: object
    CrawlResponse:
      properties:
        id:
          type: string
        success:
          type: boolean
        url:
          format: uri
          type: string
      type: object
    BaseScrapeOptions:
      properties:
        actions:
          description: >-
            Acciones que se ejecutarán en la página antes de extraer el
            contenido
          items:
            oneOf:
              - properties:
                  milliseconds:
                    description: Número de milisegundos que se debe esperar
                    minimum: 1
                    type: integer
                  selector:
                    description: Selector de búsqueda para encontrar el elemento por
                    example: '#my-element'
                    type: string
                  type:
                    description: Espera una cantidad de milisegundos especificada
                    enum:
                      - wait
                    type: string
                required:
                  - type
                title: Wait
                type: object
              - properties:
                  fullPage:
                    default: false
                    description: >-
                      Indica si se debe capturar una captura de pantalla de toda
                      la página o solo del viewport actual.
                    type: boolean
                  quality:
                    description: >-
                      La calidad de la captura de pantalla, de 1 a 100; 100 es
                      la máxima calidad.
                    type: integer
                  type:
                    description: >-
                      Haz una captura de pantalla. Los enlaces estarán en el
                      array `actions.screenshots` de la respuesta.
                    enum:
                      - screenshot
                    type: string
                required:
                  - type
                title: Screenshot
                type: object
              - properties:
                  all:
                    default: false
                    description: >-
                      Hace clic en todos los elementos que coinciden con el
                      selector, no solo en el primero. No genera un error si
                      ningún elemento coincide con el selector.
                    type: boolean
                  selector:
                    description: Selector de consulta para buscar el elemento por
                    example: '#load-more-button'
                    type: string
                  type:
                    description: Haz clic en un elemento
                    enum:
                      - click
                    type: string
                required:
                  - type
                  - selector
                title: Click
                type: object
              - properties:
                  text:
                    description: Texto a escribir
                    example: Hello, world!
                    type: string
                  type:
                    description: >-
                      Escribe texto en un campo de entrada, área de texto o
                      elemento contenteditable. Nota: primero debes poner el
                      foco en el elemento usando una acción de «clic» antes de
                      escribir. El texto se tecleará carácter por carácter para
                      simular la entrada por teclado.
                    enum:
                      - write
                    type: string
                required:
                  - type
                  - text
                title: Write text
                type: object
              - description: >-
                  Pulsa una tecla en esta página. Consulta
                  https://asawicki.info/nosense/doc/devices/keyboard/key_codes.html
                  para ver los códigos de teclado.
                properties:
                  key:
                    description: Tecla a pulsar
                    example: Enter
                    type: string
                  type:
                    description: Pulsa una tecla en la página
                    enum:
                      - press
                    type: string
                required:
                  - type
                  - key
                title: Press a key
                type: object
              - properties:
                  direction:
                    default: down
                    description: Dirección de desplazamiento
                    enum:
                      - up
                      - down
                    type: string
                  selector:
                    description: Selector (query selector) del elemento que se desplazará
                    example: '#my-element'
                    type: string
                  type:
                    description: Desplazar la página o un elemento específico
                    enum:
                      - scroll
                    type: string
                required:
                  - type
                title: Scroll
                type: object
              - properties:
                  type:
                    description: >-
                      Extrae el contenido de la página actual y devuelve la URL
                      y el HTML.
                    enum:
                      - scrape
                    type: string
                required:
                  - type
                title: Scrape
                type: object
              - properties:
                  script:
                    description: Código JavaScript a ejecutar
                    example: document.querySelector('.button').click();
                    type: string
                  type:
                    description: Ejecutar código JavaScript en la página
                    enum:
                      - executeJavascript
                    type: string
                required:
                  - type
                  - script
                title: Execute JavaScript
                type: object
              - properties:
                  format:
                    default: Letter
                    description: El tamaño de la página del PDF resultante
                    enum:
                      - A0
                      - A1
                      - A2
                      - A3
                      - A4
                      - A5
                      - A6
                      - Letter
                      - Legal
                      - Tabloid
                      - Ledger
                    type: string
                  landscape:
                    default: false
                    description: Indica si se debe generar el PDF en orientación horizontal
                    type: boolean
                  scale:
                    default: 1
                    description: El factor de escala del PDF resultante
                    type: number
                  type:
                    description: >-
                      Genera un PDF de la página actual. El PDF se devolverá en
                      el array `actions.pdfs` de la respuesta.
                    enum:
                      - pdf
                    type: string
                required:
                  - type
                title: Generate PDF
                type: object
          type: array
        blockAds:
          default: true
          description: Habilita el bloqueo de anuncios y ventanas emergentes de cookies.
          type: boolean
        excludeTags:
          description: Etiquetas que se excluirán de la salida.
          items:
            type: string
          type: array
        headers:
          description: >-
            Cabeceras que se enviarán con la solicitud. Pueden usarse para
            enviar cookies, user-agent, etc.
          type: object
        includeTags:
          description: Etiquetas que se deben incluir en la salida.
          items:
            type: string
          type: array
        jsonOptions:
          description: Objeto de opciones JSON
          properties:
            prompt:
              description: >-
                El prompt que se utilizará para la extracción sin esquema
                (opcional)
              type: string
            schema:
              description: >-
                El esquema que se utilizará para la extracción (opcional). Debe
                ajustarse a [JSON Schema](https://json-schema.org/).
              type: object
            systemPrompt:
              description: El prompt del sistema que se usará para la extracción (opcional)
              type: string
          type: object
        location:
          description: >-
            Configuración de ubicación de la solicitud. Cuando se especifique,
            usará un proxy adecuado si está disponible y emulará la
            configuración de idioma y zona horaria correspondientes. Si no se
            especifica, el valor predeterminado es 'US'.
          properties:
            country:
              default: US
              description: >-
                Código de país ISO 3166-1 alfa-2 (por ejemplo, «US», «AU», «DE»,
                «JP»)
              pattern: ^[A-Z]{2}$
              type: string
            languages:
              description: >-
                Idiomas y configuraciones regionales preferidos para la
                solicitud, en orden de prioridad. De forma predeterminada, se
                usa el idioma de la ubicación especificada. Más información en
                https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language
              items:
                example: en-US
                type: string
              type: array
          type: object
        maxAge:
          default: 0
          description: >-
            Devuelve una versión en caché de la página si su antigüedad es menor
            que este valor, en milisegundos. Si la versión en caché de la página
            es más antigua que este valor, la página se volverá a scrapear. Si
            no necesitas datos extremadamente recientes, activar esta opción
            puede acelerar tus procesos de scraping hasta un 500 %. El valor
            predeterminado es 0, lo que desactiva la caché.
          type: integer
        mobile:
          default: false
          description: >-
            Configúralo en `true` si quieres emular el scraping desde un
            dispositivo móvil. Es útil para probar páginas responsive y tomar
            capturas de pantalla en dispositivos móviles.
          type: boolean
        onlyMainContent:
          default: true
          description: >-
            Devuelve únicamente el contenido principal de la página, excluyendo
            encabezados, elementos de navegación, pies de página, etc.
          type: boolean
        parsePDF:
          default: true
          description: >-
            Controla cómo se procesan los archivos PDF durante el scraping.
            Cuando es true, el contenido del PDF se extrae y se convierte al
            formato Markdown, y la facturación se basa en el número de páginas
            (1 crédito por página). Cuando es false, el archivo PDF se devuelve
            codificado en base64 con una tarifa plana total de 1 crédito.
          type: boolean
        proxy:
          description: >-
            Especifica el tipo de proxy que se va a utilizar.


            - **basic**: Proxies para hacer scraping de sitios con sistemas
            anti‑bots nulos o básicos. Es rápido y suele funcionar.

            - **enhanced**: Proxies mejorados para hacer scraping de sitios con
            sistemas anti‑bots avanzados. Es más lento, pero más fiable en
            ciertos sitios. Cuesta hasta 5 créditos por solicitud.

            - **auto**: Firecrawl reintentará automáticamente el scraping con
            proxies mejorados si el proxy básico falla. Si el reintento con
            enhanced tiene éxito, se cobrarán 5 créditos por la extracción. Si
            el primer intento con basic tiene éxito, solo se cobrará el coste
            estándar.


            Si no especificas un proxy, Firecrawl usará basic por defecto.
          enum:
            - basic
            - enhanced
            - auto
          type: string
        removeBase64Images:
          default: true
          description: >-
            Elimina todas las imágenes en formato base64 de la salida, que
            pueden hacerla excesivamente larga. El texto alternativo de la
            imagen se conserva en la salida, pero la URL se reemplaza por un
            marcador de posición.
          type: boolean
        skipTlsVerification:
          default: false
          description: Omitir la verificación del certificado TLS al realizar solicitudes
          type: boolean
        storeInCache:
          default: true
          description: >-
            Si es true, la página se almacenará en el índice y la caché de
            Firecrawl. Establecerlo en false es útil si tu actividad de scraping
            puede implicar problemas de protección de datos. El uso de algunos
            parámetros asociados con scraping sensible (acciones, headers) hará
            que este parámetro tenga que ser false.
          type: boolean
        threatProtection:
          $ref: '#/components/schemas/ThreatProtectionOverride'
        timeout:
          default: 30000
          description: Tiempo de espera de la solicitud en milisegundos
          type: integer
        waitFor:
          default: 0
          description: >-
            Especifica un retraso, en milisegundos, antes de obtener el
            contenido, permitiendo que la página tenga tiempo suficiente para
            cargarse.
          type: integer
      type: object
    ThreatProtectionOverride:
      description: >-
        Anulación por solicitud de [Protección contra
        amenazas](https://docs.firecrawl.dev/features/threat-protection). Los
        campos que proporciones reemplazan los campos correspondientes de la
        política de tu organización solo para esta solicitud; los campos
        omitidos conservan sus valores a nivel de organización. Requiere que
        Protección contra amenazas esté habilitada para tu equipo (función
        Enterprise); de lo contrario, la solicitud se rechaza con un 403. Si tu
        organización ha deshabilitado las anulaciones por solicitud, cualquier
        solicitud que incluya este objeto se rechaza con un 403. Si Protección
        contra amenazas se aplica de forma obligatoria para tu equipo, `mode` no
        puede establecerse en `off`.
      properties:
        blacklist:
          description: >-
            Dominios que siempre se bloquearán, como dominios simples
            (`example.com`) o patrones comodín (`*.example.com`). Sin protocolo,
            ruta ni puerto.
          items:
            type: string
          maxItems: 1000
          type: array
        blockedTlds:
          description: >-
            Dominios de nivel superior que se bloquean directamente, en
            minúsculas y sin el punto inicial (p. ej., `zip`).
          items:
            type: string
          maxItems: 1000
          type: array
        failurePolicy:
          description: >-
            Qué hacer cuando no se puede contactar con el clasificador: `closed`
            bloquea la solicitud, `open` la permite.
          enum:
            - open
            - closed
          type: string
        mode:
          description: >-
            Modo de análisis de URL para esta solicitud. `normal` comprueba las
            URL con Google Web Risk (+2 créditos por cada URL analizada).
          enum:
            - 'off'
            - normal
          type: string
        riskScoreThreshold:
          description: >-
            Puntuación de riesgo normalizada (0–100) a partir de la cual un
            veredicto del clasificador bloquea la URL. Cuanto más bajo sea el
            valor, más estricto será.
          example: 75
          maximum: 100
          minimum: 0
          type: integer
        whitelist:
          description: >-
            Dominios que siempre se permitirán, como dominios simples o patrones
            comodín. Tiene prioridad sobre cualquier otra regla.
          items:
            type: string
          maxItems: 1000
          type: array
      title: Threat Protection Override
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````