> ## 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 une recherche

> Recherche sur le web avec une requête en langage naturel et obtient une liste dédupliquée de liens pertinents avec titres et descriptions.  Il recherchera la requête de manière sémantique sur le web et retournera les résultats.  Optionnellement, passe `scrape_options` pour également explorer chaque URL retournée et intégrer `markdown_content` / `html_content` directement dans chaque lien. Les explorations de page sont facturées automatiquement à votre équipe via le point de terminaison sous-jacent /v1/scrapes.  Voir [Fonctionnalité de Recherche](/features/search).



## OpenAPI

````yaml fr/openapi/search.json POST /v1/searches
openapi: 3.0.3
info:
  title: API de Recherche
  version: 1.1.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/searches:
    post:
      summary: Créer Recherche
      description: >-
        Recherche sur le web avec une requête en langage naturel et obtient une
        liste dédupliquée de liens pertinents avec titres et descriptions.  Il
        recherchera la requête de manière sémantique sur le web et retournera
        les résultats.  Optionnellement, passe `scrape_options` pour également
        explorer chaque URL retournée et intégrer `markdown_content` /
        `html_content` directement dans chaque lien. Les explorations de page
        sont facturées automatiquement à votre équipe via le point de
        terminaison sous-jacent /v1/scrapes.  Voir [Fonctionnalité de
        Recherche](/features/search).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: La requête de recherche en langage naturel.
                  example: What's going on with OpenAI's Sora shutting down?
                limit:
                  type: integer
                  description: Nombre maximum de liens à retourner après déduplication.
                  minimum: 1
                  maximum: 25
                  default: 12
                  example: 10
                include_domains:
                  type: array
                  description: >-
                    Restreindre les résultats à ces domaines. Hôtes nus
                    uniquement — les `http(s)://` initiaux et les barres
                    obliques finales sont automatiquement supprimés.
                  items:
                    type: string
                  example:
                    - nytimes.com
                    - wsj.com
                exclude_domains:
                  type: array
                  description: >-
                    Exclure les résultats de ces domaines. Hôtes nus uniquement
                    — les `http(s)://` initiaux et les barres obliques finales
                    sont automatiquement supprimés.
                  items:
                    type: string
                  example:
                    - reddit.com
                fast_mode:
                  type: boolean
                  description: >-
                    Demande une recherche directe et à faible latence en
                    utilisant ta requête telle quelle. Le mode par défaut
                    effectue une recherche plus large pour une couverture de
                    résultats plus étendue.
                  default: false
                scrape_options:
                  $ref: '#/components/schemas/ScrapeOptions'
              required:
                - query
            examples:
              minimal:
                summary: Minimal — uniquement la requête
                value:
                  query: Best Answer Engine Optimization startups
              withScrape:
                summary: Avec scrape_options + filtres de domaine + limite
                value:
                  query: What's going on with OpenAI's Sora shutting down?
                  limit: 10
                  include_domains:
                    - nytimes.com
                    - wsj.com
                  exclude_domains:
                    - pinterest.com
                  scrape_options:
                    formats:
                      - markdown
                    remove_css_selectors: default
                    timeout: 25
      responses:
        '200':
          description: Réponse réussie avec les résultats de recherche.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: search_9bi0sbj9xa
                  object:
                    type: string
                    example: search
                  created:
                    type: integer
                    example: 1760327323
                  metadata:
                    type: object
                  query:
                    type: string
                    example: Best Answer Engine Optimization startups
                  credits_consumed:
                    type: integer
                    description: >-
                      Total des crédits consommés par cette requête : 5 crédits
                      de recherche de base + somme des crédits de scraping par
                      page lorsque scrape_options a été utilisé.
                    example: 10
                  result:
                    type: object
                    properties:
                      json_content:
                        type: string
                        description: >-
                          JSON sous forme de chaîne du résultat complet de la
                          recherche.
                      json_hosted_url:
                        type: string
                        description: URL vers le fichier JSON hébergé sur S3.
                        nullable: true
                      links:
                        type: array
                        description: >-
                          Liste dédupliquée de liens pertinents trouvés à
                          travers plusieurs recherches. Chaque lien peut inclure
                          `markdown_content` et/ou `html_content` lorsque
                          scrape_options a été fourni.
                        items:
                          $ref: '#/components/schemas/SearchLink'
                      size_exceeded:
                        type: boolean
                        description: >-
                          Vrai lorsque le contenu en ligne par lien a dépassé la
                          limite de sécurité de 9MB. Lorsque c'est vrai, les
                          champs de contenu sont annulés dans la réponse —
                          utilise json_hosted_url pour récupérer la charge utile
                          complète.
                      credits_consumed:
                        type: integer
                        description: Même valeur que credits_consumed au niveau supérieur.
        '400':
          description: >-
            Mauvaise requête — validation échouée (requête manquante, limite
            invalide, valeur de scrape_options.formats non prise en charge,
            etc.). Le corps de la réponse est `{ "message": "<raison>" }`.
        '401':
          description: Clé API Invalide
        '500':
          description: Erreur interne du serveur
      security:
        - Authorization: []
components:
  schemas:
    ScrapeOptions:
      type: object
      description: >-
        Optionnel. Lorsqu'il est fourni, chaque lien retourné est également
        exploré et son contenu est intégré dans la réponse. Les crédits
        d'exploration par page sont facturés automatiquement par le point de
        terminaison sous-jacent /v1/scrapes.
      properties:
        formats:
          type: array
          description: >-
            Formats de sortie à demander pour chaque page explorée. Par défaut à
            ['markdown'] lorsqu'omise. Pour l'instant, seuls 'html' et
            'markdown' sont pris en charge sur /v1/searches.
          items:
            type: string
            enum:
              - html
              - markdown
          default:
            - markdown
          example:
            - markdown
        remove_css_selectors:
          type: string
          description: >-
            Option pour supprimer certains sélecteurs CSS du contenu. Transmis à
            /v1/scrapes. Par défaut à 'default' qui supprime
            ['nav','footer','script','style','noscript','svg',[role=alert],[role=banner],[role=dialog],[role=alertdialog],[role=region][aria-label*=skip
            i],[aria-modal=true]]. Passe 'none' pour désactiver, ou un tableau
            JSON sous forme de chaîne de sélecteurs à supprimer.
          default: default
        timeout:
          type: integer
          description: >-
            Budget en secondes pour la phase d'exploration complète. Après ce
            délai, la recherche retourne avec les liens disponibles — les champs
            de contenu seront nuls pour les liens qui n'ont pas terminé
            l'exploration.
          minimum: 1
          maximum: 60
          default: 25
    SearchLink:
      type: object
      properties:
        url:
          type: string
          description: L'URL du résultat.
        title:
          type: string
          nullable: true
          description: Le titre de la page de résultat.
        description:
          type: string
          nullable: true
          description: Un court extrait ou une description du résultat.
        markdown_content:
          type: string
          nullable: true
          description: >-
            Contenu Markdown de la page. Présent uniquement lorsque
            scrape_options.formats inclut 'markdown'. Null si l'exploration a
            échoué, était vide, ou a atteint le délai d'attente global. Pour les
            URLs de commentaires Reddit, cela est généré à partir du JSON
            structuré du parseur @olostep/reddit-post pour une meilleure
            qualité.
        html_content:
          type: string
          nullable: true
          description: >-
            Contenu HTML de la page. Présent uniquement lorsque
            scrape_options.formats inclut 'html'. Null si l'exploration a
            échoué, était vide, ou a atteint le délai d'attente global.
  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.

````