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

# Maak Scrape

> [Scrape](https://docs.olostep.com/features/scrapes) een url met de opgegeven configuratie en verkrijg inhoud.

<Tip>
  **Optionele caching:** Geef `max_age` (in seconden) door om een recente scrape met dezelfde parameters opnieuw te gebruiken in plaats van de pagina opnieuw op te halen. Standaard is `0` (altijd vers). In de dashboard playground is de standaard 24 uur. Zie [Caching](/features/scrapes#caching) voor details.
</Tip>


## OpenAPI

````yaml nl/openapi/scrapes.json POST /v1/scrapes
openapi: 3.0.3
info:
  title: Scrapes API
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/scrapes:
    post:
      summary: Start een webpagina scrape
      description: >-
        Deze endpoint stelt gebruikers in staat om een webpagina scrape te
        starten met verschillende configuraties.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url_to_scrape:
                  type: string
                  format: uri
                  description: De URL om te beginnen met scrapen.
                wait_before_scraping:
                  type: integer
                  description: >-
                    Tijd om te wachten in milliseconden voordat de scraping
                    begint.
                formats:
                  type: array
                  items:
                    type: string
                    enum:
                      - html
                      - markdown
                      - text
                      - json
                      - raw_pdf
                      - screenshot
                  description: Formaten waarin je de inhoud wilt.
                remove_css_selectors:
                  type: string
                  enum:
                    - default
                    - none
                    - array
                  description: >-
                    Optie om bepaalde CSS-selectors uit de inhoud te
                    verwijderen. Optioneel kun je ook een JSON-stringified array
                    van specifieke selectors doorgeven die je wilt verwijderen.
                    De CSS-selectors die worden verwijderd wanneer deze optie is
                    ingesteld op standaard zijn
                    ['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: Wachten
                        required:
                          - type
                          - milliseconds
                        properties:
                          type:
                            type: string
                            enum:
                              - wait
                            description: Wacht een opgegeven aantal milliseconden
                          milliseconds:
                            type: integer
                            minimum: 0
                            description: Tijd om te wachten in milliseconden
                      - type: object
                        title: Klikken
                        required:
                          - type
                          - selector
                        properties:
                          type:
                            type: string
                            enum:
                              - click
                            description: Klik op een element
                          selector:
                            type: string
                            description: CSS-selector voor het element om op te klikken
                      - type: object
                        title: Vul Invoer In
                        required:
                          - type
                          - selector
                          - value
                        properties:
                          type:
                            type: string
                            enum:
                              - fill_input
                            description: Vul een invoerelement met een waarde in
                          selector:
                            type: string
                            description: CSS-selector voor het invoerelement
                          value:
                            type: string
                            description: Tekst om in te voeren in de invoer
                      - type: object
                        title: Scroll
                        required:
                          - type
                          - direction
                          - amount
                        properties:
                          type:
                            type: string
                            enum:
                              - scroll
                            description: Scroll de pagina
                          direction:
                            type: string
                            enum:
                              - up
                              - down
                              - left
                              - right
                            description: Richting om te scrollen
                          amount:
                            type: number
                            description: Hoeveelheid om te scrollen in pixels
                  description: >-
                    Acties om uit te voeren op de pagina voordat je de inhoud
                    krijgt.
                country:
                  type: string
                  description: >-
                    Woonland van waaruit het verzoek moet worden geladen. 
                    Ondersteunde waarden zijn: - US (Verenigde Staten) - CA
                    (Canada) - IT (Italië) - IN (India) - GB (Engeland) - JP
                    (Japan) - MX (Mexico) - AU (Australië) - ID (Indonesië) - UA
                    (VAE) - RU (Rusland) - RANDOM  Sommige operaties, zoals het
                    scrapen van Google Search en Google News, ondersteunen alle
                    landen.
                transformer:
                  type: string
                  enum:
                    - postlight
                    - none
                  description: >-
                    Specificeer de HTML-transformator die je wilt gebruiken,
                    indien van toepassing. De Mercury Parser-bibliotheek van
                    Postlight wordt gebruikt om advertenties en andere
                    ongewenste inhoud uit de gescrapete inhoud te verwijderen.
                remove_images:
                  type: boolean
                  description: >-
                    Optie om afbeeldingen uit de gescrapete inhoud te
                    verwijderen. Standaard is false.
                  default: false
                remove_class_names:
                  type: array
                  items:
                    type: string
                  description: Lijst van class-namen om uit de inhoud te verwijderen.
                parser:
                  type: object
                  properties:
                    id:
                      type: string
                      description: ID van de parser die je wilt gebruiken.
                  required:
                    - id
                  description: >-
                    Wanneer je json als formaat definieert, kun je deze
                    parameter gebruiken om de parser te specificeren die je wilt
                    gebruiken. Parsers zijn nuttig om gestructureerde inhoud uit
                    webpagina's te halen. Olostep heeft een paar ingebouwde
                    parsers voor de meest voorkomende webpagina's, en je kunt
                    ook je eigen parsers maken.
                llm_extract:
                  type: object
                  properties:
                    schema:
                      type: object
                      description: Schema voor de LLM-extractie.
                links_on_page:
                  type: object
                  properties:
                    query_to_order_links_by:
                      type: string
                      description: >-
                        Sorteert de geretourneerde links op hun gelijkenis met
                        de opgegeven querytekst, waarbij de meest relevante
                        overeenkomsten eerst worden geprioriteerd.
                    include_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filter geëxtraheerde links met behulp van glob-patronen
                        met `include_links`. Patronen komen overeen met het
                        URL-pad van de link. Gebruik patronen zoals "*.pdf" om
                        bestandsextensies te matchen, "/blog/*" voor specifieke
                        paden, of volledige URLs zoals "https://example.com/*".
                        Ondersteunt wildcards (*), tekenklassen ([a-z]), en
                        alternatie ({pattern1,pattern2}). Let op: een enkele `*`
                        kruist geen `/`, dus "/blog/*" komt overeen met
                        "/blog/post-1" maar NIET de index "/blog" zelf (of
                        "/blog?tag=x", aangezien querystrings geen deel uitmaken
                        van het pad). Om de index ook op te nemen, gebruik
                        "/blog*" of "{/blog,/blog/**}".
                    exclude_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filter geëxtraheerde links met behulp van glob-patronen
                        met `exclude_links`. Patronen komen overeen met het
                        URL-pad van de link. Gebruik patronen zoals "*.pdf" om
                        bestandsextensies te matchen, "/blog/*" voor specifieke
                        paden, of volledige URLs zoals "https://example.com/*".
                        Ondersteunt wildcards (*), tekenklassen ([a-z]), en
                        alternatie ({pattern1,pattern2}). Let op: een enkele `*`
                        kruist geen `/`, dus "/blog/*" komt overeen met
                        "/blog/post-1" maar NIET de index "/blog" zelf (of
                        "/blog?tag=x", aangezien querystrings geen deel uitmaken
                        van het pad).
                  description: >-
                    Met deze optie kun je alle links krijgen die aanwezig zijn
                    op de pagina die je scrapt. Links worden altijd
                    geretourneerd als absolute URLs.
                screen_size:
                  type: object
                  properties:
                    screen_type:
                      type: string
                      enum:
                        - default
                        - mobile
                        - desktop
                      description: >-
                        Type scherm. Desktop gebruikt 1920x1080 pixels, mobiel
                        gebruikt 414x896 pixels, en standaard gebruikt 1024x768
                        pixels.
                    screen_width:
                      type: integer
                      description: >-
                        Breedte van het scherm in pixels. Desktop: 1920px,
                        mobiel: 414px, standaard: 768px.
                    screen_height:
                      type: integer
                      description: >-
                        Hoogte van het scherm in pixels. Desktop: 1080px,
                        mobiel: 896px, standaard: 1024px.
                  description: >-
                    Configuratie voor schermgrootte. Vooraf ingestelde
                    afmetingen zijn beschikbaar via screen_type: desktop
                    (1920x1080), mobile (414x896), of default (768x1024).
                screenshot:
                  type: object
                  properties:
                    full_page:
                      type: boolean
                      description: >-
                        Als true wordt doorgegeven, wordt de volledige pagina
                        screenshot gemaakt nadat naar de onderkant van de site
                        is gescrold.
                metadata:
                  type: object
                  description: >-
                    Door de gebruiker gedefinieerde metadata. Nog niet
                    ondersteund.
                max_age:
                  type: integer
                  minimum: 0
                  default: 0
                  description: >-
                    Maximale acceptabele leeftijd van gecachte inhoud, in
                    seconden. Wanneer een overeenkomende scrape al bestaat en
                    nieuwer is dan max_age seconden, retourneert Olostep het
                    opgeslagen resultaat in plaats van een nieuwe browser scrape
                    te starten. Standaard is 0 (altijd vers scrapen). In de
                    dashboard playground is de standaard 86400 (24 uur). De
                    maximaal toegestane waarde is 604800 (7 dagen). Zie de
                    sectie Caching in de Scrapes feature docs voor details.
              required:
                - url_to_scrape
      responses:
        '200':
          description: Succesvolle respons met de details van de scrape initiatie.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Scrape ID
                  object:
                    type: string
                    description: Het soort object. "scrape" voor dit endpoint.
                  created:
                    type: number
                    description: Gemaakt epoch
                  metadata:
                    type: object
                    description: Door de gebruiker gedefinieerde metadata.
                  url_to_scrape:
                    type: string
                    description: De URL die is gescraped.
                  result:
                    type: object
                    properties:
                      html_content:
                        type: string
                      markdown_content:
                        type: string
                      text_content:
                        type: string
                      json_content:
                        type: string
                        description: Inhoud van 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: >-
                      Aantal credits verbruikt door dit verzoek. Wordt ingevuld
                      nadat de uitvoering is voltooid. Credits zijn de bron van
                      waarheid voor facturering.
                  cost_usd:
                    type: number
                    nullable: true
                    description: >-
                      Geschatte kosten in USD voor dit verzoek. Wordt ingevuld
                      nadat de uitvoering is voltooid. Berekend op basis van
                      verbruikte credits en je tariefplan — 99% nauwkeurig, maar
                      credits_consumed is de gezaghebbende waarde.
        '400':
          description: >-
            Het verzoek kan niet worden uitgevoerd vanwege een probleem met de
            doel-URL. Veelvoorkomende codes: `dns_resolution_failed` (domein
            bestaat niet), `invalid_url` (onjuiste URL).
          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: Betaling vereist — ongeldige of uitgeputte API-sleutel.
        '404':
          description: De gevraagde scrape ID is niet gevonden.
        '500':
          description: Interne serverfout.
        '502':
          description: >-
            De doelwebsite heeft een TLS/SSL-configuratieprobleem. `error.code`
            is altijd `tls_error`; `error.detail` bevat de specifieke low-level
            SSL foutcode (bijv. `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: Low-level SSL foutcode voor diagnostiek.
                      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: >-
            De scrape is niet voltooid binnen het wachttijd budget (~55
            seconden). De doelpagina kan traag zijn, bot-beschermd, of tijdelijk
            niet beschikbaar. Veilig om opnieuw te proberen.
          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: >-
        Bearer authenticatie header in de vorm Bearer <token>, waar <token> jouw
        auth token is.

````