Så fungerar det
MarkdownVad som händer med anropet mellan ditt program och modellen.
Fullständig guide
Du skickar ett anrop till Ailoot API på samma sätt som direkt till OpenAI, Anthropic eller Google. Ailoot kontrollerar nyckel och saldo, skickar anropet vidare till modellen, returnerar svaret i samma format och debiterar efter faktisk förbrukning.
En nyckel — tre format
Formatet bestäms av anropets sökväg, inte av modellen. Samma Claude-modell kan anropas via OpenAI Chat, OpenAI Responses eller Anthropic Messages — svaret kommer i formatet för den sökväg du anropade.
| Format | Sökväg | Vilka som använder det |
|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, de flesta chattar och redigerare, n8n, LangChain |
| OpenAI Responses | /v1/responses | Codex CLI, OpenAI Agents SDK, nya SDK-versioner |
| Anthropic Messages | /v1/messages | Claude Code, Anthropic SDK, Zed, Cline |
| Gemini | /v1beta/models/{model}:generateContent | Gemini CLI, Google GenAI SDK |
Ekonomi: reservering och en debitering
- Innan ett nytt textanrop skickas reserverar Ailoot en uppskattning av indata och ett typiskt svar, med hänsyn till gränsen (
max_tokens) och villkoren för den exakta modellen. Om reserveringen inte ryms inom det fria saldot eller nyckelns gräns får den skickade gränsen bara sänkas för modeller och metoder som faktiskt följer den, och aldrig under 256 token eller den fastställda miniminivån för svaret. För bilder, video och ljud som utdata behålls reserveringen för hela resultatkostnaden. - Efter svaret sker en debitering utifrån faktisk förbrukning. Oanvänd reservering frigörs till saldot direkt.
- Om svaret kostar mer än reserveringen tas mellanskillnaden från tillgängligt saldo. Saldot blir aldrig negativt.
- Om saldot inte ens täcker minsta reservering skickas inte anropet: du får ett begripligt fel 402 och ingenting debiteras.
- Fel utan resultat debiteras inte.
Detaljer och ett räkneexempel finns på sidan Reservering och debitering.
Fel med Request ID
Varje svar får en anropsidentifierare: i headern X-Request-ID och i felmeddelandet. Fel returneras i JSON för det format du anropade, så SDK:erna känner igen dem korrekt. Om något går fel skickar du Request ID till supporten — så hittar vi anropet på en minut.
{
"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. …"
}Strömning och tidsgränser
Strömmade svar (stream: true) levereras som Server-Sent Events. Ailoot levererar betalda textsvar efter att kostnaden har beräknats. Med stream: true är formatet därför fortfarande strömmat (SSE), men texten kommer i ett enda block när modellen är klar, inte ord för ord. Om svaret tar längre än cirka 15 sekunder börjar strömmarna Chat Completions, Responses och Messages med kontrollraderna : ping (ungefär var 10:e sekund), följt av raden : ailoot-charged-usd … med debiterat belopp och själva datan. SDK:erna ignorerar sådana rader.
Gemini-formatet har inga kontrollrader: svaret :streamGenerateContent levereras i sin helhet efter beräkningen. Ge klientens tidsgräns god marginal för resonerande modeller: flera minuter är normalt.
Svarsheaders
X-Request-ID kommer i varje svar. Ailoot lägger till övriga headers för betalda textsvar:
| Header | Vad den innehåller |
|---|---|
X-Request-ID | Anropets identifierare — supporten ber om den |
X-Ailoot-Charged-USD | Beloppet som debiterats för detta anrop, i dollar |
X-Ailoot-Output-Tokens | Antalet svarstoken som betalats |
X-Ailoot-Max-Tokens-Capped | Den nya, sänkta svarsgränsen, eftersom saldot inte räckte till hela reserveringen |
X-Ailoot-Notice-Code, X-Ailoot-Notice | Förklaring om svaret stannade vid längdgränsen |
Om strömmen redan har börjat med kontrollrader kommer dessa uppgifter som en kommentarsrad före datan, inte som en header.
Prompt-cache
Om modellen stöder cachning kan ett långt prefix som skickas igen (systeminstruktion, dokument) kosta mindre. Priser för läsning och skrivning i cache visas på modellens post i katalogen. Modellutvecklaren avgör om cachen träffas; Ailoot garanterar inte det.