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

> Esegui uno [Scrape](https://docs.olostep.com/features/scrapes) di un URL con la configurazione fornita e ottieni il contenuto.

<Tip>
  **Caching opzionale:** Passa `max_age` (in secondi) per riutilizzare uno scrape recente con gli stessi parametri invece di recuperare nuovamente la pagina. Il valore predefinito è `0` (sempre fresco). Nel playground della dashboard, il valore predefinito è 24 ore. Vedi [Caching](/features/scrapes#caching) per i dettagli.
</Tip>


## OpenAPI

````yaml it/openapi/scrapes.json POST /v1/scrapes
openapi: 3.0.3
info:
  title: API di Scraping
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/scrapes:
    post:
      summary: Inizia uno scraping di una pagina web
      description: >-
        Questo endpoint permette agli utenti di avviare uno scraping di una
        pagina web con varie configurazioni.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url_to_scrape:
                  type: string
                  format: uri
                  description: L'URL da cui iniziare lo scraping.
                wait_before_scraping:
                  type: integer
                  description: >-
                    Tempo di attesa in millisecondi prima di iniziare lo
                    scraping.
                formats:
                  type: array
                  items:
                    type: string
                    enum:
                      - html
                      - markdown
                      - text
                      - json
                      - raw_pdf
                      - screenshot
                  description: Formati nei quali vuoi il contenuto.
                remove_css_selectors:
                  type: string
                  enum:
                    - default
                    - none
                    - array
                  description: >-
                    Opzione per rimuovere determinati selettori CSS dal
                    contenuto. Facoltativamente, puoi anche passare un array
                    JSON stringificato di selettori specifici che vuoi
                    rimuovere. I selettori CSS rimossi quando questa opzione è
                    impostata su default sono
                    ['nav','footer','script','style','noscript','svg',[role=alert],[role=banner],[role=dialog],[role=alertdialog],[role=region][aria-label*=skip
                    i],[aria-modal=true]]
                actions:
                  type: array
                  items:
                    type: object
                    discriminator:
                      propertyName: type
                    oneOf:
                      - type: object
                        title: Attendere
                        required:
                          - type
                          - milliseconds
                        properties:
                          type:
                            type: string
                            enum:
                              - wait
                            description: >-
                              Attendere per un determinato numero di
                              millisecondi
                          milliseconds:
                            type: integer
                            minimum: 0
                            description: Tempo di attesa in millisecondi
                      - type: object
                        title: Cliccare
                        required:
                          - type
                          - selector
                        properties:
                          type:
                            type: string
                            enum:
                              - click
                            description: Cliccare su un elemento
                          selector:
                            type: string
                            description: Selettore CSS per l'elemento su cui cliccare
                      - type: object
                        title: Compila Input
                        required:
                          - type
                          - selector
                          - value
                        properties:
                          type:
                            type: string
                            enum:
                              - fill_input
                            description: Compila un elemento di input con un valore
                          selector:
                            type: string
                            description: Selettore CSS per l'elemento di input
                          value:
                            type: string
                            description: Testo da inserire nell'input
                      - type: object
                        title: Scorri
                        required:
                          - type
                          - direction
                          - amount
                        properties:
                          type:
                            type: string
                            enum:
                              - scroll
                            description: Scorri la pagina
                          direction:
                            type: string
                            enum:
                              - up
                              - down
                              - left
                              - right
                            description: Direzione dello scorrimento
                          amount:
                            type: number
                            description: Quantità di scorrimento in pixel
                  description: >-
                    Azioni da eseguire sulla pagina prima di ottenere il
                    contenuto.
                country:
                  type: string
                  description: >-
                    Paese residenziale da cui caricare la richiesta.  Valori
                    supportati sono: - US (Stati Uniti) - CA (Canada) - IT
                    (Italia) - IN (India) - GB (Inghilterra) - JP (Giappone) -
                    MX (Messico) - AU (Australia) - ID (Indonesia) - UA (UAE) -
                    RU (Russia) - RANDOM  Alcune operazioni, come lo scraping di
                    Google Search e Google News, supportano tutti i paesi.
                transformer:
                  type: string
                  enum:
                    - postlight
                    - none
                  description: >-
                    Specifica il trasformatore HTML da utilizzare, se presente.
                    La libreria Mercury Parser di Postlight viene utilizzata per
                    rimuovere annunci e altri contenuti indesiderati dal
                    contenuto estratto.
                remove_images:
                  type: boolean
                  description: >-
                    Opzione per rimuovere le immagini dal contenuto estratto. Di
                    default è false.
                  default: false
                remove_class_names:
                  type: array
                  items:
                    type: string
                  description: Elenco dei nomi di classe da rimuovere dal contenuto.
                parser:
                  type: object
                  properties:
                    id:
                      type: string
                      description: ID del parser da utilizzare.
                  required:
                    - id
                  description: >-
                    Quando definisci json come formato, puoi usare questo
                    parametro per specificare il parser da utilizzare. I parser
                    sono utili per estrarre contenuti strutturati dalle pagine
                    web. Olostep ha alcuni parser integrati per le pagine web
                    più comuni, e puoi anche creare i tuoi parser.
                llm_extract:
                  type: object
                  properties:
                    schema:
                      type: object
                      description: Schema per l'estrazione LLM.
                links_on_page:
                  type: object
                  properties:
                    query_to_order_links_by:
                      type: string
                      description: >-
                        Ordina i link restituiti in base alla loro somiglianza
                        con il testo della query fornita, dando priorità alle
                        corrispondenze più rilevanti per prime.
                    include_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filtra i link estratti usando pattern glob con
                        `include_links`. I pattern si confrontano con il
                        percorso URL del link. Usa pattern come "*.pdf" per
                        abbinare le estensioni dei file, "/blog/*" per percorsi
                        specifici, o URL completi come "https://example.com/*".
                        Supporta caratteri jolly (*), classi di caratteri
                        ([a-z]), e alternanza ({pattern1,pattern2}). Nota: un
                        singolo `*` non attraversa `/`, quindi "/blog/*"
                        corrisponde a "/blog/post-1" ma NON all'indice "/blog"
                        stesso (o "/blog?tag=x", poiché le stringhe di query non
                        fanno parte del percorso). Per includere anche l'indice,
                        usa "/blog*" o "{/blog,/blog/**}".
                    exclude_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filtra i link estratti usando pattern glob con
                        `exclude_links`. I pattern si confrontano con il
                        percorso URL del link. Usa pattern come "*.pdf" per
                        abbinare le estensioni dei file, "/blog/*" per percorsi
                        specifici, o URL completi come "https://example.com/*".
                        Supporta caratteri jolly (*), classi di caratteri
                        ([a-z]), e alternanza ({pattern1,pattern2}). Nota: un
                        singolo `*` non attraversa `/`, quindi "/blog/*"
                        corrisponde a "/blog/post-1" ma NON all'indice "/blog"
                        stesso (o "/blog?tag=x", poiché le stringhe di query non
                        fanno parte del percorso).
                  description: >-
                    Con questa opzione, puoi ottenere tutti i link presenti
                    sulla pagina che stai scrappando. I link sono sempre
                    restituiti come URL assoluti.
                screen_size:
                  type: object
                  properties:
                    screen_type:
                      type: string
                      enum:
                        - default
                        - mobile
                        - desktop
                      description: >-
                        Tipo di schermo. Desktop usa 1920x1080 pixel, mobile usa
                        414x896 pixel, e default usa 1024x768 pixel.
                    screen_width:
                      type: integer
                      description: >-
                        Larghezza dello schermo in pixel. Desktop: 1920px,
                        mobile: 414px, default: 768px.
                    screen_height:
                      type: integer
                      description: >-
                        Altezza dello schermo in pixel. Desktop: 1080px, mobile:
                        896px, default: 1024px.
                  description: >-
                    Configurazione per la dimensione dello schermo. Le
                    dimensioni preimpostate sono disponibili tramite
                    screen_type: desktop (1920x1080), mobile (414x896) o default
                    (768x1024).
                screenshot:
                  type: object
                  properties:
                    full_page:
                      type: boolean
                      description: >-
                        Se passato true, lo screenshot dell'intera pagina viene
                        effettuato dopo aver scrollato fino in fondo al sito.
                metadata:
                  type: object
                  description: Metadati definiti dall'utente. Non ancora supportato.
                max_age:
                  type: integer
                  minimum: 0
                  default: 0
                  description: >-
                    Età massima accettabile del contenuto memorizzato nella
                    cache, in secondi. Quando esiste già uno scrape
                    corrispondente ed è più recente di max_age secondi, Olostep
                    restituisce il risultato memorizzato invece di avviare un
                    nuovo scrape del browser. Il valore predefinito è 0 (sempre
                    scrape fresco). Nel playground della dashboard, il valore
                    predefinito è 86400 (24 ore). Il valore massimo consentito è
                    604800 (7 giorni). Vedi la sezione Caching nei documenti
                    della funzione Scrapes per i dettagli.
              required:
                - url_to_scrape
      responses:
        '200':
          description: Risposta riuscita con i dettagli dell'inizio dello scrape.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Scrape ID
                  object:
                    type: string
                    description: Il tipo di oggetto. "scrape" per questo endpoint.
                  created:
                    type: number
                    description: Epoch creato
                  metadata:
                    type: object
                    description: Metadati definiti dall'utente.
                  url_to_scrape:
                    type: string
                    description: L'URL che è stato scrappato.
                  result:
                    type: object
                    properties:
                      html_content:
                        type: string
                      markdown_content:
                        type: string
                      text_content:
                        type: string
                      json_content:
                        type: string
                        description: Contenuto dal parser
                      screenshot_hosted_url:
                        type: string
                      html_hosted_url:
                        type: string
                      markdown_hosted_url:
                        type: string
                      text_hosted_url:
                        type: string
                      links_on_page:
                        type: array
                        items:
                          type: string
                      page_metadata:
                        type: object
                        properties:
                          status_code:
                            type: integer
                          title:
                            type: string
                  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: >-
            La richiesta non può essere soddisfatta a causa di un problema con
            l'URL di destinazione. Codici comuni: `dns_resolution_failed` (il
            dominio non esiste), `invalid_url` (URL malformato).
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  object:
                    type: string
                    enum:
                      - error
                  created:
                    type: integer
                  metadata:
                    type: object
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - invalid_request_error
                      code:
                        type: string
                        example: dns_resolution_failed
                      message:
                        type: string
              example:
                id: error_x2nmu5bqn6
                object: error
                created: 1777923912
                metadata: {}
                error:
                  type: invalid_request_error
                  code: dns_resolution_failed
                  message: The URL contains a typo, or the domain does not exist.
        '402':
          description: Pagamento richiesto — chiave API non valida o esaurita.
        '404':
          description: Lo scrape ID richiesto non è stato trovato.
        '500':
          description: Errore interno del server.
        '502':
          description: >-
            Il sito web di destinazione ha un problema di configurazione
            TLS/SSL. `error.code` è sempre `tls_error`; `error.detail` contiene
            il codice di errore SSL specifico a basso livello (es.
            `err_ssl_tlsv1_alert_internal_error`, `cert_verification_failed`).
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  object:
                    type: string
                    enum:
                      - error
                  created:
                    type: integer
                  url:
                    type: string
                  metadata:
                    type: object
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - invalid_request_error
                      code:
                        type: string
                        enum:
                          - tls_error
                      detail:
                        type: string
                        description: >-
                          Codice di errore SSL a basso livello per la
                          diagnostica.
                      message:
                        type: string
              example:
                id: error_ogeb6rik8c
                object: error
                created: 1777923969
                url: https://example.com
                metadata: {}
                error:
                  type: invalid_request_error
                  code: tls_error
                  detail: err_ssl_tlsv1_alert_internal_error
                  message: >-
                    The website closed or rejected the TLS handshake. The server
                    may be misconfigured or use an unsupported SSL/TLS version.
        '504':
          description: >-
            Lo scrape non è stato completato entro il tempo di attesa (~55
            secondi). La pagina di destinazione potrebbe essere lenta, protetta
            da bot o temporaneamente non disponibile. Sicuro da riprovare.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  object:
                    type: string
                    enum:
                      - error
                  created:
                    type: integer
                  url:
                    type: string
                  metadata:
                    type: object
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - request_timeout
                      code:
                        type: string
                        enum:
                          - scrape_poll_timeout
                      message:
                        type: string
              example:
                id: error_qat3d1amjt
                object: error
                created: 1777923969
                url: https://example.com
                metadata: {}
                error:
                  type: request_timeout
                  code: scrape_poll_timeout
                  message: >-
                    Request timed out while waiting for scrape result. The page
                    may be slow, blocked for our fetchers, or temporarily
                    unavailable.
      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.

````