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

# Límites de tasa

> Límites de tasa para distintos planes y solicitudes de API

Los límites de tasa establecen cuántas solicitudes puede hacer tu equipo por minuto, mientras que los límites de concurrencia establecen cuántos trabajos pueden ejecutarse en paralelo. Ambos los determina tu plan; superar cualquiera de ellos devuelve una respuesta `429`. Consulta [Errores](/es/api-reference/errors) para ver el catálogo completo de errores y un fragmento de código para reintentar con backoff.

<div id="billing-model">
  ## Modelo de facturación
</div>

Firecrawl utiliza planes mensuales basados en suscripción. No existe un modelo estrictamente de pago por uso, pero la **funcionalidad de recarga automática** permite un escalado flexible. Una vez que te suscribes a un plan, puedes comprar automáticamente créditos adicionales cuando bajes de cierto umbral. Los paquetes de recarga automática más grandes ofrecen mejores precios. Para hacer pruebas antes de comprometerte con un plan más grande, empieza con el plan Free o Hobby.

Los cambios a un plan inferior entran en vigor en la siguiente renovación. No se emiten créditos por el tiempo no utilizado.

<div id="concurrent-browser-limits">
  ## Límites de navegadores concurrentes
</div>

Los navegadores concurrentes controlan cuántas páginas puede procesar Firecrawl para ti en paralelo. Tu plan establece el límite; cualquier trabajo que lo supere esperará en una cola hasta que se libere un navegador.

El tiempo que se pasa en la cola se contabiliza en el parámetro [`timeout`](/es/advanced-scraping-guide#timing-and-cache) de la solicitud, por lo que puedes configurar un timeout más bajo para fallar rápido en lugar de esperar. Para consultar la disponibilidad actual antes de enviar trabajo, llama al endpoint [Queue Status](/es/api-reference/endpoint/queue-status). Los trabajos que estén esperando en tu cola de concurrencia agotarán el tiempo de espera tras un máximo de 48 horas.

<div id="current-plans">
  ### Planes actuales
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Plan</th>
        <th style={{ padding: '8px 12px' }}>Navegadores concurrentes</th>
        <th style={{ padding: '8px 12px' }}>Máximo de trabajos en cola</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>2</td>
        <td style={{ padding: '8px 12px' }}>50,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Hobby</td>
        <td style={{ padding: '8px 12px' }}>5</td>
        <td style={{ padding: '8px 12px' }}>50,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>estándar</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>100,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>crecimiento</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>200,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>escala / Enterprise</td>
        <td style={{ padding: '8px 12px' }}>150+</td>
        <td style={{ padding: '8px 12px' }}>300,000+</td>
      </tr>
    </tbody>
  </table>
</div>

Cada equipo tiene un número máximo de trabajos que pueden estar esperando en la cola de concurrencia. Si superas este límite, los nuevos trabajos se rechazarán con un código de estado `429` hasta que finalicen los trabajos existentes. En los planes más grandes con límites de concurrencia personalizados, el máximo de trabajos en cola es 2,000 veces tu límite de concurrencia, con un tope de 2,000,000.

Si necesitas límites de concurrencia más altos, [contáctanos sobre los planes Enterprise](https://firecrawl.dev/enterprise).

<div id="extract-plans-legacy">
  ### Planes de Extract (legacy)
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Plan</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Concurrent Browsers</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Max Queued Jobs</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>2</td>
        <td style={{ padding: '8px 12px' }}>50,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Starter</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>100,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Explorer</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>200,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Pro</td>
        <td style={{ padding: '8px 12px' }}>200</td>
        <td style={{ padding: '8px 12px' }}>400,000</td>
      </tr>
    </tbody>
  </table>
</div>

<div id="api-rate-limits">
  ## Límites de tasa de la API
</div>

Los límites de tasa se miden en solicitudes por minuto y existen principalmente para evitar abusos. Cuando todo está correctamente configurado, tu verdadero cuello de botella serán los navegadores concurrentes. Los límites de tasa se aplican por equipo, por lo que todas las claves de API del mismo equipo comparten los mismos contadores de límite de tasa.

<div id="keyless-no-api-key">
  ### Sin clave (sin API key)
</div>

Scrape, search, interact y parse se pueden usar **sin una API key** cuando la solicitud proviene de un cliente oficial de Firecrawl: el [MCP Server](/es/mcp-server), la [CLI](/es/sdks/cli) o un SDK. Los endpoints de research también se pueden usar sin una API key en Firecrawl Cloud, donde el research index está habilitado. Ningún otro endpoint (crawl, extract, map, batch scrape, etc.) está disponible sin una clave.

El uso sin clave es gratuito y está limitado por dirección IP al día mediante **dos límites**; si superas cualquiera de ellos, recibirás un `429`:

* Un número máximo de **solicitudes** por día.
* Un número máximo de **créditos** por día. Las operaciones cuestan distintas cantidades de créditos (por ejemplo, interact y JSON extraction cuestan más que un scrape básico), por lo que un uso más intensivo alcanza el límite de créditos antes.

[Regístrate para obtener una API key gratuita](https://firecrawl.dev) y consigue 1.000 créditos y límites de tasa más altos sin costo; los clientes oficiales usan automáticamente tu clave una vez configurada.

<div id="current-plans">
  ### Planes actuales
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Plan</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/scrape</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/map</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/crawl</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/search</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/agent</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/crawl/status</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/agent/status</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Gratis</td>
        <td style={{ padding: '8px 12px' }}>10</td>
        <td style={{ padding: '8px 12px' }}>10</td>
        <td style={{ padding: '8px 12px' }}>1</td>
        <td style={{ padding: '8px 12px' }}>5</td>
        <td style={{ padding: '8px 12px' }}>10</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>500</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Hobby</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>15</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Estándar</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>50</td>
        <td style={{ padding: '8px 12px' }}>250</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Crecimiento</td>
        <td style={{ padding: '8px 12px' }}>5000</td>
        <td style={{ padding: '8px 12px' }}>5000</td>
        <td style={{ padding: '8px 12px' }}>250</td>
        <td style={{ padding: '8px 12px' }}>2500</td>
        <td style={{ padding: '8px 12px' }}>1000</td>
        <td style={{ padding: '8px 12px' }}>1500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Escala</td>
        <td style={{ padding: '8px 12px' }}>7500</td>
        <td style={{ padding: '8px 12px' }}>7500</td>
        <td style={{ padding: '8px 12px' }}>750</td>
        <td style={{ padding: '8px 12px' }}>7500</td>
        <td style={{ padding: '8px 12px' }}>1000</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>
    </tbody>
  </table>
</div>

Estos límites de uso se aplican para garantizar un uso justo y la disponibilidad de la API para todos los usuarios. Si necesitas límites más altos, contáctanos en [help@firecrawl.com](mailto:help@firecrawl.com) para analizar planes personalizados.

<div id="extract-endpoints">
  ### Endpoints de extracción
</div>

Los endpoints de extracción comparten los mismos límites de uso que los correspondientes a `/agent`.

<div id="batch-scrape-endpoints">
  ### Endpoints de Batch Scrape
</div>

Los endpoints de Batch Scrape comparten los mismos límites de frecuencia que los endpoints correspondientes de `/crawl`.

<div id="browser-sandbox">
  ### Sandbox del navegador
</div>

Los endpoints del sandbox del navegador tienen límites de tasa por plan que varían según tu suscripción:

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Plan</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/interact</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/interact/\{id}/execute</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Free</td>
        <td style={{ padding: '8px 12px' }}>2</td>
        <td style={{ padding: '8px 12px' }}>10</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Hobby</td>
        <td style={{ padding: '8px 12px' }}>20</td>
        <td style={{ padding: '8px 12px' }}>100</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>estándar</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>500</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>crecimiento</td>
        <td style={{ padding: '8px 12px' }}>1,000</td>
        <td style={{ padding: '8px 12px' }}>5,000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>escala</td>
        <td style={{ padding: '8px 12px' }}>1,500</td>
        <td style={{ padding: '8px 12px' }}>7,500</td>
      </tr>
    </tbody>
  </table>
</div>

Además, el plan de cada equipo determina cuántas sesiones del navegador pueden estar activas al mismo tiempo (consulta Límites de navegadores concurrentes más arriba). Si superas este límite, las nuevas solicitudes de sesión devolverán un código de estado `429` hasta que se finalicen las sesiones existentes.

<div id="fire-1-agent">
  ### Agente FIRE-1
</div>

Las solicitudes que usan el agente FIRE-1 tienen límites de uso independientes, que se contabilizan por separado para cada endpoint:

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Endpoint</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Límite de uso (solicitudes/min)</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>/scrape</td>
        <td style={{ padding: '8px 12px' }}>10</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>/extract</td>
        <td style={{ padding: '8px 12px' }}>10</td>
      </tr>
    </tbody>
  </table>
</div>

<div id="extract-plans-legacy">
  ### Planes de Extract (legacy)
</div>

<div style={{ overflowX: 'auto', maxWidth: '100%' }}>
  <table style={{ width: '100%', borderCollapse: 'collapse' }}>
    <thead>
      <tr>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>Plan</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/extract (solicitudes/min)</th>
        <th style={{ padding: '8px 12px', textAlign: 'left' }}>/extract/status (solicitudes/min)</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td style={{ padding: '8px 12px' }}>Starter</td>
        <td style={{ padding: '8px 12px' }}>100</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Explorer</td>
        <td style={{ padding: '8px 12px' }}>500</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>

      <tr>
        <td style={{ padding: '8px 12px' }}>Pro</td>
        <td style={{ padding: '8px 12px' }}>1000</td>
        <td style={{ padding: '8px 12px' }}>25000</td>
      </tr>
    </tbody>
  </table>
</div>
