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

> Démarre un nouveau crawl. Vous recevez un `id` pour suivre la progression. L’opération peut prendre de 1 à 10 minutes selon le site, la profondeur et les paramètres de pages.

<Tip>
  **Soyez notifié à la fin :** Passez le paramètre `webhook` avec l'URL de votre endpoint pour recevoir un HTTP POST lorsque le crawl est terminé. Voir [Webhooks](/api-reference/common/webhooks) pour plus de détails.
</Tip>


## OpenAPI

````yaml fr/openapi/crawls.json POST /v1/crawls
openapi: 3.0.3
info:
  title: API de Crawl
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/crawls:
    post:
      summary: Démarrer un nouveau crawl
      description: Lance un nouveau processus de crawl avec les paramètres spécifiés.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                start_url:
                  type: string
                  description: Le point de départ du crawl.
                include_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    Modèles de chemin URL à inclure dans le crawl en utilisant
                    la syntaxe glob.  Par défaut, `/**` inclut toutes les URLs.
                    Utilise des modèles comme `/blog/**` pour crawler des
                    sections spécifiques (par exemple, uniquement les pages de
                    blog), `/products/*.html` pour les pages de produits, ou
                    plusieurs modèles pour différentes sections. Prend en charge
                    les fonctionnalités glob standard comme * (n'importe quels
                    caractères) et ** (correspondance récursive).
                exclude_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    Noms de chemin URL dans le modèle glob à exclure. Par
                    exemple : `/careers/**`. Les URLs exclues prévaudront sur
                    les URLs incluses.
                max_pages:
                  type: number
                  description: >-
                    Nombre maximum de pages à crawler. Recommandé pour la
                    plupart des cas d'utilisation comme le crawl d'un site web
                    entier.
                max_depth:
                  type: number
                  description: >-
                    Profondeur maximale du crawl. Utile pour extraire uniquement
                    jusqu'à un certain degré de liens.
                include_external:
                  type: boolean
                  description: Crawler les liens externes de premier degré.
                include_subdomain:
                  type: boolean
                  description: Inclure les sous-domaines du site web. `false` par défaut.
                search_query:
                  type: string
                  description: >-
                    Une requête de recherche optionnelle pour trouver des liens
                    spécifiques et aussi trier les résultats par pertinence.
                top_n:
                  type: number
                  description: >-
                    Un nombre optionnel pour ne crawler que les N liens les plus
                    pertinents sur chaque page selon la requête de recherche.
                webhook:
                  type: string
                  format: uri
                  description: >-
                    URL HTTPS pour recevoir une requête POST lorsque le crawl
                    est terminé. Doit être une URL publiquement accessible
                    utilisant le protocole `http://` ou `https://`. Ne peut pas
                    pointer vers localhost ou des adresses IP privées. Voir
                    [Webhooks](/api-reference/common/webhooks) pour le format de
                    la charge utile et le comportement de réessai.
                timeout:
                  type: number
                  description: >-
                    Terminer le crawl après n secondes avec les pages complétées
                    jusqu'à ce moment-là. Peut prendre ~10s supplémentaires par
                    rapport au délai d'attente fourni.
                follow_robots_txt:
                  type: boolean
                  description: >-
                    Si les règles de robots.txt doivent être respectées. Si
                    réglé sur `false`, le crawler scrutera le site web
                    indépendamment des directives de désactivation de
                    robots.txt. `true` par défaut.
                  default: true
                scrape_options:
                  type: object
                  description: >-
                    Contrôle ce que chaque demande de scrape de page
                    individuelle demande à l'API Olostep. Tous les champs sont
                    optionnels.
                  properties:
                    formats:
                      type: array
                      items:
                        type: string
                        enum:
                          - html
                          - markdown
                          - text
                          - json
                          - screenshot
                      description: >-
                        Formats de sortie à demander pour chaque page scrutée.
                        Par défaut `["html", "markdown"]` lorsqu'omise. `html`
                        est toujours inclus automatiquement. `json` est
                        automatiquement ajouté lorsqu'un `parser` est fourni.
                        Note : `raw_pdf` n'est pas pris en charge — les PDFs ne
                        peuvent pas être crawlés.
                      example:
                        - markdown
                        - screenshot
                    parser:
                      type: string
                      description: >-
                        Nom du parser à exécuter sur chaque page pour produire
                        une sortie `json` structurée (par exemple,
                        `"@olostep/extract-emails"`). Ajoute automatiquement
                        `json` à `formats` lorsqu'il est défini.
                      example: '@olostep/extract-emails'
              required:
                - start_url
                - max_pages
      responses:
        '200':
          description: Crawl démarré avec succès.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID du Crawl
                  object:
                    type: string
                    description: Le type d'objet. "crawl" pour cet endpoint.
                  status:
                    type: string
                    description: '`in_progress` ou `completed`'
                  created:
                    type: number
                    description: Heure de création en epoch
                  start_date:
                    type: string
                    description: Heure de création en date
                  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 profondeur actuelle du processus de crawl.
                  pages_count:
                    type: number
                    description: Nombre de pages crawlées
                  webhook:
                    type: string
                  follow_robots_txt:
                    type: boolean
                  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: Mauvaise requête en raison de paramètres incorrects ou manquants.
        '500':
          description: Erreur interne du serveur.
      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.

````