Snel antwoord
Welke parameters accepteert het search-endpoint van LLMWebSearch?
Het /search-endpoint van LLMWebSearch heeft alleen q nodig. Optionele parameters bepalen hoeveel resultaten er terugkomen (max_results), hoeveel pagina's er worden gelezen (read), het inhoudsformaat en de lengte, nieuws of web, een tijdbereik, het land en de taal, en domeinen die je wilt behouden of uitsluiten. Tot 3 pagina's lezen kost 1 credit, vanaf US$ 1,20/1K zoekopdrachten per oktober 2026. Zonder KYC; betalen met crypto.
/search at a glance
| Methoden | POST met een JSON-body, of GET met dezelfde namen in de query string |
|---|---|
| URL | https://llmwebsearch.com/api/v1/search |
| Vereist | q: 1 tot 400 tekens; zoekoperatoren worden doorgegeven zoals ze zijn geschreven |
| Standaardwaarden | 5 resultaten, de eerste 3 gelezen, Markdown tot 6.000 tekens per pagina |
| Facturering | Eén credit betaalt één zoekopdracht: tot 20 gerangschikte resultaten, waarbij de pagina's van de eerste 3 worden gelezen en als Markdown teruggegeven. Het lezen van 4 tot 10 pagina's kost 2 credits. Een call die op een fout eindigt, kost niets |
| Resultaten | De resultaten komen uit een live webzoekopdracht die op het moment van je call wordt uitgevoerd, in de volgorde waarin de zoekmachine ze rangschikt; niets komt uit een oude index |
| Filters | Kies het land en de taal van de resultaten, een tijdsbereik (afgelopen dag, week, maand of jaar), web- of nieuwsresultaten, en domeinen die je wilt opnemen of uitsluiten |
| Pagina-lezer | LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/) |
Zoek op het web en lees de topresultaten (POST)
POST/api/v1/search
Voert een live webzoekopdracht uit en retourneert gerangschikte resultaten. De pagina's van de eerste read resultaten worden parallel opgehaald en hun hoofdinhoud wordt in content geretourneerd. Het voorbeeld vraagt hoe je API-sleutels roteert; titels, datums en waarden zijn ter illustratie.
Authenticatie: API-sleutel in de header Authorization: Bearer API_KEY.
Request body
| Field | Type | Vereist | Beschrijving |
|---|---|---|---|
q | string | Ja | De zoekopdracht, 1 tot 400 tekens. Aanhalingstekens en operatoren zoals site: blijven zoals ze zijn geschreven. |
max_results | integer | Nee | Aantal gerangschikte resultaten, 1 tot 20. Standaard 5. |
read | integer | Nee | Hoeveel van de eerste resultaten worden gelezen en met hun inhoud geretourneerd, 0 tot 10. Standaard 3. Vanaf 4 kost de aanroep 2 credits. |
format | string | Nee | markdown (standaard) of text voor de paginainhoud. |
max_chars | integer | Nee | Lengtelimiet van de inhoud van elke pagina, 500 tot 50.000 tekens. Standaard 6.000. |
topic | string | Nee | web (standaard) of news. |
time_range | string | Nee | day, week, month of year. Geen standaardwaarde: elke datum. |
country | string | Nee | Tweeletterige landcode (ISO 3166-1 alpha-2) voor waar de zoekopdracht wordt uitgevoerd. Standaard us. |
language | string | Nee | Taal van de resultaten, zoals en, de of pt-BR. Standaard en. |
include_domains | string[] | Nee | Tot 20 domeinen; alleen resultaten van deze domeinen en hun subdomeinen worden behouden. |
exclude_domains | string[] | Nee | Tot 20 domeinen waarvan de resultaten worden weggelaten. |
{
"q": "how to rotate api keys without downtime",
"max_results": 5,
"read": 3,
"max_chars": 6000
}{
"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"
}
]
}Codevoorbeelden
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}'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"])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);Zoek op het web (GET)
GET/api/v1/search
Dezelfde zoekopdracht met de parameters in de query string, URL-gecodeerd. Lijsten zoals include_domains worden geschreven als één kommagescheiden waarde. Handig voor een snelle test of voor tools die alleen GET-requests versturen. Het voorbeeld vraagt alleen om resultaten (read=0).
Authenticatie: API-sleutel in de header Authorization: Bearer API_KEY.
Parameters
| Naam | In | Type | Vereist | Beschrijving |
|---|---|---|---|---|
q | query | string | Ja | De zoekopdracht, URL-gecodeerd, 1 tot 400 tekens. |
max_results | query | integer | Nee | 1 tot 20. Standaard 5. |
read | query | integer | Nee | 0 tot 10. Standaard 3; 4 of meer kost 2 credits. |
format | query | string | Nee | markdown (standaard) of text. |
max_chars | query | integer | Nee | 500 tot 50.000 per pagina. Standaard 6.000. |
topic | query | string | Nee | web (standaard) of news. |
time_range | query | string | Nee | day, week, month of year. |
country | query | string | Nee | ISO 3166-1 alpha-2-code. Standaard us. |
language | query | string | Nee | Taalcode. Standaard en. |
include_domains | query | string | Nee | Door komma's gescheiden lijst, tot 20 domeinen. |
exclude_domains | query | string | Nee | Door komma's gescheiden lijst, tot 20 domeinen. |
api_key | query | string | Nee | Je API-sleutel, als je de header Authorization niet meestuurt. |
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"
}
]
}Codevoorbeelden
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=0import 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"]])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));Hoe krijg ik resultaten zonder enige paginainhoud?
Zet read op 0. Elk resultaat komt dan terug met de titel, URL, host, snippet en datum, en content_status: "not_requested". De response is veel kleiner, wat helpt wanneer de agent alleen hoeft te bepalen welke links relevant zijn.
De prijs blijft 1 credit, hetzelfde als het lezen van maximaal 3 pagina's. Een veelvoorkomend patroon is een zoekopdracht met read=0 om een shortlist te maken, en daarna een extract-aanroep op de twee of drie URL's die het model heeft gekozen.
Wanneer kost een zoekopdracht 2 credits?
Wanneer read tussen 4 en 10 ligt. Meer pagina's lezen kost meer werk aan onze kant, dus de prijs verdubbelt één keer en blijft op 2 credits tot het maximum van 10 pagina's.
credits_used in elke response laat zien wat de aanroep heeft gekost. Een pagina die niet kon worden gelezen, door een robots.txt-regel of een weigering, verlaagt of verhoogt die prijs niet. Als je meestal maar een paar volledige pagina's nodig hebt, houd dan read op 3 en roep /extract aan voor de spaarzame extra pagina.
Hoe zoek ik recent nieuws?
Stuur topic: "news" en een time_range mee. De resultaten komen dan uit nieuwsartikelen, en time_range houdt alleen die uit de afgelopen day, week, month of year. published_at wordt ingevuld wanneer het artikel of het zoekresultaat een datum vermeldt.
Dezelfde freshness-filter werkt met topic: "web". Het is nuttig voor vragen zoals recente releases of prijswijzigingen, waar een oude pagina het model zou misleiden.
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}'Hoe beperk ik resultaten tot bepaalde sites?
Zet ze in include_domains, tot 20 items. Alleen resultaten waarvan de host een van die domeinen is, of een van hun subdomeinen, worden behouden: example.com matcht ook docs.example.com. Gebruik exclude_domains andersom, bijvoorbeeld om je eigen site uit de resultaten te halen.
In een POST-body zijn beide velden JSON-arrays. In een GET-verzoek schrijf je ze als één door komma's gescheiden waarde. De zoekopdracht zelf kan ook een operator site: bevatten; die wordt zoals geschreven doorgegeven aan de zoekopdracht.
Wat veranderen land en taal?
country bepaalt waar de zoekopdracht draait, met een tweeletterige code zoals us, de of br. Rangschikkingen verschillen per land, vooral voor lokale diensten, prijzen en regelgeving. language bepaalt de taal van de resultaten, zoals en, fr of pt-BR.
Beide staan standaard op de Verenigde Staten en Engels. Zet ze samen wanneer de agent werkt voor gebruikers in één markt: een Duitse gebruiker die naar belastingregels vraagt, wil country: "de" en language: "de".
Hoeveel paginatekst komt er terug?
Tot max_chars tekens per pagina, standaard 6.000 en overal tussen 500 en 50.000. De limiet beschermt het contextvenster van het model: drie pagina's van 6.000 tekens is ongeveer 4.500 tokens Engels.
word_count telt de volledig geëxtraheerde tekst, vóór de afkap, zodat je kunt zien wanneer een pagina is ingekort. Wanneer een antwoord één lang document nodig heeft, zoek dan eerst met een lage limiet en haal die pagina daarna apart op via /extract met een hogere limiet. Op een trage pagina wordt niet eindeloos gewacht: na 15 seconden komt die terug als fetch_timeout, zonder inhoud.
Search-endpoint: veelgestelde vragen
Moet ik POST of GET gebruiken?
POST in code, omdat JSON-arrays en lange zoekopdrachten eenvoudiger zijn in een body. GET is geschikt voor een snelle test in een terminal of een tool die alleen query strings verstuurt. Beide retourneren dezelfde response en kosten hetzelfde.
Kan ik om meer dan 20 resultaten vragen?
Nee. 20 is het maximum per aanroep. Agents hebben zelden meer nodig: een tweede zoekopdracht met een herformuleerde query levert meestal betere bronnen op dan een lange lijst.
Worden de pagina's na elkaar gelezen?
Nee, parallel. Een pagina die niet binnen 15 seconden antwoordt, wordt zonder inhoud teruggegeven, als fetch_timeout, zodat één trage site niet de hele response ophoudt.
Welke zoekmachine levert de resultaten?
De resultaten komen uit een live webzoekopdracht die op het moment van je call wordt uitgevoerd, in de volgorde waarin de zoekmachine ze rangschikt; niets komt uit een oude index. We publiceren niet welke upstream-providers de zoekopdracht uitvoeren.