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

# Zoekopdracht aanmaken

> Doorzoek het web met een natuurlijke taalquery en krijg een gededupliceerde lijst van relevante links met titels en beschrijvingen terug.  Het zal semantisch naar de query zoeken op het web en resultaten retourneren.  Optioneel, geef `scrape_options` door om ook elke geretourneerde URL te scrapen en `markdown_content` / `html_content` direct in elke link in te bedden. Pagina-scrapes worden automatisch gefactureerd tegen je team via het onderliggende /v1/scrapes endpoint.  Zie [Zoekfunctie](/features/search).



## OpenAPI

````yaml nl/openapi/search.json POST /v1/searches
openapi: 3.0.3
info:
  title: Zoek-API
  version: 1.1.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/searches:
    post:
      summary: Zoekopdracht Aanmaken
      description: >-
        Doorzoek het web met een natuurlijke taalquery en krijg een
        gededupliceerde lijst van relevante links met titels en beschrijvingen
        terug.  Het zal semantisch naar de query zoeken op het web en resultaten
        retourneren.  Optioneel, geef `scrape_options` door om ook elke
        geretourneerde URL te scrapen en `markdown_content` / `html_content`
        direct in elke link in te bedden. Pagina-scrapes worden automatisch
        gefactureerd tegen je team via het onderliggende /v1/scrapes endpoint. 
        Zie [Zoekfunctie](/features/search).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: De zoekopdracht in natuurlijke taal.
                  example: What's going on with OpenAI's Sora shutting down?
                limit:
                  type: integer
                  description: Maximum aantal links om terug te geven na deduplicatie.
                  minimum: 1
                  maximum: 25
                  default: 12
                  example: 10
                include_domains:
                  type: array
                  description: >-
                    Beperk resultaten tot deze domeinen. Alleen kale hosts —
                    vooraanstaande `http(s)://` en afsluitende slashes worden
                    automatisch gestript.
                  items:
                    type: string
                  example:
                    - nytimes.com
                    - wsj.com
                exclude_domains:
                  type: array
                  description: >-
                    Sluit resultaten uit van deze domeinen. Alleen kale hosts —
                    vooraanstaande `http(s)://` en afsluitende slashes worden
                    automatisch gestript.
                  items:
                    type: string
                  example:
                    - reddit.com
                fast_mode:
                  type: boolean
                  description: >-
                    Vraag een directe, lage-latentie zoekopdracht aan met je
                    query letterlijk. Standaardmodus voert een bredere zoekpass
                    uit voor bredere resultaatdekking.
                  default: false
                scrape_options:
                  $ref: '#/components/schemas/ScrapeOptions'
              required:
                - query
            examples:
              minimal:
                summary: Minimaal — alleen query
                value:
                  query: Best Answer Engine Optimization startups
              withScrape:
                summary: Met scrape_options + domeinfilters + limiet
                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: Succesvolle reactie met zoekresultaten.
          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: >-
                      Totale credits verbruikt door deze aanvraag: 5
                      basiszoekcredits + som van per-pagina scrape credits
                      wanneer scrape_options werd gebruikt.
                    example: 10
                  result:
                    type: object
                    properties:
                      json_content:
                        type: string
                        description: Gestringifieerde JSON van het volledige zoekresultaat.
                      json_hosted_url:
                        type: string
                        description: URL naar het gehoste JSON-bestand op S3.
                        nullable: true
                      links:
                        type: array
                        description: >-
                          Gededupliceerde lijst van relevante links gevonden
                          over meerdere zoekopdrachten. Elke link kan
                          `markdown_content` en/of `html_content` bevatten
                          wanneer scrape_options werd verstrekt.
                        items:
                          $ref: '#/components/schemas/SearchLink'
                      size_exceeded:
                        type: boolean
                        description: >-
                          Waar wanneer inline per-link inhoud de 9MB
                          veiligheidslimiet overschreed. Wanneer waar, worden
                          inhoudsvelden in de reactie genuld — gebruik
                          json_hosted_url om de volledige payload op te halen.
                      credits_consumed:
                        type: integer
                        description: Zelfde waarde als de top-level credits_consumed.
        '400':
          description: >-
            Foute Aanvraag — validatie mislukt (ontbrekende query, ongeldige
            limiet, niet-ondersteunde scrape_options.formats waarde, etc.).
            Reactie body is `{ "message": "<reden>" }`.
        '401':
          description: Ongeldige API Sleutel
        '500':
          description: Interne Serverfout
      security:
        - Authorization: []
components:
  schemas:
    ScrapeOptions:
      type: object
      description: >-
        Optioneel. Wanneer opgegeven, wordt elke geretourneerde link ook
        gescraped en de inhoud ervan in de respons ingebed. Per-pagina scrape
        credits worden automatisch gefactureerd door het onderliggende
        /v1/scrapes endpoint.
      properties:
        formats:
          type: array
          description: >-
            Uitvoerformaten om aan te vragen voor elke gescrapete pagina.
            Standaard is ['markdown'] wanneer weggelaten. Voor nu worden alleen
            'html' en 'markdown' ondersteund op /v1/searches.
          items:
            type: string
            enum:
              - html
              - markdown
          default:
            - markdown
          example:
            - markdown
        remove_css_selectors:
          type: string
          description: >-
            Optie om bepaalde CSS-selectors uit de inhoud te verwijderen.
            Doorgestuurd naar /v1/scrapes. Standaard is 'default' wat
            ['nav','footer','script','style','noscript','svg',[role=alert],[role=banner],[role=dialog],[role=alertdialog],[role=region][aria-label*=skip
            i],[aria-modal=true]] verwijdert. Geef 'none' door om uit te
            schakelen, of een JSON-geformatteerde array van selectors om te
            verwijderen.
          default: default
        timeout:
          type: integer
          description: >-
            Klokbudget in seconden voor de gehele scrape-fase. Nadat dit is
            verstreken, geeft de zoekopdracht terug met welke links beschikbaar
            zijn — inhoudsvelden zullen null zijn voor links die niet klaar
            waren met scrapen.
          minimum: 1
          maximum: 60
          default: 25
    SearchLink:
      type: object
      properties:
        url:
          type: string
          description: De URL van het resultaat.
        title:
          type: string
          nullable: true
          description: De titel van de resultaatpagina.
        description:
          type: string
          nullable: true
          description: Een korte snippet of beschrijving van het resultaat.
        markdown_content:
          type: string
          nullable: true
          description: >-
            Markdown-inhoud van de pagina. Alleen aanwezig wanneer
            scrape_options.formats 'markdown' bevat. Null als het scrapen is
            mislukt, leeg was, of de globale timeout heeft bereikt. Voor
            Reddit-commentaar-URLs wordt dit gegenereerd vanuit de
            @olostep/reddit-post parser's gestructureerde JSON voor hogere
            kwaliteit.
        html_content:
          type: string
          nullable: true
          description: >-
            HTML-inhoud van de pagina. Alleen aanwezig wanneer
            scrape_options.formats 'html' bevat. Null als het scrapen is
            mislukt, leeg was, of de globale timeout heeft bereikt.
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Bearer authenticatie header in de vorm Bearer <token>, waar <token> jouw
        auth token is.

````