# Antwortformat: jedes Feld einer Suche erklärt

> Search-API-Antwort: jedes Feld von /search und /extract, die acht content_status-Werte und target_status, mit Beispiel. Ohne KYC, mit Krypto zahlen.

- URL: https://llmwebsearch.com/de/docs/response/
- Zuletzt aktualisiert: 2026-10-22
- Herausgeber: LLMWebSearch (https://llmwebsearch.com)

Eine Suchantwort ist ein einziges JSON-Objekt: einige Felder zum Aufruf, dann ein sortiertes `results`-Array. Jedes Ergebnis gibt an, ob seine Seite gelesen wurde, und enthält dann den Inhalt. Hier finden Sie jedes Feld, mit den Status, die ein Agent behandeln sollte.

**Kurze Antwort — Was gibt die LLMWebSearch API für eine Suche zurück?**

**LLMWebSearch** gibt JSON mit `query`, `created_at`, `credits_used` und einem sortierten `results`-Array zurück. Jedes Ergebnis hat seine Position, Titel, URL, Host und Snippet sowie einen `content_status`; wenn er `ok` ist, steht der Hauptinhalt der Seite in `content` mit einem `word_count`. Eine Suche mit bis zu 3 gelesenen Seiten kostet 1 Credit, ab 1,20 $/1K Suchanfragen Stand Oktober 2026. Ohne KYC; mit Krypto bezahlen.

## Welche Felder beschreiben den Aufruf?

Oberste Ebene einer `/search`-Antwort.

| Field | Type | Bedeutung |
| --- | --- | --- |
| `query` | string | Die Suchanfrage, wie wir sie ausgeführt haben, nach dem Entfernen von Leerzeichen |
| `created_at` | string | Wann die Suche ausgeführt wurde, ISO 8601 in UTC |
| `credits_used` | integer | Was der Aufruf gekostet hat: 1 oder 2, wenn `read` 4 bis 10 war |
| `results` | array | Sortierte Ergebnisse, bestes zuerst, höchstens `max_results` Einträge |

## Welche Felder enthält jedes Ergebnis?

Ein Feld, das die Seite oder das Suchergebnis nicht liefert, wird weggelassen statt leer gesendet.

| Field | Type | Wenn vorhanden | Bedeutung |
| --- | --- | --- | --- |
| `position` | integer | Immer | Position in der Suche, beginnend bei 1 |
| `title` | string | Immer | Titel des Ergebnisses |
| `url` | string | Immer | Adresse der Seite |
| `host` | string | Immer | Hostname der Seite, praktisch zum Gruppieren oder Zitieren |
| `snippet` | string | Immer | Kurzer Auszug, den die Suche anzeigt |
| `published_at` | string | Wenn ein Datum bekannt ist | Veröffentlichungsdatum von der Seite oder aus dem Suchergebnis |
| `content_status` | string | Immer | Ob die Seite gelesen wurde und falls nicht, warum |
| `content` | string | Wenn `content_status` gleich `ok` ist | Hauptinhalt als Markdown oder reiner Text, abgeschnitten bei `max_chars` |
| `word_count` | integer | Wenn `content_status` gleich `ok` ist | Wörter im gesamten extrahierten Text, gezählt vor dem Abschneiden |
| `target_status` | integer | Mit `target_refused` | Der HTTP-Status, den die Website geantwortet hat, etwa 403 oder 429 |

## Was bedeutet jeder content_status?

Nichts davon ändert den Preis der Suchanfrage. Diese Angaben beschreiben eine einzelne Seite, nie den gesamten Aufruf.

| `content_status` | Bedeutung | Was ein Agent tun sollte |
| --- | --- | --- |
| `ok` | Die Seite wurde gelesen; `content` enthält ihren Haupttext | Verwenden Sie ihn und zitieren Sie die `url` |
| `not_requested` | Das Ergebnis liegt über dem `read`-Zähler | Erhöhen Sie `read` oder lesen Sie die Seite bei Bedarf über `/extract` |
| `blocked_by_robots` | Die robots.txt der Website erlaubt unserem Reader auf dieser Seite keinen Zugriff | Verlassen Sie sich auf das Snippet oder eine andere Quelle |
| `blocked_by_site_policy` | Die Website deklariert `Content-Signal: ai-input=no` | Verlassen Sie sich auf das Snippet oder eine andere Quelle |
| `target_refused` | Die Website hat die Anfrage abgelehnt; siehe `target_status` | Versuchen Sie die Seite nicht erneut; nutzen Sie eine andere Quelle |
| `fetch_failed` | DNS-, TLS- oder Verbindungsfehler oder die Seite existiert nicht mehr | Versuchen Sie ein anderes Ergebnis; ein späterer erneuter Versuch kann klappen |
| `fetch_timeout` | Die Seite hat nicht innerhalb von 15 Sekunden geantwortet | Versuchen Sie ein anderes Ergebnis; ein späterer erneuter Versuch kann klappen |
| `unsupported_content` | Der Link ist eine Datei, die wir nicht in Text umwandeln können | Verwenden Sie das Snippet oder ein anderes Ergebnis |

## Wie sieht eine vollständige Antwort aus?

Das folgende Beispiel fragte 5 Ergebnisse ab, von denen die ersten 4 gelesen wurden, daher kostete es 2 Credits. Ergebnisse 1 und 3 wurden gelesen. Ergebnis 2 gehört zu einer Website, deren robots.txt unseren Reader aussperrt, Ergebnis 4 hat die Anfrage abgelehnt, und Ergebnis 5 liegt über `read`. Titel, URLs und Werte sind beispielhaft.

*POST /search-Antwort (beispielhaft)*

```json
{
  "query": "how to rotate api keys without downtime",
  "created_at": "2026-10-22T10:15:04Z",
  "credits_used": 2,
  "results": [
    {
      "position": 1,
      "title": "Rotating API keys",
      "url": "https://docs.example.com/security/key-rotation",
      "host": "docs.example.com",
      "snippet": "Create a second key, deploy it everywhere, then revoke the first one.",
      "published_at": "2026-09-30",
      "content_status": "ok",
      "content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key.\n2. Deploy it to every service.\n3. Revoke the old key.",
      "word_count": 948
    },
    {
      "position": 2,
      "title": "Key rotation checklist",
      "url": "https://blog.example.org/key-rotation-checklist",
      "host": "blog.example.org",
      "snippet": "Keep two keys active during the switch and alert on the old one.",
      "content_status": "blocked_by_robots"
    },
    {
      "position": 3,
      "title": "Secrets management basics",
      "url": "https://security.example.net/secrets-basics",
      "host": "security.example.net",
      "snippet": "Never commit keys to a repository.",
      "content_status": "ok",
      "content": "# Secrets management basics\n\n**Never** commit keys to a repository.",
      "word_count": 1310
    },
    {
      "position": 4,
      "title": "Key management service guide",
      "url": "https://cloud.example.com/kms-guide",
      "host": "cloud.example.com",
      "snippet": "Store keys in a managed vault and rotate them on a schedule.",
      "content_status": "target_refused",
      "target_status": 403
    },
    {
      "position": 5,
      "title": "API key best practices",
      "url": "https://dev.example.com/api-key-best-practices",
      "host": "dev.example.com",
      "snippet": "Scope each key to one service and one environment.",
      "content_status": "not_requested"
    }
  ]
}
```

## Welche Ergebnisse erhalten einen Seitenstatus, der nicht not_requested ist?

Nur die ersten `read` Ergebnisse und jeder Eintrag eines `/extract`-Aufrufs. Das sind die Seiten, die unser Reader tatsächlich versucht hat. Alles nach der Anzahl von `read` bleibt `not_requested`, was auch immer die Seite geantwortet hätte.

Die Reihenfolge ändert sich nie: Der Reader arbeitet an Position 1, 2, 3 und so weiter, nie an einem späteren Ergebnis statt an einem früheren, das fehlgeschlagen ist. Wenn ein Agent einen Ersatz für eine abgelehnte Seite braucht, kann er das nächste Ergebnis über `/extract` lesen.

## Wie sieht eine Extract-Antwort aus?

`/extract` gibt `credits_used` und ein `results`-Array in der Reihenfolge der URLs zurück, die Sie gesendet haben. Jeder Eintrag hat die `url` und eine `content_status`; mit `ok` kommen `title`, `content` und `word_count` hinzu, mit `target_refused` kommt `target_status` hinzu. Es gibt kein `position`, `host` oder `snippet`, weil keine Suche lief.

Die [Extract-Referenz](https://llmwebsearch.com/de/docs/extract/) zeigt ein vollständiges Beispiel und erklärt, wie die Credits dafür gezählt werden.

## Wie mache ich aus Ergebnissen Kontext für ein Modell?

Nummerieren Sie die Quellen, behalten Sie die URL neben jeder bei und übergeben Sie nur, was das Modell braucht. Ein kompaktes Layout funktioniert gut: `[1] title — url`, dann der Inhalt dieser Seite, dann die nächste Quelle. Bitten Sie das Modell, mit denselben Nummern zu zitieren.

Wenn ein Ergebnis keinen Inhalt hat, geben Sie dem Modell stattdessen seinen Snippet und sagen Sie, dass es nur ein Snippet ist. So vermeiden Sie Antworten, die auf einer Seite basieren, die das Modell nie gesehen hat. Die [Python-Seite](https://llmwebsearch.com/de/docs/python/) enthält eine kurze Schleife, die all das innerhalb eines Token-Budgets erledigt.

## Antwortformat: häufige Fragen

### Ist der Inhalt immer Markdown?

Standardmäßig Markdown. Senden Sie `format: "text"`, um reinen Text ohne Markup zu erhalten, zum Beispiel wenn Sie nur Wörter zählen oder Seiten klassifizieren. Der Feldname bleibt `content`.

### Warum fehlt published_at bei manchen Ergebnissen?

Viele Seiten geben kein Datum an, und manche Suchergebnisse zeigen auch keines. In diesem Fall wird das Feld weggelassen, prüfen Sie also, ob es vorhanden ist, bevor Sie es verwenden.

### Können später neue Felder hinzugefügt werden?

Ja. In Version 1 können Felder hinzugefügt, aber nie umbenannt oder entfernt werden. Schreiben Sie Ihren Parser so, dass er unbekannte Felder ignoriert.

### Wird der Inhalt auf Ihrer Seite gespeichert?

Nein. Wir trainieren kein Modell mit Ihren Suchanfragen oder mit dem, was die API zurückgibt, und wir stellen keine eigene Regel gegen das Speichern von Ergebnissen auf; die Rechte der Websites, deren Seiten Sie lesen, gelten weiterhin. Unser Request-Log enthält nur eine kurze Spur jedes Aufrufs, beschrieben auf der [Datenschutzseite](https://llmwebsearch.com/de/privacy/).

---

LLMWebSearch: LLMWebSearch ist eine Websuch-API für KI-Agenten, die gerankte Ergebnisse mit dem Inhalt der Top-Seiten als Markdown liefert, bezahlt mit Krypto ohne Ausweis-Upload. Vorausbezahlte Credits ab 1,20 $/1K Suchanfragen verfallen nie. Ohne KYC — kein Ausweis, kein Selfie, keine Dokumente. Mit Krypto bezahlen.
