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

# Crea Crawl

> Avvia un nuovo crawl. Ricevi un `id` per monitorare il progresso. L’operazione può richiedere da 1 a 10 minuti a seconda del sito e dei parametri di profondità e pagine.

<Tip>
  **Ricevi una notifica al completamento:** Passa il parametro `webhook` con l'URL del tuo endpoint per ricevere un HTTP POST quando il crawl è completato. Vedi [Webhooks](/api-reference/common/webhooks) per i dettagli.
</Tip>


## OpenAPI

````yaml it/openapi/crawls.json POST /v1/crawls
openapi: 3.0.3
info:
  title: API di Crawl
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/crawls:
    post:
      summary: Avvia un nuovo crawl
      description: Inizia un nuovo processo di crawl con i parametri specificati.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                start_url:
                  type: string
                  description: Il punto di partenza del crawl.
                include_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    Modelli di percorso URL da includere nel crawl usando la
                    sintassi glob.  Di default è `/**` che include tutti gli
                    URL. Usa modelli come `/blog/**` per fare il crawl di
                    sezioni specifiche (ad esempio, solo le pagine del blog),
                    `/products/*.html` per le pagine dei prodotti, o modelli
                    multipli per sezioni diverse. Supporta le funzionalità
                    standard glob come * (qualsiasi carattere) e **
                    (corrispondenza ricorsiva).
                exclude_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nomi di percorso URL nel modello glob da escludere. Ad
                    esempio: `/careers/**`. Gli URL esclusi avranno la
                    precedenza sugli URL inclusi.
                max_pages:
                  type: number
                  description: >-
                    Numero massimo di pagine da fare il crawl. Consigliato per
                    la maggior parte dei casi d'uso come fare il crawl di un
                    intero sito web.
                max_depth:
                  type: number
                  description: >-
                    Profondità massima del crawl. Utile per estrarre solo fino a
                    n-grado di link.
                include_external:
                  type: boolean
                  description: Fai il crawl dei link esterni di primo grado.
                include_subdomain:
                  type: boolean
                  description: Includi i sottodomini del sito web. `false` di default.
                search_query:
                  type: string
                  description: >-
                    Una query di ricerca opzionale per trovare link specifici e
                    anche ordinare i risultati per rilevanza.
                top_n:
                  type: number
                  description: >-
                    Un numero opzionale per fare il crawl solo dei primi N link
                    più rilevanti su ogni pagina secondo la query di ricerca.
                webhook:
                  type: string
                  format: uri
                  description: >-
                    URL HTTPS per ricevere una richiesta POST quando il crawl è
                    completato. Deve essere un URL pubblicamente accessibile
                    usando il protocollo `http://` o `https://`. Non può puntare
                    a localhost o indirizzi IP privati. Vedi
                    [Webhooks](/api-reference/common/webhooks) per il formato
                    del payload e il comportamento di retry.
                timeout:
                  type: number
                  description: >-
                    Termina il crawl dopo n secondi con le pagine completate
                    fino a quel momento. Potrebbe richiedere ~10s extra rispetto
                    al timeout fornito.
                follow_robots_txt:
                  type: boolean
                  description: >-
                    Se rispettare le regole di robots.txt. Se impostato su
                    `false`, il crawler farà lo scraping del sito web
                    indipendentemente dalle direttive di disallow di robots.txt.
                    `true` di default.
                  default: true
                scrape_options:
                  type: object
                  description: >-
                    Controlla cosa richiede ogni singola pagina di scrape
                    dall'API di Olostep. Tutti i campi sono opzionali.
                  properties:
                    formats:
                      type: array
                      items:
                        type: string
                        enum:
                          - html
                          - markdown
                          - text
                          - json
                          - screenshot
                      description: >-
                        Formati di output da richiedere per ogni pagina di
                        scrape. Di default è `["html", "markdown"]` quando
                        omesso. `html` è sempre incluso automaticamente. `json`
                        è aggiunto automaticamente quando è fornito un `parser`.
                        Nota: `raw_pdf` non è supportato — i PDF non possono
                        essere fatti il crawl.
                      example:
                        - markdown
                        - screenshot
                    parser:
                      type: string
                      description: >-
                        Nome del parser da eseguire su ogni pagina per produrre
                        un output `json` strutturato (ad esempio
                        `"@olostep/extract-emails"`). Aggiunge automaticamente
                        `json` a `formats` quando impostato.
                      example: '@olostep/extract-emails'
              required:
                - start_url
                - max_pages
      responses:
        '200':
          description: Crawl avviato con successo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID del Crawl
                  object:
                    type: string
                    description: Il tipo di oggetto. "crawl" per questo endpoint.
                  status:
                    type: string
                    description: '`in_progress` o `completed`'
                  created:
                    type: number
                    description: Tempo di creazione in epoch
                  start_date:
                    type: string
                    description: Tempo di creazione in data
                  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 profondità attuale del processo di crawl.
                  pages_count:
                    type: number
                    description: Conteggio delle pagine scansionate
                  webhook:
                    type: string
                  follow_robots_txt:
                    type: boolean
                  credits_consumed:
                    type: integer
                    nullable: true
                    description: >-
                      Numero di crediti consumati da questa richiesta. Popolato
                      dopo il completamento dell'esecuzione. I crediti sono la
                      fonte di verità per la fatturazione.
                  cost_usd:
                    type: number
                    nullable: true
                    description: >-
                      Costo stimato in USD per questa richiesta. Popolato dopo
                      il completamento dell'esecuzione. Calcolato dai crediti
                      consumati e dal tuo piano tariffario — 99% accurato, ma
                      credits_consumed è il valore autorevole.
        '400':
          description: Richiesta errata a causa di parametri mancanti o errati.
        '500':
          description: Errore interno del server.
      security:
        - Authorization: []
components:
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Intestazione di autenticazione Bearer del tipo Bearer <token>, dove
        <token> è il tuo token di autenticazione.

````