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

# Crear Crawl

> Inicia un nuevo crawl. Recibes un `id` para seguir el progreso. La operación puede tardar entre 1-10 minutos dependiendo del sitio y de los parámetros de profundidad y páginas.

<Tip>
  **Recibe notificaciones al completar:** Pasa el parámetro `webhook` con la URL de tu endpoint para recibir un HTTP POST cuando el crawl se complete. Consulta [Webhooks](/api-reference/common/webhooks) para más detalles.
</Tip>


## OpenAPI

````yaml es/openapi/crawls.json POST /v1/crawls
openapi: 3.0.3
info:
  title: API de Rastreo
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/crawls:
    post:
      summary: Iniciar un nuevo rastreo
      description: Inicia un nuevo proceso de rastreo con los parámetros especificados.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                start_url:
                  type: string
                  description: El punto de inicio del rastreo.
                include_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    Patrones de ruta URL para incluir en el rastreo usando la
                    sintaxis glob.  Por defecto es `/**` que incluye todas las
                    URLs. Usa patrones como `/blog/**` para rastrear secciones
                    específicas (por ejemplo, solo páginas de blog),
                    `/products/*.html` para páginas de productos, o múltiples
                    patrones para diferentes secciones. Soporta características
                    estándar de glob como * (cualquier carácter) y **
                    (coincidencia recursiva).
                exclude_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nombres de ruta URL en patrón glob para excluir. Por
                    ejemplo: `/careers/**`. Las URLs excluidas tendrán prioridad
                    sobre las incluidas.
                max_pages:
                  type: number
                  description: >-
                    Número máximo de páginas a rastrear. Recomendado para la
                    mayoría de los casos de uso como rastrear un sitio web
                    completo.
                max_depth:
                  type: number
                  description: >-
                    Profundidad máxima del rastreo. Útil para extraer solo hasta
                    n-grado de enlaces.
                include_external:
                  type: boolean
                  description: Rastrear enlaces externos de primer grado.
                include_subdomain:
                  type: boolean
                  description: Incluir subdominios del sitio web. `false` por defecto.
                search_query:
                  type: string
                  description: >-
                    Una consulta de búsqueda opcional para encontrar enlaces
                    específicos y también ordenar los resultados por relevancia.
                top_n:
                  type: number
                  description: >-
                    Un número opcional para rastrear solo los N enlaces más
                    relevantes en cada página según la consulta de búsqueda.
                webhook:
                  type: string
                  format: uri
                  description: >-
                    URL HTTPS para recibir una solicitud POST cuando el rastreo
                    se complete. Debe ser una URL públicamente accesible usando
                    el protocolo `http://` o `https://`. No puede apuntar a
                    localhost o direcciones IP privadas. Consulta
                    [Webhooks](/api-reference/common/webhooks) para el formato
                    de carga útil y el comportamiento de reintento.
                timeout:
                  type: number
                  description: >-
                    Terminar el rastreo después de n segundos con las páginas
                    completadas hasta entonces. Puede tomar ~10s extra del
                    tiempo de espera proporcionado.
                follow_robots_txt:
                  type: boolean
                  description: >-
                    Si se deben respetar las reglas de robots.txt. Si se
                    establece en `false`, el rastreador raspará el sitio web
                    independientemente de las directivas de desautorización de
                    robots.txt. `true` por defecto.
                  default: true
                scrape_options:
                  type: object
                  description: >-
                    Controla lo que cada solicitud de raspado de página
                    individual pide al API de Olostep. Todos los campos son
                    opcionales.
                  properties:
                    formats:
                      type: array
                      items:
                        type: string
                        enum:
                          - html
                          - markdown
                          - text
                          - json
                          - screenshot
                      description: >-
                        Formatos de salida a solicitar para cada página raspada.
                        Por defecto es `["html", "markdown"]` cuando se omite.
                        `html` siempre se incluye automáticamente. `json` se
                        agrega automáticamente cuando se proporciona un
                        `parser`. Nota: `raw_pdf` no es compatible — los PDFs no
                        pueden ser rastreados.
                      example:
                        - markdown
                        - screenshot
                    parser:
                      type: string
                      description: >-
                        Nombre del parser para ejecutar en cada página y
                        producir salida `json` estructurada (por ejemplo,
                        `"@olostep/extract-emails"`). Agrega automáticamente
                        `json` a `formats` cuando se establece.
                      example: '@olostep/extract-emails'
              required:
                - start_url
                - max_pages
      responses:
        '200':
          description: Rastreo iniciado con éxito.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID del Rastreo
                  object:
                    type: string
                    description: El tipo de objeto. "crawl" para este endpoint.
                  status:
                    type: string
                    description: '`in_progress` o `completed`'
                  created:
                    type: number
                    description: Tiempo de creación en epoch
                  start_date:
                    type: string
                    description: Tiempo de creación en fecha
                  start_url:
                    type: string
                  max_pages:
                    type: number
                  max_depth:
                    type: number
                  exclude_urls:
                    type: array
                    items:
                      type: string
                  include_urls:
                    type: array
                    items:
                      type: string
                  include_external:
                    type: boolean
                  search_query:
                    type: string
                  top_n:
                    type: number
                  current_depth:
                    type: number
                    description: La profundidad actual del proceso de rastreo.
                  pages_count:
                    type: number
                    description: Conteo de páginas rastreadas
                  webhook:
                    type: string
                  follow_robots_txt:
                    type: boolean
                  credits_consumed:
                    type: integer
                    nullable: true
                    description: >-
                      Número de créditos consumidos por esta solicitud. Se
                      completa después de que la ejecución finaliza. Los
                      créditos son la fuente de verdad para la facturación.
                  cost_usd:
                    type: number
                    nullable: true
                    description: >-
                      Costo estimado en USD para esta solicitud. Se completa
                      después de que la ejecución finaliza. Calculado a partir
                      de los créditos consumidos y tu tarifa de plan — 99%
                      preciso, pero credits_consumed es el valor autoritativo.
        '400':
          description: Solicitud incorrecta debido a parámetros incorrectos o faltantes.
        '500':
          description: Error interno del servidor.
      security:
        - Authorization: []
components:
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Encabezado de autenticación Bearer de la forma Bearer <token>, donde
        <token> es tu token de autenticación.

````