documentatie
Aan de slag

Zo werkt het

Markdown

Wat er met een verzoek gebeurt tussen je programma en het model.

Volledige gids

Je verstuurt een verzoek naar Ailoot API zoals je het rechtstreeks naar OpenAI, Anthropic of Google zou sturen. Ailoot controleert de sleutel en het saldo, geeft het verzoek aan het model door, retourneert het antwoord in hetzelfde formaat en schrijft het daadwerkelijke verbruik af.

01VerzoekJe client verstuurt het verzoek naar api.ailoot.ai met sleutel sk-…
02Validatie en reserveringSleutel, limieten en saldo. Tijdens het voorbereiden van het antwoord wordt een bedrag gereserveerd.
03ModelHet model antwoordt en het antwoord komt terug in jouw formaat.
04AfschrijvingEén afschrijving op basis van de daadwerkelijke tokens; het resterende gereserveerde bedrag wordt vrijgegeven.

Eén sleutel — drie formaten

Het formaat wordt door het verzoekpad bepaald, niet door het model. Je kunt hetzelfde Claude-model via OpenAI Chat, OpenAI Responses of Anthropic Messages aanroepen — het antwoord volgt het formaat van het aangeroepen pad.

FormaatPadWie het gebruikt
OpenAI Chat Completions/v1/chat/completionsOpenAI SDK, de meeste chats en editors, n8n, LangChain
OpenAI Responses/v1/responsesCodex CLI, OpenAI Agents SDK, nieuwere SDK-versies
Anthropic Messages/v1/messagesClaude Code, Anthropic SDK, Zed, Cline
Gemini/v1beta/models/{model}:generateContentGemini CLI, Google GenAI SDK

Geldzaken: reservering en één afschrijving

  • Vóór het versturen van een nieuw tekstverzoek reserveert Ailoot een bedrag op basis van een schatting van de invoer en een typisch antwoord, rekening houdend met de limiet (max_tokens) en de voorwaarden van het exacte model. Past de reservering niet binnen het vrije saldo of de sleutellimiet, dan kan de meegestuurde limiet alleen worden verlaagd bij een model en methode die die limiet daadwerkelijk naleven, en nooit onder 256 tokens en het ingestelde minimum voor het antwoord. Voor afbeeldingen, video en audio als output blijft de volledige reservering voor de kosten van het resultaat gelden.
  • Na het antwoord volgt één afschrijving voor het daadwerkelijke verbruik. De ongebruikte reservering wordt direct aan het saldo teruggegeven.
  • Is het antwoord duurder dan de reservering, dan wordt het verschil van het vrije saldo afgeschreven. Het saldo wordt nooit negatief.
  • Als er onvoldoende saldo is voor zelfs de minimale reservering, wordt het verzoek niet verstuurd: je krijgt een duidelijke fout 402 en er wordt niets afgeschreven.
  • Een fout zonder resultaat wordt niet in rekening gebracht.

Meer informatie en een rekenvoorbeeld staan op de pagina Reservering en afschrijving.

Fouten met een Request ID

Elk antwoord krijgt een verzoek-ID: in de header X-Request-ID en in de foutmelding. Fouten komen in het JSON-formaat van de aangeroepen API, zodat SDK’s ze herkennen. Als er iets misgaat, stuur de Request ID dan naar support — zo vinden we het verzoek binnen een minuut terug.

401 Unauthorized
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Streams en timeouts

Gestreamde antwoorden (stream: true) gebruiken Server-Sent Events. Ailoot levert het betaalde tekstantwoord na de kostenberekening. Met stream: true blijft het formaat dus gestreamd (SSE), maar komt de tekst als één blok binnen wanneer het model klaar is, niet woord voor woord. Duurt het voorbereiden van het antwoord langer dan ongeveer 15 seconden, dan sturen Chat Completions-, Responses- en Messages-streams eerst statusregels : ping (ongeveer elke 10 seconden), daarna de regel : ailoot-charged-usd … met het afgeschreven bedrag en de gegevens zelf. SDK’s slaan die regels over.

Het Gemini-formaat bevat geen statusregels: het antwoord van :streamGenerateContent komt na de berekening in zijn geheel binnen. Houd voor redeneermodellen voldoende marge in de clienttimeout: meerdere minuten is normaal.

Antwoordheaders

X-Request-ID wordt met elk antwoord meegestuurd. De andere headers voegt Ailoot aan betaalde tekstantwoorden toe:

HeaderInhoud
X-Request-IDVerzoek-ID — support vraagt hierom
X-Ailoot-Charged-USDHet voor dit verzoek afgeschreven bedrag in dollars
X-Ailoot-Output-TokensHet aantal betaalde antwoordtokens
X-Ailoot-Max-Tokens-CappedDe verlaagde antwoordlimiet omdat het saldo onvoldoende was voor de volledige reservering
X-Ailoot-Notice-Code, X-Ailoot-NoticeUitleg wanneer het antwoord de lengtelimiet heeft bereikt

Als de stream al met statusregels is begonnen, komen deze gegevens vóór de data in een commentaarregel, niet in een header.

Promptcache

Als het model caching ondersteunt, kan een opnieuw verstuurd lang voorvoegsel (systeeminstructie, documenten) goedkoper zijn. De prijzen voor cachelezen en -schrijven staan op de modelkaart in de catalogus. De ontwikkelaar van het model bepaalt of er een cachehit is; Ailoot garandeert die niet.

Nog vragen? Stuur de Request ID en een beschrijving — we helpen je verder.Contact opnemen met support