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

# Créer un Scrape

> [Scrape](https://docs.olostep.com/features/scrapes) une URL avec la configuration fournie et obtenez le contenu.

<Tip>
  **Mise en cache optionnelle :** Passez `max_age` (en secondes) pour réutiliser un scrape récent avec les mêmes paramètres au lieu de récupérer à nouveau la page. Par défaut, il est à `0` (toujours frais). Dans le bac à sable du tableau de bord, la valeur par défaut est de 24 heures. Voir [Mise en cache](/features/scrapes#caching) pour plus de détails.
</Tip>


## OpenAPI

````yaml fr/openapi/scrapes.json POST /v1/scrapes
openapi: 3.0.3
info:
  title: API de Scraping
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/scrapes:
    post:
      summary: Initier un scraping de page web
      description: >-
        Ce point de terminaison permet aux utilisateurs de démarrer un scraping
        de page web avec diverses configurations.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url_to_scrape:
                  type: string
                  format: uri
                  description: L'URL à partir de laquelle commencer le scraping.
                wait_before_scraping:
                  type: integer
                  description: >-
                    Temps d'attente en millisecondes avant de commencer le
                    scraping.
                formats:
                  type: array
                  items:
                    type: string
                    enum:
                      - html
                      - markdown
                      - text
                      - json
                      - raw_pdf
                      - screenshot
                  description: Formats dans lesquels tu veux le contenu.
                remove_css_selectors:
                  type: string
                  enum:
                    - default
                    - none
                    - array
                  description: >-
                    Option pour supprimer certains sélecteurs CSS du contenu. Tu
                    peux également passer un tableau JSON sous forme de chaîne
                    des sélecteurs spécifiques que tu veux supprimer. Les
                    sélecteurs CSS supprimés lorsque cette option est définie
                    par défaut sont
                    ['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: Attendre
                        required:
                          - type
                          - milliseconds
                        properties:
                          type:
                            type: string
                            enum:
                              - wait
                            description: >-
                              Attendre un certain nombre de millisecondes
                              spécifié
                          milliseconds:
                            type: integer
                            minimum: 0
                            description: Temps d'attente en millisecondes
                      - type: object
                        title: Cliquer
                        required:
                          - type
                          - selector
                        properties:
                          type:
                            type: string
                            enum:
                              - click
                            description: Cliquer sur un élément
                          selector:
                            type: string
                            description: Sélecteur CSS pour l'élément à cliquer
                      - type: object
                        title: Remplir l'entrée
                        required:
                          - type
                          - selector
                          - value
                        properties:
                          type:
                            type: string
                            enum:
                              - fill_input
                            description: Remplir un élément d'entrée avec une valeur
                          selector:
                            type: string
                            description: Sélecteur CSS pour l'élément d'entrée
                          value:
                            type: string
                            description: Texte à entrer dans l'entrée
                      - type: object
                        title: Faire défiler
                        required:
                          - type
                          - direction
                          - amount
                        properties:
                          type:
                            type: string
                            enum:
                              - scroll
                            description: Faire défiler la page
                          direction:
                            type: string
                            enum:
                              - up
                              - down
                              - left
                              - right
                            description: Direction du défilement
                          amount:
                            type: number
                            description: Quantité à faire défiler en pixels
                  description: Actions à effectuer sur la page avant d'obtenir le contenu.
                country:
                  type: string
                  description: >-
                    Pays résidentiel à partir duquel charger la requête. 
                    Valeurs supportées : - US (États-Unis) - CA (Canada) - IT
                    (Italie) - IN (Inde) - GB (Angleterre) - JP (Japon) - MX
                    (Mexique) - AU (Australie) - ID (Indonésie) - UA (Émirats
                    Arabes Unis) - RU (Russie) - RANDOM  Certaines opérations,
                    comme le scraping de Google Search et Google News,
                    supportent tous les pays.
                transformer:
                  type: string
                  enum:
                    - postlight
                    - none
                  description: >-
                    Spécifie le transformateur HTML à utiliser, si nécessaire.
                    La bibliothèque Mercury Parser de Postlight est utilisée
                    pour supprimer les publicités et autres contenus
                    indésirables du contenu scrapé.
                remove_images:
                  type: boolean
                  description: >-
                    Option pour supprimer les images du contenu scrappé. Par
                    défaut, c'est false.
                  default: false
                remove_class_names:
                  type: array
                  items:
                    type: string
                  description: Liste des noms de classes à supprimer du contenu.
                parser:
                  type: object
                  properties:
                    id:
                      type: string
                      description: ID du parseur à utiliser.
                  required:
                    - id
                  description: >-
                    Lors de la définition de json comme format, tu peux utiliser
                    ce paramètre pour spécifier le parseur à utiliser. Les
                    parseurs sont utiles pour extraire du contenu structuré des
                    pages web. Olostep a quelques parseurs intégrés pour les
                    pages web les plus courantes, et tu peux aussi créer tes
                    propres parseurs.
                llm_extract:
                  type: object
                  properties:
                    schema:
                      type: object
                      description: Schéma pour l'extraction LLM.
                links_on_page:
                  type: object
                  properties:
                    query_to_order_links_by:
                      type: string
                      description: >-
                        Trie les liens retournés par leur similarité avec le
                        texte de requête fourni, en priorisant les
                        correspondances les plus pertinentes en premier.
                    include_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filtre les liens extraits en utilisant des motifs glob
                        avec `include_links`. Les motifs correspondent au chemin
                        URL du lien. Utilise des motifs comme "*.pdf" pour
                        correspondre aux extensions de fichiers, "/blog/*" pour
                        des chemins spécifiques, ou des URLs complètes comme
                        "https://example.com/*". Supporte les jokers (*), les
                        classes de caractères ([a-z]), et l'alternance
                        ({pattern1,pattern2}). Note : un seul `*` ne traverse
                        pas `/`, donc "/blog/*" correspond à "/blog/post-1" mais
                        PAS à l'index "/blog" lui-même (ou "/blog?tag=x", car
                        les chaînes de requête ne font pas partie du chemin).
                        Pour inclure aussi l'index, utilise "/blog*" ou
                        "{/blog,/blog/**}".
                    exclude_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filtre les liens extraits en utilisant des motifs glob
                        avec `exclude_links`. Les motifs correspondent au chemin
                        URL du lien. Utilise des motifs comme "*.pdf" pour
                        correspondre aux extensions de fichiers, "/blog/*" pour
                        des chemins spécifiques, ou des URLs complètes comme
                        "https://example.com/*". Supporte les jokers (*), les
                        classes de caractères ([a-z]), et l'alternance
                        ({pattern1,pattern2}). Note : un seul `*` ne traverse
                        pas `/`, donc "/blog/*" correspond à "/blog/post-1" mais
                        PAS à l'index "/blog" lui-même (ou "/blog?tag=x", car
                        les chaînes de requête ne font pas partie du chemin).
                  description: >-
                    Avec cette option, tu peux obtenir tous les liens présents
                    sur la page que tu scrapes. Les liens sont toujours
                    retournés sous forme d'URLs absolues.
                screen_size:
                  type: object
                  properties:
                    screen_type:
                      type: string
                      enum:
                        - default
                        - mobile
                        - desktop
                      description: >-
                        Type d'écran. Desktop utilise 1920x1080 pixels, mobile
                        utilise 414x896 pixels, et par défaut utilise 1024x768
                        pixels.
                    screen_width:
                      type: integer
                      description: >-
                        Largeur de l'écran en pixels. Desktop : 1920px, mobile :
                        414px, par défaut : 768px.
                    screen_height:
                      type: integer
                      description: >-
                        Hauteur de l'écran en pixels. Desktop : 1080px, mobile :
                        896px, par défaut : 1024px.
                  description: >-
                    Configuration pour la taille de l'écran. Des dimensions
                    prédéfinies sont disponibles via screen_type : desktop
                    (1920x1080), mobile (414x896), ou default (768x1024).
                screenshot:
                  type: object
                  properties:
                    full_page:
                      type: boolean
                      description: >-
                        Si tu passes true, la capture d'écran de la page entière
                        est prise après avoir défilé jusqu'en bas du site.
                metadata:
                  type: object
                  description: Métadonnées définies par l'utilisateur. Pas encore supporté.
                max_age:
                  type: integer
                  minimum: 0
                  default: 0
                  description: >-
                    Âge maximum acceptable du contenu mis en cache, en secondes.
                    Lorsqu'un scrape correspondant existe déjà et est plus
                    récent que max_age secondes, Olostep renvoie le résultat
                    stocké au lieu de lancer un nouveau scrape de navigateur.
                    Par défaut, c'est 0 (toujours scraper frais). Dans le
                    terrain de jeu du tableau de bord, la valeur par défaut est
                    86400 (24 heures). La valeur maximale autorisée est 604800
                    (7 jours). Voir la section Caching dans la documentation des
                    fonctionnalités Scrapes pour plus de détails.
              required:
                - url_to_scrape
      responses:
        '200':
          description: Réponse réussie avec les détails de l'initiation du scrape.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID du scrape
                  object:
                    type: string
                    description: Le type d'objet. "scrape" pour ce point de terminaison.
                  created:
                    type: number
                    description: Époque créée
                  metadata:
                    type: object
                    description: Métadonnées définies par l'utilisateur.
                  url_to_scrape:
                    type: string
                    description: L'URL qui a été scrappée.
                  result:
                    type: object
                    properties:
                      html_content:
                        type: string
                      markdown_content:
                        type: string
                      text_content:
                        type: string
                      json_content:
                        type: string
                        description: Contenu du 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: >-
                      Nombre de crédits consommés par cette requête. Rempli
                      après l'exécution terminée. Les crédits sont la source de
                      vérité pour la facturation.
                  cost_usd:
                    type: number
                    nullable: true
                    description: >-
                      Coût estimé en USD pour cette requête. Rempli après
                      l'exécution terminée. Calculé à partir des crédits
                      consommés et de ton tarif de plan — 99% précis, mais
                      credits_consumed est la valeur faisant autorité.
        '400':
          description: >-
            La requête ne peut pas être satisfaite en raison d'un problème avec
            l'URL cible. Codes communs : `dns_resolution_failed` (le domaine
            n'existe pas), `invalid_url` (URL malformée).
          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: Paiement requis — clé API invalide ou épuisée.
        '404':
          description: L'ID de scrape demandé n'a pas été trouvé.
        '500':
          description: Erreur interne du serveur.
        '502':
          description: >-
            Le site web cible a un problème de configuration TLS/SSL.
            `error.code` est toujours `tls_error`; `error.detail` contient le
            code d'erreur SSL bas niveau spécifique (par exemple,
            `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: Code d'erreur SSL bas niveau pour le diagnostic.
                      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: >-
            Le scrape n'a pas été complété dans le budget d'attente (~55
            secondes). La page cible peut être lente, protégée contre les bots,
            ou temporairement indisponible. Il est sûr de réessayer.
          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: >-
        En-tête d'authentification Bearer sous la forme Bearer <token>, où
        <token> est ton jeton d'authentification.

````