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

# Olostep + Apify Integration

> Automatisiere Websuche, Scraping und Crawling mit Apify Actors unter Verwendung von Olostep — der API zum Suchen, Extrahieren und Strukturieren von Webdaten.

Olostep ist eine Websuche-, Scraping- und Crawling-API — eine API zum Suchen, Extrahieren und Strukturieren von Webdaten. Diese Anleitung zeigt, wie du Olostep mit Apify Actors verwenden kannst, um zuverlässige Webdatenpipelines von Anfang bis Ende zu erstellen.

## Was du bauen kannst

<CardGroup cols={2}>
  <Card title="Website scrapen" icon="file-lines">
    Extrahiere Inhalte von jeder einzelnen URL in Markdown, HTML, JSON oder Text
  </Card>

  <Card title="URLs im Batch scrapen" icon="layer-group">
    Verarbeite große Listen von URLs parallel mit strukturierten Ausgaben
  </Card>

  <Card title="Crawl erstellen" icon="spider-web">
    Entdecke und scrape verlinkte Seiten, um vollständige Datensätze zu erstellen
  </Card>

  <Card title="Karte erstellen" icon="map">
    Extrahiere alle URLs von einer Website (sitemap-ähnliche Entdeckung)
  </Card>

  <Card title="KI-gestützte Antworten" icon="robot">
    Stelle Fragen und erhalte strukturierte JSON-Antworten mit Quellen
  </Card>
</CardGroup>

## Schnellstart

### 1) Installiere Apify CLI

```bash theme={null}
npm install -g apify-cli
apify --version
```

### 2) Hol dir deinen Olostep API-Schlüssel

Vom Olostep Dashboard → API-Schlüssel.

### 3) Führe den Olostep Actor lokal aus

```bash theme={null}
cd olostep-tools/integrations/apify
apify run
```

Die Standard-Eingabedatei lokal befindet sich unter:
`olostep-tools/integrations/apify/storage/key_value_stores/default/INPUT.json`

Beispiel-Eingabe:

```json theme={null}
{
  "operation": "scrape",
  "apiKey": "YOUR_OLostep_API_KEY",
  "url_to_scrape": "https://example.com",
  "formats": "markdown"
}
```

### 4) Auf Apify (Cloud) bereitstellen

```bash theme={null}
apify login
apify push
```

Öffne dann die Apify-Konsole → Actors → führe den Actor mit deiner gewünschten Eingabe aus.

### Ausführung in der Apify-Konsole (Schritt für Schritt)

1. Öffne deinen Actor in der Apify-Konsole → Quelle → Eingabe.
2. Im Tab "Manuell" siehst du ein sichtbares Feld "Olostep API-Schlüssel". Füge deinen Schlüssel vom Olostep Dashboard ein.
3. Wähle eine Operation (Standard ist "scrape").
4. Fülle die relevanten Felder aus (für "scrape", setze "URL zum Scrapen").
5. Klicke auf Speichern → Start.
6. Wenn der Lauf beendet ist, öffne den Dataset-Tab, um die Ergebnisse herunterzuladen (JSON/CSV/Excel).

Hinweise:

* Für "URL zum Scrapen" kannst du mit oder ohne Schema einfügen. Wenn es fehlt, fügt der Actor automatisch `https://` hinzu.
* Wenn eine Seite viel JavaScript enthält und du ein Timeout siehst, setze "Wartezeit vor dem Scrapen" auf 2000–5000 ms und führe es erneut aus.

## Verfügbare Operationen

### Website scrapen

Extrahiere Inhalte von einer einzelnen URL. Ideal für Automatisierung auf Seitenebene.

<ParamField path="operation" type="constant" default="scrape">
  Muss "scrape" sein
</ParamField>

<ParamField path="apiKey" type="string" required>
  Dein Olostep API-Schlüssel (Bearer)
</ParamField>

<ParamField path="url_to_scrape" type="string" required>
  Die zu scrapende URL (muss http\:// oder https\:// enthalten)
</ParamField>

<ParamField path="formats" type="dropdown" default="markdown">
  Eine von: Markdown, HTML, JSON, Text
</ParamField>

<ParamField path="country" type="string">
  Optionaler Ländercode (z.B. "US", "GB", "CA")
</ParamField>

<ParamField path="wait_before_scraping" type="integer">
  Optionale Wartezeit in ms für JavaScript-Rendering (0–10000)
</ParamField>

<ParamField path="parser" type="string">
  Optionale Parser-ID (z.B. "@olostep/amazon-product")
</ParamField>

Ausgabefelder:

* id, url, status, formats
* markdown\_content / html\_content / json\_content / text\_content
* gehostete URLs (falls verfügbar), Seitenmetadaten

### URLs im Batch scrapen

Verarbeite viele URLs gleichzeitig mit konsistenter Formatierung und Struktur.

<ParamField path="operation" type="constant" default="batch">
  Muss "batch" sein
</ParamField>

<ParamField path="apiKey" type="string" required>
  Dein Olostep API-Schlüssel
</ParamField>

<ParamField path="batch_array" type="text" required>
  JSON-Array von Objekten mit `url` und optionalem `custom_id`\
  Beispiel: `[{"url":"https://example.com","custom_id":"site1"}]`
</ParamField>

<ParamField path="formats" type="dropdown" default="markdown">
  Eine von: Markdown, HTML, JSON, Text
</ParamField>

<ParamField path="country" type="string">
  Optionaler Ländercode
</ParamField>

<ParamField path="wait_before_scraping" type="integer">
  Optionale Wartezeit in ms für JS-Seiten
</ParamField>

<ParamField path="parser" type="string">
  Optionale Parser-ID
</ParamField>

Ausgabefelder:

* batch\_id, status, total\_urls, created\_at, formats, country, parser, urls\[]

### Crawl erstellen

Folge Links und scrape mehrere Seiten von einer Start-URL.

<ParamField path="operation" type="constant" default="crawl">
  Muss "crawl" sein
</ParamField>

<ParamField path="apiKey" type="string" required>
  Dein Olostep API-Schlüssel
</ParamField>

<ParamField path="start_url" type="string" required>
  Start-URL für den Crawl
</ParamField>

<ParamField path="max_pages" type="integer" default="10">
  Maximale Seitenanzahl zum Crawlen. Setze auf `1`, um nur die Start-URL zu scrapen.
</ParamField>

<ParamField path="formats" type="dropdown" default="markdown">
  Eine von: Markdown, HTML, JSON, Text
</ParamField>

<ParamField path="country" type="string">
  Optionaler Ländercode
</ParamField>

<ParamField path="parser" type="string">
  Optionale Parser-ID
</ParamField>

Ausgabefelder:

* crawl\_id, object, status, start\_url, max\_pages, created, formats

### Karte erstellen

Entdecke alle URLs auf einer Website und bereite sie für späteres Batch-Scraping vor.

<ParamField path="operation" type="constant" default="map">
  Muss "map" sein
</ParamField>

<ParamField path="apiKey" type="string" required>
  Dein Olostep API-Schlüssel
</ParamField>

<ParamField path="website_url" type="string" required>
  Die zu kartierende Website
</ParamField>

<ParamField path="search_query" type="string">
  Optionale Abfragefilter
</ParamField>

<ParamField path="top_n" type="integer">
  Begrenze die Anzahl der URLs
</ParamField>

<ParamField path="include_patterns" type="string">
  Einzuschließende Globs, z.B. "/products/\*\*"
</ParamField>

<ParamField path="exclude_patterns" type="string">
  Auszuschließende Globs, z.B. "/admin/\*\*"
</ParamField>

Ausgabefelder:

* map\_id, object, website\_url, total\_urls, urls\[], search\_query, top\_n

## JSON-Beispiele kopieren und einfügen (Konsole → Eingabe → JSON)

### Scrape

```json theme={null}
{
  "operation": "scrape",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "url_to_scrape": "https://www.wikipedia.org",
  "formats": "markdown",
  "wait_before_scraping": 2000
}
```

### Batch

```json theme={null}
{
  "operation": "batch",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "batch_array": "[{\"url\":\"https://example.com\",\"custom_id\":\"site1\"},{\"url\":\"https://olostep.com\",\"custom_id\":\"site2\"}]",
  "formats": "json"
}
```

### Crawl

```json theme={null}
{
  "operation": "crawl",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "start_url": "https://docs.example.com",
  "max_pages": 50,
  "formats": "markdown"
}
```

### Map

```json theme={null}
{
  "operation": "map",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "website_url": "https://example.com",
  "include_patterns": "/blog/**",
  "top_n": 200
}
```

### Answers

```json theme={null}
{
  "operation": "answers",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "task": "What is the latest funding round of Olostep? Provide company, round, date, amount.",
  "json": "{\"company\":\"\",\"round\":\"\",\"date\":\"\",\"amount\":\"\"}"
}
```

## Beispiel-Workflows

<AccordionGroup>
  <Accordion title="Produkte entdecken und scrapen">
    1. Karte erstellen → "/products/\*\*" einbeziehen
    2. URLs parsen → Batch-Array erstellen
    3. URLs im Batch scrapen → Formate: JSON
    4. An Google Sheets / Airtable senden
  </Accordion>

  <Accordion title="Tägliche Inhaltsüberwachung">
    1. Actor planen (täglich)
    2. Website scrapen → Formate: Markdown
    3. Mit LLM zusammenfassen
    4. Benachrichtigung auf Slack
  </Accordion>

  <Accordion title="Wissensdatenbank des Wettbewerbers">
    1. Crawl erstellen (Blog/Dokumente)
    2. Ausgaben in Notion speichern
    3. Wöchentlich mit Zeitplan aktualisieren
  </Accordion>
</AccordionGroup>

## Spezialisierte Parser

Olostep unterstützt Parser, um Daten für beliebte Seiten zu strukturieren.

<CardGroup cols={2}>
  <Card title="Amazon-Produkt" icon="amazon">
    `@olostep/amazon-product` → Titel, Preis, Bewertung, Rezensionen, Bilder, Varianten
  </Card>

  <Card title="Google-Suche" icon="google">
    `@olostep/google-search` → Ergebnisse, Titel, Snippets, URLs
  </Card>

  <Card title="Google Maps" icon="map">
    `@olostep/google-maps` → Geschäftsinformationen, Rezensionen, Bewertungen, Standort
  </Card>

  <Card title="Weitere Parser" icon="cart-shopping" href="https://www.olostep.com/store">
    Entdecke E-Mail-Extraktoren, Social-Handle-Finder, Kalender-Link-Extraktoren und mehr
  </Card>
</CardGroup>

## Beste Praktiken

<AccordionGroup>
  <Accordion title="Bevorzuge Batch für 3+ URLs">
    Schneller, günstiger, einfacher zu überwachen und respektiert Ratenlimits.
  </Accordion>

  <Accordion title="Verwende angemessene Wartezeiten">
    JS-lastige Seiten: erhöhe `wait_before_scraping` (z.B. 2000–5000ms).
  </Accordion>

  <Accordion title="Filtere vor dem Scrapen">
    Vermeide unnötige Aufgaben — überprüfe zuerst Änderungen, halte den Deduplizierungszustand.
  </Accordion>

  <Accordion title="Speichere große Inhalte über gehostete URLs">
    Verwende gehostete Ausgaben, um Größenbeschränkungen für Nutzlasten in Apify-Flows zu umgehen.
  </Accordion>

  <Accordion title="Behandle asynchrone Operationen als langlaufend">
    Batch/Crawl/Map geben IDs zurück; später abrufen oder mit Verzögerung verketten.
  </Accordion>

  <Accordion title="Behandle vorübergehende Timeouts sauber">
    Wenn du einen 504 oder vorübergehenden Timeout siehst, versucht der Actor automatisch einmal mit einer kurzen Wartezeit erneut.\
    Du kannst auch "Wartezeit vor dem Scrapen" auf 2000–5000 ms für JS-lastige Seiten setzen.
  </Accordion>
</AccordionGroup>

## Fehlerbehebung

<AccordionGroup>
  <Accordion title="Authentifizierung fehlgeschlagen">
    * Überprüfe den API-Schlüssel vom Dashboard
    * Entferne nachfolgende Leerzeichen
    * Erneut im Apify-Eingabeformular eingeben
  </Accordion>

  <Accordion title="Leerer Inhalt">
    * Wartezeit erhöhen
    * Überprüfe, ob die URL öffentlich ist / nicht login-geschützt
    * Versuche ein anderes Ausgabeformat
  </Accordion>

  <Accordion title="Ratenlimit überschritten">
    * Läufe über Zeitplan verteilen
    * Bevorzuge Batch für viele URLs
    * Upgrade des Olostep-Plans bei Bedarf
  </Accordion>

  <Accordion title="Blockierte oder dynamische Seiten">
    * Versuche den Länderparameter
    * Passe Wartezeit und Parser an
    * Kontaktiere den Support für Anleitungen
  </Accordion>
</AccordionGroup>

## Preisgestaltung

Olostep berechnet nach API-Nutzung (unabhängig von Apify):

* Scrapes → pro Scrape
* Batches → pro URL
* Crawls → pro Seite
* Maps → pro Operation

Siehe `https://www.olostep.com/pricing`.

## Sicherheit

* Dein API-Schlüssel wird zur Laufzeit als Bearer-Token gesendet.
* Schlüssel nicht in die Versionskontrolle einchecken; Apify speichert Eingaben im Key-Value Store.
* In der lokalen Entwicklung, halte Schlüssel in `storage/key_value_stores/default/INPUT.json` (gitignoriert).

## Verwandte Ressourcen

<CardGroup cols={2}>
  <Card title="Scrapes API" icon="file-lines" href="/features/scrapes">
    Extrahiere LLM-freundliches Markdown, HTML, Text oder strukturiertes JSON von jeder URL.
  </Card>

  <Card title="Batches API" icon="layer-group" href="/features/batches">
    Verarbeite bis zu 10k URLs gleichzeitig und rufe Ergebnisse später ab.
  </Card>

  <Card title="Crawls API" icon="spider-web" href="/features/crawls">
    Entdecke und scrape den Inhalt einer Seite rekursiv.
  </Card>

  <Card title="Maps API" icon="map" href="/features/maps">
    Erhalte alle URLs auf einer Website, um Batch-Scrapes vorzubereiten.
  </Card>
</CardGroup>

## Support

<CardGroup cols={2}>
  <Card title="Apify Website" icon="link" href="https://apify.com">
    Apify-Plattform
  </Card>

  <Card title="Apify Docs" icon="book" href="https://docs.apify.com">
    Apify-Plattform & SDK-Dokumentation
  </Card>

  <Card title="Dokumentation" icon="book" href="https://docs.olostep.com">
    Vollständige API-Dokumentation
  </Card>

  <Card title="Support E-Mail" icon="envelope" href="mailto:info@olostep.com">
    [info@olostep.com](mailto:info@olostep.com)
  </Card>
</CardGroup>
