> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cleariflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Web-Scraping-API

> Die Cleariflow Web-Scraping-API liefert JavaScript-gerenderte Seitenextraktion über eine moderne RESTful JSON-Schnittstelle mit SSRF-Schutz und flexiblen Rendering-Optionen.

## Erste Schritte

<Card title="Synchrones Scraping" icon="browser" href="scrape/scrape">
  Der `scrape`-Endpunkt startet eine Browser-Sitzung und liefert gerendertes HTML in einer einzigen Anfrage — ideal für Integrationen mit niedriger Latenz.
</Card>

<Card title="Asynchrone Jobs" icon="clock" href="scrape/jobs">
  Die `jobs`-Endpunkte stellen Scraping-Aufgaben in die Warteschlange und ermöglichen das Abfragen von Status und Ergebnissen — ideal für hohes Volumen oder langsame Seiten.
</Card>

### REST-Architektur

Die Web-Scraping-API folgt REST-Prinzipien mit vorhersehbaren, ressourcenorientierten URLs und standardmäßigen HTTP-Statuscodes für nahtlose Integration und Fehlerbehandlung.

### HTTPS-Sicherheit

Alle API-Kommunikation wird mit TLS 1.2 oder höher verschlüsselt, um Datenintegrität und Datenschutz zu gewährleisten.

### API-Versionierung

Die Web-Scraping-API bleibt durch Versionierung abwärtskompatibel und befindet sich derzeit in Version 1.

### Authentifizierung

Ihr API-Schlüssel ist die ausschließliche Berechtigung für den Zugriff auf die Web-Scraping-API. Jeder Cleariflow-Dienst erfordert einen eigenen Schlüssel. Übergeben Sie Ihren Schlüssel im JSON-Body als `api_key`.

### Basis-URL

```
https://scrape.cleariflow.com
```

### Browser-Rendering

Seiten werden in einem echten Headless-Browser gerendert. JavaScript wird vollständig ausgeführt, bevor Inhalte zurückgegeben werden. Integrierter SSRF-Schutz blockiert Anfragen an localhost und private IP-Bereiche.

## Antwort- und Fehlercodes

Bei fehlgeschlagenen Anfragen liefert die API strukturierte JSON-Fehlerantworten mit spezifischen Codes und Beschreibungen zur effektiven Fehlerbehebung.

| Code | Typ                   | Beschreibung                                                                                                    |
| ---- | --------------------- | --------------------------------------------------------------------------------------------------------------- |
| 200  | OK                    | Alles funktionierte wie erwartet.                                                                               |
| 202  | Accepted              | Asynchroner Job wurde erfolgreich in die Warteschlange gestellt.                                                |
| 400  | Bad request           | Fehlerhafte Anfrage — ungültige URL, blockiertes Ziel oder fehlerhafte Nutzlast.                                |
| 401  | Unauthorized          | Die Anfrage war nicht zulässig — in der Regel fehlt der API-Schlüssel oder er ist ungültig.                     |
| 422  | Quota reached         | Die Anfrage wurde abgebrochen, da nicht genügend API-Guthaben vorhanden ist (kostenlose Tarife).                |
| 429  | Too many requests     | Das Anfragenlimit pro Sekunde wurde erreicht. Bei kostenlosen Tarifen gilt ein Limit von 1 Anfrage pro Sekunde. |
| 500  | Internal server error | Die Anfrage konnte aufgrund eines Serverfehlers nicht abgeschlossen werden.                                     |
