Endpoints
Prompt caching
Hergebruik lange prompts met korting via automatische caching en expliciete cache_control, en lees het gecachete tokenverbruik af in usage.
Probeer het in de playgroundPrompt caching hergebruikt de verwerkte prefix van een lange prompt, zoals een systeemprompt, documenten of tooldefinities, over requests heen. Cachelezingen kosten veel minder dan gewone invoertokens. api14 geeft de cacheprijzen van de provider ongewijzigd door: input_cache_read en input_cache_write staan per model vermeld in Modellen.
Automatische caching
Deze providers cachen zelf. Je hoeft niets aan te passen:
| Provider | Minimale prompt | Prijs cachelezing | Prijs cacheschrijven |
|---|---|---|---|
| OpenAI | 1.024 tokens | ~0,25 tot 0,5× invoer | gratis |
| DeepSeek | automatisch | ~0,1× invoer | ~1× invoer |
| Grok, Moonshot, Groq | automatisch | met korting | gratis |
| Google Gemini 2.5 | impliciet, afhankelijk van het model | ~0,25× invoer | gratis |
Zet de delen die niet veranderen vooraan in de prompt en de delen die wel veranderen achteraan, zodat de prefix tussen requests overeenkomt.
Expliciete caching met cache_control
Anthropic Claude (en expliciete caching van Gemini) hebben breakpoints nodig. Voeg cache_control toe aan een tekstdeel van de content:
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "system",
"content": [
{ "type": "text", "text": "You are a contracts assistant." },
{
"type": "text",
"text": "<the full 40-page agreement text>",
"cache_control": { "type": "ephemeral" }
}
]
},
{ "role": "user", "content": "Which clause covers termination?" }
]
}
- Anthropic staat tot 4 breakpoints toe. De cache blijft ongeveer 5 minuten bestaan en wordt bij elke treffer ververst. Gebruik
"ttl": "1h"voor een langere cache, die duurder is om te schrijven. - Cacheschrijfacties kosten bij Anthropic ongeveer 1,25× invoer, en lezingen ongeveer 0,1×.
- Om dezelfde cache van een provider te blijven raken, voeg je zo nodig
provider: { "order": ["Anthropic"], "allow_fallbacks": false }toe.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Cachegebruik uitlezen
Het object usage toont gecachete tokens, en cost bevat de korting al:
{
"usage": {
"prompt_tokens": 10450,
"completion_tokens": 120,
"total_tokens": 10570,
"prompt_tokens_details": { "cached_tokens": 10200 },
"cost": 0.004863
}
}
cached_tokens verschijnt ook in je gebruikslogs in het dashboard. Generatie opzoeken toont de volledige uitsplitsing, inclusief cache_discount.
Fouten
Caching veroorzaakt zelf nooit fouten. Een ongeldige cache_control wordt genegeerd of door de provider met een 400 geweigerd. Zie Fouten.