Zonder KYC — geen ID, geen selfie, geen documenten. Betalen met crypto: BTC, USDT, USDC, ETH, SOL, LTC
Taal: Nederlands
Vraag een API-sleutel aan

Docs · API-referentie

Fouten en paginastatussen: wat faalde, en of je het opnieuw moet proberen

Er bestaan twee soorten problemen. Een HTTP-fout betekent dat de hele aanroep mislukte, en dat kost niets. Een paginastatus betekent dat de zoekopdracht werkte, maar één pagina niet kon worden gelezen; die staat in een normale 200-response. Agents moeten beide verschillend afhandelen.

Laatst bijgewerkt: · 5 min leestijd

Snel antwoord

Welke fouten kan de LLMWebSearch API teruggeven, en worden ze gefactureerd?

LLMWebSearch heeft zes HTTP-fouten: 400 invalid_parameter, 401 invalid_api_key, 402 insufficient_credits, 429 rate_limited, 502 search_failed en 504 search_timeout. Geen enkele wordt gefactureerd. Pagina's die niet kunnen worden gelezen, tonen een content_status binnen een 200. Een geslaagde zoekopdracht kost 1 credit, vanaf US$ 1,20/1K zoekopdrachten per oktober 2026. Zonder KYC; betalen met crypto.

Welke HTTP-fouten bestaan er?

De body is altijd {"error": {"code": "…", "message": "…"}}. Geen enkele fout kost een credit.

HTTPcodeOorzaakOpnieuw proberen?
400invalid_parameterEen vereiste parameter ontbreekt of een waarde valt buiten het bereikNee: pas de request aan
401invalid_api_keyDe sleutel ontbreekt, is onjuist of ingetrokkenNee: controleer de sleutel
402insufficient_creditsHet saldo kan deze aanroep niet betalenNee: koop een pack
429rate_limitedMeer aanroepen per minuut dan het account toestaatJa, na een pauze
502search_failedDe zoekopdracht kon niet worden voltooidJa, met backoff
504search_timeoutGeen zoekresultaat binnen 30 secondenJa, met backoff

Hoe verschilt een paginastatus van een fout?

Een paginastatus beschrijft één resultaat, niet de call. De zoekopdracht is uitgevoerd, de resultaten zijn er en credits_used is zoals gebruikelijk ingesteld. Alleen de inhoud van die ene pagina ontbreekt, en content_status zegt waarom: blocked_by_robots, blocked_by_site_policy, target_refused, fetch_failed, fetch_timeout of unsupported_content.

Behandel deze niet als fouten waarbij je de hele zoekopdracht opnieuw moet doen. Gebruik de andere resultaten, de snippet van de ontbrekende pagina, of een andere bron. De pagina response format legt elke status uit in een tabel.

Waarom doe je nooit een nieuwe poging bij een weigering?

Omdat een weigering het antwoord van de site is, en dat respecteren we. Onze reader respecteert robots.txt: hij stelt zich voor als LLMWebSearch, volgt de regels die een site voor hem of voor alle robots schrijft, en laat de inhoud weg van elke pagina die hij niet mag lezen. Een site die Content-Signal: ai-input=no in zijn robots.txt zet, houdt zijn pagina's buiten de inhoud van je resultaten. Wanneer een site onze reader afwijst met een 403, een 429 of een challenge-pagina, melden we dat als target_refused met de status van de site in target_status.

Wanneer een site onze reader weert, komt het resultaat terug zonder inhoud en met de status van de site: we lossen nooit CAPTCHA's op, loggen nooit in op accounts en werken nooit om een blokkade of een paywall heen. We doen ook geen nieuwe poging met een andere identiteit of een vermomde browser. Je agent moet niet blijven loopen op zo'n pagina: het resultaat verandert niet, en de site heeft nee gezegd.

Wanneer moet mijn code opnieuw proberen?

Alleen bij 429, 502 en 504. Wacht en probeer het dan opnieuw, met elke keer een dubbele wachttijd en wat willekeurige variatie zodat parallelle workers niet synchroon opnieuw proberen. Drie tot vijf pogingen zijn genoeg; rapporteer daarna de fout.

Probeer nooit opnieuw bij 400, 401 of 402: hetzelfde verzoek geeft hetzelfde antwoord tot je iets verandert. Voor pagina's kunnen fetch_failed en fetch_timeout later wel werken, via een nieuwe zoekopdracht of een /extract-call. target_refused, blocked_by_robots en blocked_by_site_policy zijn definitief.

Python: retry 429, 502 en 504 met exponential backoff
import os
import random
import time

import requests

API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
RETRY_ON = {429, 502, 504}


def search(body, attempts=5):
    delay = 1.0
    for attempt in range(1, attempts + 1):
        resp = requests.post(API, headers=HEADERS, json=body, timeout=60)
        if resp.status_code == 200:
            return resp.json()
        err = resp.json().get("error", {})
        if resp.status_code not in RETRY_ON or attempt == attempts:
            raise RuntimeError(f"{resp.status_code} {err.get('code')}: {err.get('message')}")
        time.sleep(delay + random.uniform(0, delay / 2))
        delay = min(delay * 2, 30)


data = search({"q": "how to rotate api keys without downtime"})
unread = [r["url"] for r in data["results"] if r["content_status"] not in ("ok", "not_requested")]
print("credits:", data["credits_used"], "| pages not read:", unread)

Wat moet ik doen bij 402 insufficient_credits?

Stoppen en saldo opwaarderen. De call is niet uitgevoerd en kostte niets. Om niet midden in een langdurige taak te stoppen, controleer je eerst je saldo met GET https://llmwebsearch.com/api/v1/credits, dat gratis is, en vergelijk je het met het aantal zoekopdrachten dat je van plan bent. Onthoud dat een zoekopdracht met read boven 3 2 credits kost.

Credits komen uit packs die je koopt met je crypto-saldo. Zoekcredits verlopen niet: wat je deze maand niet gebruikt, staat er volgend jaar nog.

Hoe blijf ik onder de rate limit?

Beperk in je eigen code hoeveel calls er tegelijk draaien. Elk account heeft een calllimiet per minuut, te zien in het dashboard; vraag het supportteam en de limiet kan worden verhoogd. Een kleine pool parallelle workers, vier tot acht voor de meeste agents, houdt een gelijkmatig tempo aan zonder pieken. De pagina's Python en Node.js laten elk zo'n pool zien.

Krijg je toch een 429, pauzeer dan voor de volgende poging in plaats van meteen te vuren. Direct opnieuw proberen levert alleen maar meer geweigerde calls op.

Errors: veelgestelde vragen

Kost een zoekopdracht waarbij elke pagina geweigerd is toch een credit?

Ja, als de zoekopdracht zelf werkte: je krijgt nog steeds de gerangschikte resultaten en snippets. De prijs van een zoekopdracht hangt niet af van hoeveel van de pagina's gelezen konden worden.

Wordt een 401 veroorzaakt door een ingetrokken API-sleutel?

Dat kan. Een ingetrokken API-sleutel, een typefout, een ontbrekend Bearer -voorvoegsel of een header die ons nooit bereikte geven allemaal 401 invalid_api_key. Maak één API-sleutel per agent, app of teamgenoot en trek elk ervan in vanuit het dashboard zonder de andere te raken.

Waarom gaf een pagina fetch_timeout?

Pagina's worden parallel gelezen, en een pagina die langer dan 15 seconden duurt wordt zonder inhoud teruggegeven zodat die het hele antwoord niet ophoudt. Trage sites reageren soms wel bij een latere poging.

Kan ik mijn mislukte calls zien?

Ja. De dashboardgeschiedenis toont je calls 30 dagen lang, ook de mislukte, met hun status en credits. Mislukte calls tonen 0 credits.

Vanaf US$ 1,20/1K zoekopdrachten · zonder KYC

Vraag een API-sleutel aan