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

# Asynchrone Jobs

> Die `jobs`-Endpunkte stellen Screenshot-Aufgaben in die Warteschlange und ermöglichen das Abfragen von Status und Ergebnissen — ideal für hohes Volumen oder lang laufende Aufnahmen.

## Erste Schritte

### Basis-URL

```
https://screenshot.cleariflow.com/v1/jobs
```

## Job erstellen

Stellen Sie einen asynchronen Screenshot in die Warteschlange mit derselben `ScreenshotRequest`-Nutzlast wie beim synchronen Endpunkt.

### Beispielanfrage

```bash theme={"system"}
curl -X POST 'https://screenshot.cleariflow.com/v1/jobs' \
  -H 'Content-Type: application/json' \
  -d '{
    "request": {
      "api_key": "YOUR_UNIQUE_API_KEY",
      "url": "https://cleariflow.com"
    },
    "priority": 10
  }'
```

Eine erfolgreiche Anfrage liefert eine Job-ID:

<ResponseExample>
  ```json theme={"system"}
  {
    "job_id": "550e8400-e29b-41d4-a716-446655440000"
  }
  ```
</ResponseExample>

### Parameter zur Job-Erstellung

<ParamField body="request" type="Object" required>
  Ein `ScreenshotRequest`-Objekt mit denselben Feldern wie der synchrone Screenshot-Endpunkt (`url`, `render`, `actions`, `cookies` usw.).
</ParamField>

<ParamField body="priority" type="Integer">
  Job-Priorität. Höhere Werte werden zuerst verarbeitet. Standard: 0.
</ParamField>

## Job-Status abrufen

Fragen Sie einen Job anhand der ID ab, um den Status zu prüfen und Ergebnisse nach Abschluss abzurufen.

### Basis-URL

```
https://screenshot.cleariflow.com/v1/jobs/{job_id}
```

### Beispielanfrage

```bash theme={"system"}
curl 'https://screenshot.cleariflow.com/v1/jobs/550e8400-e29b-41d4-a716-446655440000'
```

Während der Job läuft:

<ResponseExample>
  ```json theme={"system"}
  {
    "job_id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "running"
  }
  ```
</ResponseExample>

Bei erfolgreichem Abschluss:

<ResponseExample>
  ```json theme={"system"}
  {
    "job_id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "done",
    "result": {
      "ok": true,
      "image_base64": "/9j/4AAQSkZJRg...",
      "content_type": "image/jpeg",
      "meta": {
        "elapsed_ms": 8123
      }
    }
  }
  ```
</ResponseExample>

### Job-Statuswerte

| Status    | Beschreibung                                                  |
| --------- | ------------------------------------------------------------- |
| `queued`  | Job wartet in der Warteschlange.                              |
| `running` | Browser-Sitzung ist aktiv.                                    |
| `done`    | Screenshot abgeschlossen; `result` enthält die Ausgabe.       |
| `failed`  | Screenshot fehlgeschlagen; `error` enthält eine Beschreibung. |

### Antwortparameter

<ResponseField name="job_id" type="String">
  Eindeutige Kennung für den asynchronen Job.
</ResponseField>

<ResponseField name="status" type="String">
  Aktueller Job-Status: `queued`, `running`, `done` oder `failed`.
</ResponseField>

<ResponseField name="result" type="Object">
  Das Screenshot-Ergebnisobjekt (gleiche Struktur wie die Antwort des synchronen Endpunkts). Vorhanden, wenn `status` `done` ist.
</ResponseField>

<ResponseField name="error" type="String">
  Fehlermeldung. Vorhanden, wenn `status` `failed` ist.
</ResponseField>

<ResponseField name="meta" type="Object">
  Zusätzliche Metadaten zur Job-Ausführung.
</ResponseField>
