API-referentie

API-overzicht

Basis-URL, authenticatie, foutformaat en volledige referentie van foutcodes

Basis-URL

https://openapi.thunderbit.com/openapi/v1

Authenticatie

Alle endpoints gebruiken HTTP Bearer (API Key):

Authorization: Bearer YOUR_API_KEY

Haal je key op vanuit het Thunderbit Dashboard. Keys zijn intrekbaar en per omgeving — sluit nooit een productiekey in clientcode in.

Foutomhulsel

Alle foutresponses delen dezelfde envelope. Standaard (LEGACY-formaat):

{
  "success": false,
  "error": {
    "code":    "INVALID_URL",
    "status":  400,
    "message": "The provided URL is not valid",
    "details": null
  }
}

Note: Er was eerder een alternatieve GOOGLE_RPC-envelope gedocumenteerd waarbij code en status van type wisselden (string ↔ number). Deze modus is verouderd en niet aanbevolen — sterk getypeerde clients (OpenAPI codegen, Pydantic, serde, encoding/json) zullen niet kunnen deserialiseren. Gebruik het bovenstaande LEGACY-formaat; toekomstige updates houden code: string en status: number stabiel. Het veld details kan gestructureerde context bevatten — bijvoorbeeld validatiefouten op veldniveau als { field: message }-paren die bij INVALID_PARAMETER worden teruggegeven.

Canonieke foutcodes

HTTPCodeBetekenis
400INVALID_URLURL-formaat is ongeldig
400INVALID_SCHEMAJSON Schema is ongeldig
400INVALID_PARAMETEREen of meer requestparameters zijn niet gevalideerd
400SCHEMA_OR_PROMPT_REQUIREDschema (of prompt) is vereist voor extractie
400SCHEMA_AND_PROMPT_EXCLUSIVEschema en prompt mogen niet samen worden meegegeven
400BATCH_SIZE_EXCEEDEDBatch-request overschrijdt de limiet van 100 URLs
400MALFORMED_REQUEST_BODYRequest body is geen geldige JSON
401API_KEY_MISSINGAuthorization-header ontbreekt
401API_KEY_INVALID_FORMATAPI Key-formaat is ongeldig
401API_KEY_NOT_FOUNDAPI Key niet gevonden in het systeem
401API_KEY_REVOKEDAPI Key is ingetrokken
401API_KEY_DISABLEDAPI Key is gedeactiveerd
401API_KEY_EXPIREDAPI Key is verlopen
401INVALID_API_KEY(verouderd, gebruik de specifieke API_KEY_*-codes hierboven)
402INSUFFICIENT_CREDITSOnvoldoende credits op het account
404JOB_NOT_FOUNDBatchtaak niet gevonden
404RESOURCE_NOT_FOUNDResource niet gevonden
408REQUEST_TIMEOUTAPI-request is verlopen
408SCRAPE_TIMEOUTDoelpagina reageerde te traag
422SCRAPE_SSL_ERRORDoelsite heeft SSL/TLS-problemen
422SCRAPE_DNS_RESOLUTION_ERRORDoelhostnaam kan niet worden omgezet
422SCRAPE_SITE_ERRORDoelsite gaf een fout terug
422SCRAPE_EMPTY_CONTENTDoelpagina gaf lege inhoud terug
422SCRAPE_CONTENT_TOO_LARGEDoelpagina overschrijdt grootte-limieten
422SCRAPE_TARGET_FORBIDDENDoelsite weigerde toegang (403)
422SCRAPE_TARGET_NOT_FOUNDDoel-URL gaf 404 terug
422SCRAPE_UNSUPPORTED_FILEDoelbestandstype wordt niet ondersteund
429RATE_LIMIT_EXCEEDEDRate-limit van het account bereikt
429SCRAPE_TARGET_RATE_LIMITEDDoelsite heeft onze request beperkt
500INTERNAL_ERRORAlgemene interne fout
500DISTILL_FAILEDDistillatiepipeline is mislukt
500EXTRACT_FAILEDExtractiepipeline is mislukt
500PIPELINE_ERROREen pipeline-stap meldde een fout
500AI_EXTRACTION_FAILEDAI-extractiestap is mislukt
500MARKDOWN_CONVERSION_FAILEDHTML-naar-Markdown-conversie mislukt
502SCRAPE_ALL_PROVIDERS_FAILEDAlle scraping-providers zijn mislukt
502UPSTREAM_BAD_GATEWAYUpstream gaf een ongeldige respons terug
503SCRAPE_PROVIDER_UNAVAILABLEScraping-provider niet beschikbaar
503AI_SERVICE_UNAVAILABLEAI-service niet beschikbaar
503DOWNSTREAM_SERVICE_UNAVAILABLEEen downstream-service is tijdelijk niet beschikbaar
504UPSTREAM_TIMEOUTUpstream-gateway is verlopen
504AI_TIMEOUTAI-service-aanroep is verlopen

Retry-strategie referentie

FoutklasseRetry?Hoe
4xx (jouw input)❌ NeeCorrigeer de request en probeer opnieuw
401 (auth)❌ NeeRoteer / heruitgeef de API Key
402 (credits)❌ NeeTop op
408 / 504 (timeout)✅ JaExponentiële backoff, max. 3 pogingen
429 (rate-limit)✅ JaWacht tot X-RateLimit-Reset — zie Rate Limits
5xx (server)✅ JaExponentiële backoff, max. 3 pogingen
SCRAPE_TARGET_* (doelsite)⚠️ MisschienProbeer eenmaal opnieuw met verhoogde renderMode