> ## 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.

# Scraping por lotes

> Nota: Ya está disponible una nueva [versión v2 de esta API](/es/api-reference/endpoint/batch-scrape) con mayor rendimiento y fiabilidad en el procesamiento por lotes.


## OpenAPI

````yaml es/api-reference/v1-openapi.json POST /batch/scrape
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:
  /batch/scrape:
    post:
      tags:
        - Scraping
      summary: >-
        Realiza scraping de varias URL y, opcionalmente, extrae información con
        un LLM
      operationId: scrapeAndExtractFromUrls
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - properties:
                    ignoreInvalidURLs:
                      default: false
                      description: >-
                        Si se especifican URL no válidas en el array urls, se
                        ignorarán. En lugar de que falle toda la solicitud, se
                        creará un scraping por lotes con las URL válidas
                        restantes y las URL no válidas se devolverán en el campo
                        invalidURLs de la respuesta.
                      type: boolean
                    maxConcurrency:
                      description: >-
                        Número máximo de scrapes simultáneos. Este parámetro te
                        permite establecer un límite de concurrencia para este
                        scrape por lotes. Si no se especifica, el scrape por
                        lotes se ajustará al límite de concurrencia de tu
                        equipo.
                      type: integer
                    urls:
                      items:
                        description: La URL que se va a rastrear
                        format: uri
                        type: string
                      type: array
                    webhook:
                      description: Objeto de especificación de webhook.
                      properties:
                        events:
                          description: >-
                            Tipo de eventos que se enviarán a la URL del webhook
                            (por defecto: todos).
                          items:
                            enum:
                              - completed
                              - page
                              - failed
                              - started
                            type: string
                          type: array
                        headers:
                          additionalProperties:
                            type: string
                          description: Encabezados que se envían 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. Se activará
                            cuando se inicie un scraping por lotes
                            (batch_scrape.started), para cada página extraída
                            (batch_scrape.page) y cuando el scraping por lotes
                            haya finalizado (batch_scrape.completed o
                            batch_scrape.failed). La respuesta será la misma que
                            la del endpoint `/scrape`.
                          type: string
                      required:
                        - url
                      type: object
                  required:
                    - urls
                  type: object
                - $ref: '#/components/schemas/ScrapeOptions'
                - properties:
                    zeroDataRetention:
                      default: false
                      description: >-
                        Si es true, no se conservarán datos de esta extracción
                        por lotes. Para habilitar esta función, ponte en
                        contacto con help@firecrawl.dev
                      type: boolean
                  type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchScrapeResponseObj'
          description: Respuesta satisfactoria
        '402':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Payment required to access this resource.
                    type: string
                type: object
          description: Se requiere pago
        '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
    BatchScrapeResponseObj:
      properties:
        id:
          type: string
        invalidURLs:
          description: >-
            Si ignoreInvalidURLs es true, este será un array que contendrá las
            URLs no válidas que se especificaron en la solicitud. Si no hubo
            URLs no válidas, será un array vacío. Si ignoreInvalidURLs es false,
            este campo será undefined.
          items:
            type: string
          nullable: true
          type: array
        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

````