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

# Batch aanmaken

> Start een nieuwe batch. Je ontvangt een `id` die je kunt gebruiken om de voortgang van de batch bij te houden zoals getoond [hier](/api-reference/batches/info). Opmerking: De verwerkingstijd is constant ongeacht de batchgrootte

<Tip>
  **Ontvang een melding bij voltooiing:** Geef de `webhook`-parameter door met de URL van je endpoint om een HTTP POST te ontvangen wanneer de batch is voltooid. Zie [Webhooks](/api-reference/common/webhooks) voor details.
</Tip>

<Tip>
  **Voeg aangepaste gegevens toe:** Gebruik de `metadata`-parameter om sleutel-waardeparen op te slaan. Ondersteund op twee niveaus:

  * **Batch-niveau** — in de request body
  * **Item-niveau** — op elk item in de `items` array

  Zie [Metadata](/api-reference/common/metadata) voor details.
</Tip>


## OpenAPI

````yaml nl/openapi/batches.json POST /v1/batches
openapi: 3.0.3
info:
  title: Batches API
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/batches:
    post:
      summary: Start een nieuwe batch
      description: Start een nieuw batchproces met de gespecificeerde parameters.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      custom_id:
                        type: string
                        description: Een interne unieke identificatie voor de url.
                      url:
                        type: string
                        format: uri
                        description: URL van het item.
                      metadata:
                        allOf:
                          - $ref: '#/components/schemas/Metadata'
                        description: >-
                          Metadata op itemniveau. Voeg sleutel-waarde paren toe
                          aan individuele items voor tracking, filtering of
                          correlatie met je interne systemen.
                    required:
                      - custom_id
                      - url
                  description: Array van items die in de batch verwerkt moeten worden.
                country:
                  type: string
                  description: >-
                    Land voor de batchuitvoering. Geef in ISO 3166-1 alpha-2
                    codes zoals US(USA), IN(India), etc.
                parser:
                  type: object
                  properties:
                    id:
                      type: string
                      description: Parser die gebruikt moet worden voor de batch.
                  required:
                    - id
                  description: >-
                    Je kunt deze parameter gebruiken om de parser te
                    specificeren die je wilt gebruiken. Parsers zijn handig 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.
                links_on_page:
                  type: object
                  properties:
                    include_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filter geëxtraheerde links met behulp van glob-patronen.
                        Patronen worden vergeleken met het URL-pad van de link.
                        Let op: een enkele `*` gaat niet over `/`, dus "/blog/*"
                        komt overeen met "/blog/post-1" maar NIET met de index
                        "/blog" zelf (of "/blog?tag=x", aangezien querystrings
                        geen deel uitmaken van het pad). Om de index ook op te
                        nemen, gebruik je "/blog*" of "{/blog,/blog/**}".
                    exclude_links:
                      type: array
                      items:
                        type: string
                      description: >-
                        Filter geëxtraheerde links met behulp van glob-patronen.
                        Patronen worden vergeleken met het URL-pad van de link.
                        Let op: een enkele `*` gaat niet over `/`, dus "/blog/*"
                        komt overeen met "/blog/post-1" maar NIET met de index
                        "/blog" zelf.
                  description: >-
                    Haal alle links op die aanwezig zijn op elke pagina in de
                    batch. Links worden altijd geretourneerd als absolute URLs.
                metadata:
                  $ref: '#/components/schemas/Metadata'
                webhook:
                  type: string
                  format: uri
                  description: >-
                    HTTPS URL om een POST-verzoek te ontvangen wanneer de batch
                    voltooid is. Moet een openbaar toegankelijke URL zijn met
                    gebruik van `http://` of `https://` protocol. Kan niet
                    wijzen naar localhost of privé IP-adressen. Zie
                    [Webhooks](/api-reference/common/webhooks) voor
                    payloadformaat en retry-gedrag.
              required:
                - items
            example:
              items:
                - custom_id: product-123
                  url: https://example.com/product/123
                  metadata:
                    source: catalog_sync
                    priority: high
                - custom_id: product-456
                  url: https://example.com/product/456
              country: US
              metadata:
                batch_name: Q1 Product Sync
                initiated_by: automation
      responses:
        '200':
          description: Batch succesvol gestart.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Batch ID
                  object:
                    type: string
                    description: Het soort object. "batch" voor dit endpoint.
                  status:
                    type: string
                    description: '`in_progress` of `completed`'
                  created:
                    type: number
                    description: Gemaakt epoch
                  total_urls:
                    type: number
                    description: Aantal URLs in de batch
                  completed_urls:
                    type: number
                    description: Aantal voltooide URLs
                  parser:
                    type: string
                  country:
                    type: string
                  metadata:
                    $ref: '#/components/schemas/Metadata'
                  webhook:
                    type: string
                    description: Webhook URL om een voltooiingsmelding te ontvangen
                  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.
              example:
                id: batch_abc123def456
                object: batch
                status: in_progress
                created: 1704067200
                total_urls: 2
                completed_urls: 0
                country: US
                metadata:
                  batch_name: Q1 Product Sync
                  initiated_by: automation
        '400':
          description: >-
            Slecht verzoek vanwege onjuiste of ontbrekende parameters. Zie [Bad
            Request](/api-reference/errors/bad_request) voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: validation_error
                type: https://docs.olostep.com/api-reference/errors/bad_request
                status: 400
                title: Slecht Verzoek
                detail: >-
                  The 'items' array is required and must contain at least one
                  item.
                created: 1704067200
                metadata: {}
        '401':
          description: >-
            Authenticatiegegevens ontbreken of zijn ongeldig. Zie
            [Unauthorized](/api-reference/errors/unauthorized) voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: invalid_api_key
                type: https://docs.olostep.com/api-reference/errors/unauthorized
                status: 401
                title: Niet geautoriseerd
                detail: >-
                  Your API key is invalid. Try double-checking it or reaching
                  out to info@olostep.com if you're facing issues.
                created: 1704067200
                metadata: {}
        '402':
          description: >-
            Betaling vereist - credits uitgeput. Zie [Payment
            Required](/api-reference/errors/payment_required) voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: credits_exhausted
                type: https://docs.olostep.com/api-reference/errors/payment_required
                status: 402
                title: Betaling Vereist
                detail: >-
                  You have consumed all available credits. Please upgrade your
                  plan from the dashboard: https://www.olostep.com/auth/
                created: 1704067200
                metadata: {}
        '403':
          description: >-
            Verboden - toegang geweigerd tot deze functie. Zie
            [Forbidden](/api-reference/errors/forbidden) voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: access_denied
                type: https://docs.olostep.com/api-reference/errors/forbidden
                status: 403
                title: Verboden
                detail: >-
                  You don't have access to this feature. Please reach out to
                  info@olostep.com to get approved
                created: 1704067200
                metadata: {}
        '409':
          description: >-
            Idempotentieconflict - een verzoek met deze sleutel is in
            uitvoering. Zie [Idempotency
            Error](/api-reference/errors/idempotency_error) voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: idempotency_key_in_progress
                type: >-
                  https://docs.olostep.com/api-reference/errors/idempotency_error
                status: 409
                title: Idempotentie Fout
                detail: >-
                  A request with this idempotency key is currently being
                  processed. Please wait and retry.
                created: 1704067200
                metadata: {}
        '422':
          description: >-
            Onverwerkbare entiteit - schending van bedrijfsregel. Zie
            [Unprocessable Entity](/api-reference/errors/unprocessable_entity)
            voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: idempotency_key_reuse
                type: >-
                  https://docs.olostep.com/api-reference/errors/unprocessable_entity
                status: 422
                title: Onverwerkbare Entiteit
                detail: >-
                  A request with this idempotency key was already made with
                  different parameters. Idempotency keys must be unique per
                  request.
                created: 1704067200
                metadata: {}
        '500':
          description: >-
            Interne serverfout. Zie [Internal
            Error](/api-reference/errors/internal_error) voor details.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: error_abc123
                object: error
                code: internal_server_error
                type: https://docs.olostep.com/api-reference/errors/internal_error
                status: 500
                title: Interne Serverfout
                detail: An unexpected error occurred
                created: 1704067200
                metadata: {}
      security:
        - Authorization: []
components:
  schemas:
    Metadata:
      type: object
      description: >-
        Set van sleutel-waarde paren voor het opslaan van aanvullende informatie
        over een object. Volgt Stripe's aanpak met validatieregels: max 50
        sleutels, sleutel max 40 tekens (geen vierkante haken), waarde max 500
        tekens, alle waarden opgeslagen als strings.
      additionalProperties:
        type: string
        maxLength: 500
        description: >-
          Metadata waarde (max 500 tekens). Nummers en booleans worden
          automatisch omgezet naar strings.
      maxProperties: 50
      example:
        order_id: '12345'
        customer_name: John Doe
        priority: high
        processed: 'true'
      x-validation-rules:
        max_keys: 50
        key_max_length: 40
        key_forbidden_chars:
          - '['
          - ']'
        value_max_length: 500
        value_types:
          - string
          - number (coerced)
          - boolean (coerced)
    Error:
      type: object
      description: RFC 7807 Probleem Details foutrespons
      properties:
        id:
          type: string
          description: Unieke foutidentificatie
        object:
          type: string
          enum:
            - error
          description: Altijd 'error'
        code:
          type: string
          description: Machine-leesbare foutcode
        type:
          type: string
          format: uri
          description: URI referentie die het probleemtype identificeert
        status:
          type: integer
          description: HTTP statuscode
        title:
          type: string
          description: Korte, mens-leesbare samenvatting
        detail:
          type: string
          description: Mens-leesbare uitleg
        created:
          type: integer
          description: Unix tijdstempel
        metadata:
          $ref: '#/components/schemas/Metadata'
        errors:
          type: array
          description: Optionele array van aanvullende foutdetails
          items: {}
      required:
        - id
        - object
        - code
        - type
        - status
        - title
        - detail
        - created
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Bearer authenticatie header in de vorm Bearer <token>, waar <token> jouw
        auth token is.

````