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

# Crawl erstellen

> Startet einen neuen Crawl. Du erhältst eine `id`, um den Fortschritt zu verfolgen. Der Vorgang kann je nach Website, Tiefe und Seitenparametern 1-10 Minuten dauern.

<Tip>
  **Benachrichtigung bei Abschluss:** Übergebe den `webhook`-Parameter mit deiner Endpoint-URL, um einen HTTP POST zu erhalten, wenn der Crawl abgeschlossen ist. Siehe [Webhooks](/api-reference/common/webhooks) für Details.
</Tip>


## OpenAPI

````yaml de/openapi/crawls.json POST /v1/crawls
openapi: 3.0.3
info:
  title: Crawl-API
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/crawls:
    post:
      summary: Starte einen neuen Crawl
      description: Startet einen neuen Crawl-Prozess mit den angegebenen Parametern.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                start_url:
                  type: string
                  description: Der Startpunkt des Crawls.
                include_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    URL-Pfadmuster, die im Crawl mit Glob-Syntax eingeschlossen
                    werden sollen.  Standardmäßig `/**`, was alle URLs
                    einschließt. Verwende Muster wie `/blog/**`, um spezifische
                    Abschnitte zu crawlen (z.B. nur Blog-Seiten),
                    `/products/*.html` für Produktseiten oder mehrere Muster für
                    verschiedene Abschnitte. Unterstützt
                    Standard-Glob-Funktionen wie * (beliebige Zeichen) und **
                    (rekursive Übereinstimmung).
                exclude_urls:
                  type: array
                  items:
                    type: string
                  description: >-
                    URL-Pfadnamen im Glob-Muster, die ausgeschlossen werden
                    sollen. Zum Beispiel: `/careers/**`. Ausgeschlossene URLs
                    haben Vorrang vor eingeschlossenen URLs.
                max_pages:
                  type: number
                  description: >-
                    Maximale Anzahl von Seiten, die gecrawlt werden sollen.
                    Empfohlen für die meisten Anwendungsfälle wie das Crawlen
                    einer gesamten Website.
                max_depth:
                  type: number
                  description: >-
                    Maximale Tiefe des Crawls. Nützlich, um nur bis zu n-Grad
                    von Links zu extrahieren.
                include_external:
                  type: boolean
                  description: Crawl von externen Links ersten Grades.
                include_subdomain:
                  type: boolean
                  description: >-
                    Einbeziehen von Subdomains der Website. Standardmäßig
                    `false`.
                search_query:
                  type: string
                  description: >-
                    Eine optionale Suchanfrage, um spezifische Links zu finden
                    und die Ergebnisse auch nach Relevanz zu sortieren.
                top_n:
                  type: number
                  description: >-
                    Eine optionale Zahl, um nur die N relevantesten Links auf
                    jeder Seite gemäß der Suchanfrage zu crawlen.
                webhook:
                  type: string
                  format: uri
                  description: >-
                    HTTPS-URL, um eine POST-Anfrage zu erhalten, wenn der Crawl
                    abgeschlossen ist. Muss eine öffentlich zugängliche URL mit
                    `http://` oder `https://`-Protokoll sein. Kann nicht auf
                    localhost oder private IP-Adressen verweisen. Siehe
                    [Webhooks](/api-reference/common/webhooks) für das
                    Payload-Format und das Wiederholungsverhalten.
                timeout:
                  type: number
                  description: >-
                    Beende den Crawl nach n Sekunden mit den bis dahin
                    abgeschlossenen Seiten. Kann ~10s extra von der angegebenen
                    Timeout-Zeit in Anspruch nehmen.
                follow_robots_txt:
                  type: boolean
                  description: >-
                    Ob die robots.txt-Regeln beachtet werden sollen. Wenn auf
                    `false` gesetzt, wird der Crawler die Website unabhängig von
                    den Disallow-Direktiven in robots.txt scrapen. Standardmäßig
                    `true`.
                  default: true
                scrape_options:
                  type: object
                  description: >-
                    Steuert, was jede einzelne Seitenabfrage von der Olostep-API
                    anfordert. Alle Felder sind optional.
                  properties:
                    formats:
                      type: array
                      items:
                        type: string
                        enum:
                          - html
                          - markdown
                          - text
                          - json
                          - screenshot
                      description: >-
                        Ausgabeformate, die für jede gecrawlte Seite angefordert
                        werden. Standardmäßig `["html", "markdown"]`, wenn
                        weggelassen. `html` wird immer automatisch
                        eingeschlossen. `json` wird automatisch hinzugefügt,
                        wenn ein `parser` bereitgestellt wird. Hinweis:
                        `raw_pdf` wird nicht unterstützt — PDFs können nicht
                        gecrawlt werden.
                      example:
                        - markdown
                        - screenshot
                    parser:
                      type: string
                      description: >-
                        Parser-Name, der auf jeder Seite ausgeführt wird, um
                        strukturierten `json`-Output zu erzeugen (z.B.
                        `"@olostep/extract-emails"`). Fügt automatisch `json` zu
                        `formats` hinzu, wenn gesetzt.
                      example: '@olostep/extract-emails'
              required:
                - start_url
                - max_pages
      responses:
        '200':
          description: Crawl erfolgreich gestartet.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Crawl-ID
                  object:
                    type: string
                    description: Die Art des Objekts. "crawl" für diesen Endpunkt.
                  status:
                    type: string
                    description: '`in_progress` oder `completed`'
                  created:
                    type: number
                    description: Erstellungszeit im Epoch-Format
                  start_date:
                    type: string
                    description: Erstellungszeit im Datumsformat
                  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: Die aktuelle Tiefe des Crawl-Prozesses.
                  pages_count:
                    type: number
                    description: Anzahl der gecrawlten Seiten
                  webhook:
                    type: string
                  follow_robots_txt:
                    type: boolean
                  credits_consumed:
                    type: integer
                    nullable: true
                    description: >-
                      Anzahl der durch diese Anfrage verbrauchten Credits. Wird
                      nach Abschluss der Ausführung ausgefüllt. Credits sind die
                      Grundlage für die Abrechnung.
                  cost_usd:
                    type: number
                    nullable: true
                    description: >-
                      Geschätzte Kosten in USD für diese Anfrage. Wird nach
                      Abschluss der Ausführung ausgefüllt. Berechnet aus den
                      verbrauchten Credits und deinem Tarif — 99% genau, aber
                      credits_consumed ist der maßgebliche Wert.
        '400':
          description: Ungültige Anfrage aufgrund falscher oder fehlender Parameter.
        '500':
          description: Interner Serverfehler.
      security:
        - Authorization: []
components:
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Bearer-Authentifizierungsheader in der Form Bearer <token>, wobei
        <token> dein Authentifizierungstoken ist.

````