Ohne KYC — kein Ausweis, kein Selfie, keine Dokumente. Mit Krypto bezahlen: BTC, USDT, USDC, ETH, SOL, LTC
Sprache: Deutsch
API-Schlüssel erhalten

Docs · API reference

Search-Endpoint-Referenz: POST und GET /search

/search führt eine Live-Websuche aus, ordnet bis zu 20 Ergebnisse und liest die Seiten hinter den ersten. Diese Seite listet jeden Parameter, seinen Standardwert, seine Grenzen und seine Auswirkung auf den Preis.

Zuletzt aktualisiert: · 9 Min. Lesezeit

Kurze Antwort

Welche Parameter nimmt der LLMWebSearch-Search-Endpoint an?

Der /search-Endpoint von LLMWebSearch benötigt nur q. Optionale Parameter legen fest, wie viele Ergebnisse zurückkommen (max_results), wie viele Seiten gelesen werden (read), das Inhaltsformat und die Länge, News oder Web, einen Zeitraum, Land und Sprache sowie Domains, die beibehalten oder verworfen werden. Bis zu 3 Seiten lesen kostet 1 Credit, ab 1,20 $/1K Suchanfragen Stand Oktober 2026. Ohne KYC; mit Krypto bezahlen.

/search at a glance

MethodenPOST mit einem JSON-Body oder GET mit denselben Namen im Query String
URLhttps://llmwebsearch.com/api/v1/search
Requiredq: 1 bis 400 Zeichen; Suchoperatoren werden unverändert übergeben
Standardwerte5 Ergebnisse, die ersten 3 gelesen, Markdown bis 6.000 Zeichen pro Seite
AbrechnungEin Credit bezahlt eine Suchanfrage: bis zu 20 gerankte Ergebnisse, wobei die Seiten der ersten 3 gelesen und als Markdown zurückgegeben werden. Werden 4 bis 10 Seiten gelesen, sind es 2 Credits. Ein Aufruf, der mit einem Fehler endet, kostet nichts
ErgebnisseDie Ergebnisse stammen aus einer Live-Websuche, die im Moment Ihres Aufrufs ausgeführt wird, in der Reihenfolge, in der die Suchmaschine sie rankt; nichts wird aus einem alten Index geliefert
FilterWählen Sie Land und Sprache der Ergebnisse, einen Zeitraum (letzter Tag, Woche, Monat oder Jahr), Web- oder News-Ergebnisse sowie Domains, die ein- oder ausgeschlossen werden sollen
Page ReaderLLMWebSearch/1.0 (+https://llmwebsearch.com/bot/)

Im Web suchen und die Top-Ergebnisse lesen (POST)

POST/api/v1/search

Führt eine Live-Websuche aus und gibt gerankte Ergebnisse zurück. Die Seiten der ersten read Ergebnisse werden parallel abgerufen und ihr Hauptinhalt wird in content zurückgegeben. Das Beispiel fragt, wie man API-Schlüssel rotiert; Titel, Daten und Werte sind illustrativ.

Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.

Request body

FieldTypeRequiredDescription
qstringJaDie Suchanfrage, 1 bis 400 Zeichen. Anführungszeichen und Operatoren wie site: bleiben unverändert.
max_resultsintegerNeinAnzahl der gerankten Ergebnisse, 1 bis 20. Standard 5.
readintegerNeinWie viele der ersten Ergebnisse gelesen und mit ihrem Inhalt zurückgegeben werden, 0 bis 10. Standard 3. Ab 4 aufwärts kostet der Aufruf 2 Credits.
formatstringNeinmarkdown (Standard) oder text für den Seiteninhalt.
max_charsintegerNeinLängenbegrenzung für den Inhalt jeder Seite, 500 bis 50.000 Zeichen. Standard 6.000.
topicstringNeinweb (Standard) oder news.
time_rangestringNeinday, week, month oder year. Kein Standardwert: jedes Datum.
countrystringNeinZweistelliger Ländercode (ISO 3166-1 alpha-2) für den Ort, an dem die Suche läuft. Standard us.
languagestringNeinSprache der Ergebnisse, etwa en, de oder pt-BR. Standard en.
include_domainsstring[]NeinBis zu 20 Domains; nur Ergebnisse von diesen Domains und ihren Subdomains werden beibehalten.
exclude_domainsstring[]NeinBis zu 20 Domains, deren Ergebnisse verworfen werden.
Beispiel: five results, the top three read as Markdown
{
  "q": "how to rotate api keys without downtime",
  "max_results": 5,
  "read": 3,
  "max_chars": 6000
}
Beispiel: news of the past week from two sites, nothing read
{
  "q": "open source license change",
  "topic": "news",
  "time_range": "week",
  "include_domains": [
    "news.example.com",
    "example.org"
  ],
  "read": 0
}

Response 200

{
  "query": "how to rotate api keys without downtime",
  "created_at": "2026-10-22T10:15:04Z",
  "credits_used": 1,
  "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.",
      "published_at": "2026-06-12",
      "content_status": "ok",
      "content": "# Secrets management basics\n\n**Never** commit keys to a repository...",
      "word_count": 1310
    },
    {
      "position": 4,
      "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"
    }
  ]
}

Codebeispiele

curl
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3}'
Python
import os
import requests

resp = requests.post(
    "https://llmwebsearch.com/api/v1/search",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    json={"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3},
    timeout=60,
)
resp.raise_for_status()
for r in resp.json()["results"]:
    print(r["position"], r["content_status"], r["url"])
Node.js
const res = await fetch('https://llmwebsearch.com/api/v1/search', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ q: 'how to rotate api keys without downtime', max_results: 5, read: 3 }),
});
const { results } = await res.json();
for (const r of results) console.log(r.position, r.content_status, r.url);

Im Web suchen (GET)

GET/api/v1/search

Dieselbe Suche mit den Parametern im Query String, URL-kodiert. Listen wie include_domains werden als ein durch Kommas getrennter Wert geschrieben. Praktisch für einen schnellen Test oder für Tools, die nur GET-Requests senden. Das Beispiel fragt nur nach Ergebnissen (read=0).

Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.

Parameter

NameInTypeRequiredDescription
qquerystringJaDie Suchanfrage, URL-kodiert, 1 bis 400 Zeichen.
max_resultsqueryintegerNein1 bis 20. Standard 5.
readqueryintegerNein0 bis 10. Standard 3; 4 oder mehr kostet 2 Credits.
formatquerystringNeinmarkdown (Standard) oder text.
max_charsqueryintegerNein500 bis 50.000 pro Seite. Standard 6.000.
topicquerystringNeinweb (Standard) oder news.
time_rangequerystringNeinday, week, month oder year.
countryquerystringNeinISO 3166-1 alpha-2-Code. Standard us.
languagequerystringNeinSprachcode. Standard en.
include_domainsquerystringNeinKommagetrennte Liste, bis zu 20 Domains.
exclude_domainsquerystringNeinKommagetrennte Liste, bis zu 20 Domains.
api_keyquerystringNeinIhr Schlüssel, wenn Sie den Header Authorization nicht senden.

Response 200

{
  "query": "postgres connection pooling",
  "created_at": "2026-10-22T10:21:47Z",
  "credits_used": 1,
  "results": [
    {
      "position": 1,
      "title": "Connection pooling explained",
      "url": "https://docs.example.com/db/pooling",
      "host": "docs.example.com",
      "snippet": "A pool keeps a few database connections open and lends them to requests.",
      "content_status": "not_requested"
    },
    {
      "position": 2,
      "title": "Sizing a connection pool",
      "url": "https://blog.example.org/pool-size",
      "host": "blog.example.org",
      "snippet": "Start small: the right size depends on cores and disk, not on traffic.",
      "published_at": "2026-03-04",
      "content_status": "not_requested"
    }
  ]
}

Codebeispiele

curl
curl -sG "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  --data-urlencode "q=postgres connection pooling" \
  -d max_results=10 -d read=0
Python
import os
import requests

resp = requests.get(
    "https://llmwebsearch.com/api/v1/search",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    params={"q": "postgres connection pooling", "max_results": 10, "read": 0},
    timeout=60,
)
print([r["url"] for r in resp.json()["results"]])
Node.js
const params = new URLSearchParams({ q: 'postgres connection pooling', max_results: '10', read: '0' });
const res = await fetch(`https://llmwebsearch.com/api/v1/search?${params}`, {
  headers: { Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}` },
});
console.log((await res.json()).results.map((r) => r.url));

Wie erhalte ich Ergebnisse ohne Seiteninhalt?

Setzen Sie read auf 0. Jedes Ergebnis kommt dann mit Titel, URL, Host, Snippet und Datum zurück sowie content_status: "not_requested". Die Antwort ist deutlich kleiner, was hilft, wenn der Agent nur entscheiden muss, welche Links relevant sind.

Der Preis bleibt bei 1 Credit, genau wie beim Lesen von bis zu 3 Seiten. Ein übliches Muster ist eine read=0-Suche zur Vorauswahl, dann ein extract-Aufruf für die zwei oder drei URLs, die das Modell ausgewählt hat.

Wann kostet eine Suche 2 Credits?

Wenn read zwischen 4 und 10 liegt. Mehr Seiten zu lesen bedeutet mehr Arbeit auf unserer Seite, daher verdoppelt sich der Preis einmal und bleibt bis zum Maximum von 10 Seiten bei 2 Credits.

credits_used in jeder Antwort zeigt, was der Aufruf gekostet hat. Eine Seite, die nicht gelesen werden konnte, wegen einer robots.txt-Regel oder einer Ablehnung, senkt oder erhöht diesen Preis nicht. Wenn Sie meist nur wenige vollständige Seiten brauchen, lassen Sie read bei 3 und rufen /extract für die seltene zusätzliche Seite auf.

Wie suche ich aktuelle Nachrichten?

Senden Sie topic: "news" und eine time_range. Die Ergebnisse stammen dann aus Nachrichtenartikeln, und time_range behält nur die aus den vergangenen day, week, month oder year. published_at wird ausgefüllt, wenn der Artikel oder das Suchergebnis ein Datum angibt.

Derselbe Aktualitätsfilter funktioniert mit topic: "web". Er ist nützlich für Fragen wie aktuelle Releases oder Preisänderungen, bei denen eine alte Seite das Modell in die Irre führen würde.

Nachrichten aus der vergangenen Woche, Top-3-Artikel gelesen
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "database release security fix", "topic": "news", "time_range": "week", "read": 3}'

Wie beschränke ich Ergebnisse auf bestimmte Websites?

Listen Sie sie in include_domains auf, bis zu 20 Einträge. Nur Ergebnisse, deren Host eine dieser Domains oder eine ihrer Subdomains ist, werden behalten: example.com passt auch auf docs.example.com. Verwenden Sie exclude_domains umgekehrt, zum Beispiel um Ihre eigene Website aus den Ergebnissen zu entfernen.

In einem POST-Body sind beide Felder JSON-Arrays. In einer GET-Anfrage schreiben Sie sie als einen kommagetrennten Wert. Die Suchanfrage selbst kann auch einen site:-Operator enthalten; er wird unverändert an die Suche weitergegeben.

Was ändern Land und Sprache?

country legt fest, wo die Suche läuft, mit einem zweibuchstabigen Code wie us, de oder br. Rankings unterscheiden sich je nach Land, besonders bei lokalen Diensten, Preisen und Vorschriften. language legt die Sprache der Ergebnisse fest, etwa en, fr oder pt-BR.

Beide sind standardmäßig auf Vereinigte Staaten und Englisch gesetzt. Setzen Sie sie gemeinsam, wenn der Agent für Nutzer in einem Markt arbeitet: Ein deutscher Nutzer, der nach Steuerregeln fragt, möchte country: "de" und language: "de".

Wie viel Seitentext kommt zurück?

Bis zu max_chars Zeichen pro Seite, standardmäßig 6.000 und zwischen 500 und 50.000. Die Obergrenze schützt das Kontextfenster des Modells: drei Seiten mit 6.000 Zeichen sind etwa 4.500 Tokens Englisch.

word_count zählt den gesamten extrahierten Text, vor dem Kürzen, sodass Sie erkennen können, wann eine Seite gekürzt wurde. Wenn eine Antwort ein langes Dokument braucht, suchen Sie zuerst mit einer niedrigen Obergrenze und rufen dann diese Seite allein über /extract mit einer höheren ab. Auf eine langsame Seite wird nicht unbegrenzt gewartet: Nach 15 Sekunden kommt sie als fetch_timeout zurück, ohne Inhalt.

Search-Endpoint: häufige Fragen

Sollte ich POST oder GET verwenden?

POST im Code, weil JSON-Arrays und lange Suchanfragen in einem Body einfacher sind. GET eignet sich für einen schnellen Test im Terminal oder für ein Tool, das nur Query-Strings sendet. Beide liefern dieselbe Antwort und kosten gleich viel.

Kann ich mehr als 20 Ergebnisse anfordern?

Nein. 20 ist das Maximum pro Aufruf. Agents brauchen selten mehr: Eine zweite Suche mit umformulierter Anfrage liefert meist bessere Quellen als eine lange Liste.

Werden die Seiten nacheinander gelesen?

Nein, parallel. Eine Seite, die nicht innerhalb von 15 Sekunden antwortet, wird ohne Inhalt als fetch_timeout zurückgegeben, sodass eine langsame Website nicht die gesamte Antwort aufhält.

Welche Suchmaschine liefert die Ergebnisse?

Die Ergebnisse stammen aus einer Live-Websuche, die im Moment Ihres Aufrufs ausgeführt wird, in der Reihenfolge, in der die Suchmaschine sie rankt; nichts wird aus einem alten Index geliefert. Wir veröffentlichen nicht, welche Upstream-Anbieter die Suche ausführen.

Ab 1,20 $/1K Suchanfragen · ohne KYC

API-Schlüssel erhalten