VROEGE TOEGANG: Functies, prijzen en parameters kunnen in de toekomst wijzigen.
Blibs-gebaseerde architectuur met geoptimaliseerde prestaties levert onze OpenAI-compatibele API hoogwaardige inferentie voor grote taalmodellen — zonder dat u aan uw kant gedediceerde GPU-resources nodig heeft. Uitgesloten gehost in EU-datacenters, garandeert dit naadloze integratie met uw applicaties terwijl het strikt voldoet aan GDPR-normen. Dankzij de schaalbare infrastructuur van Trooper.AI elimineert deze oplossing hardwarebeperkingen en maakt kostenefficiënte implementatie mogelijk voor zowel startups als ondernemingen. Of u nu chatbots bouwt, modellen fijnstelt of generatieve AI-workflows implementeert, onze API biedt laaglatentie-antwoorden met betrouwbaarheid op enterprise-niveau.
Ontworpen voor flexibiliteit, integreert de dienst naadloos met bestaande pipelines via eenvoudige endpoints en ondersteunt zowel batchverwerking als realtime-opdrachten. Met behulp van duurzame opslag en geavanceerde beveiligingsprotocollen – waaronder firewalls en DDoS-bescherming – garandeert het platform onderbrekingsvrije beschikbaarheid voor kritieke AI-taken. Ontdek hieronder onze op maat gemaakte configuraties om aan de eisen van uw project te voldoen.
Onze basisprijzen zijn als volgt. Eventuele extra kosten per land kunnen van toepassing zijn bij bestelling van API Blib. Ook kunt u profiteren van onze regelmatige Extra Credits Promoties!
| Route | Model | Context | Input/1M | Output/1M | +33% Actie | Krachtpunten |
|---|---|---|---|---|---|---|
| liv | Google Gemma 4 2,3B + 0,15B (visie) + 0,3B (geluid) | 20,380 | €0.029 | €0.049 | Tekst, Visie, Geluid, Redeneren, Tools, JSON | |
| clara | Mistral Ministral 3 - 13,5B + 0,4B (visie) | 9,248 | €0.139 | €0.249 | EU-model, Visie, Tools, Tekst, JSON | |
| nikola | NVIDIA Nemotron 3 Nano 30B MoE (128 experts, actief: 6 bij ~3,5B) | 20,480 | €0.159 | €0.319 | Tekst, Redeneren, Tools, Coderen, JSON |
* Huidige actie: ontvang +33% extra credits bij een betaling van minimaal €150 deze maand. Betaal €150 en krijg €200 op je rekening!
Voordat u onze API kunt gebruiken, dient u uw API Blib aan te vragen op onze website:
API-Blib bestellen
Je kunt je Model en Regio kiezen en na het deployen van jouw gewenste model zie je iets dergelijks in je Management Dashboard:
Wij bieden een gratis systeemprompt tot maximaal 1.024 tekens aan. De gratis systeemprompt is alleen beschikbaar via het dashboard! Dynamische systeemboodschappen die via de API worden verzonden, worden zoals gebruikelijk in rekening gebracht. Klik op Acties en je ziet het dialoogvenster voor bewerken van de systeemprompt:
Ga nu aan de slag en bestel je API Blib:
Als u onze LLM-endpunten wilt vergelijken met andere LLM-platforms, kunt u hier ons gratis LLM-kwaliteitstesttool gebruiken: Dit ziet er zo uit:
Test elke met OpenAI-compatibele LLM-endpoint op 25 geautomatiseerde kwaliteitscontroles – redeneren, coderen, meertalig, gestructureerd antwoord, toolgebruik en meer.
https://eu.router.trooper.ai/v1
Regionale eindpunten voor landniveau gegevensopslag:
| Domein | Regio |
|---|---|
eu.router.trooper.ai |
EU (alle EU-datacenters) |
de.router.trooper.ai |
Alleen Duitsland |
nl.router.trooper.ai |
Alleen Nederland |
Alle verzoeken vereisen een Bearer-token. Haal uw API-sleutel op uit het
Authorization: Bearer YOUR_TROOPER_KEY
Activeer routes op trooper.ai/order-apiblib. Elke route levert een modelnaam die je gebruikt voor API-aanroepen.
| Route | Basismodel | Krachtpunten |
|---|---|---|
| liv | Google Gemma 4 | Goedkoopste. Tekst, afbeeldingen, audio en redeneren. Geschikt voor hoge werkbelastingen. |
| clara | Mistral Ministral 3 | Visiegericht. Snelle verwerkingssnelheid, sterke ondersteuning voor EU-talen. |
| nikola | NVIDIA Nemotron 3 Nano | Redeneringskrachtig. Codegeneratie, functie-aanroepen en agentische workflows. |
/v1/chat/completionsStandaard OpenAI-compatibele chatcompleties-endpoint.
/v1/modelsLaatst uw geactiveerde modellen zien. Vereist authenticatie. Geeft alleen modellen terug die overeenkomen met het gebied van het domein dat u aanroept.
Elk modelobject bevat:
| Veld | Type | Beschrijving |
|---|---|---|
id |
ontworpen | De naam van uw route (gebruikt als model (bij verzoeken). |
object |
ontworpen | Altijd "model". |
owned_by |
ontworpen | Eigenaaridentificatie. |
created |
getal | Unix-tijdstempel van aanmaak. |
base_models |
lijst |
Onderliggende modelnaam(en). |
context_length |
getal | Maximale contextvenster (tokens) |
max_tokens |
getal | Maximaal aantal uitvoer-tokens. |
capabilities |
object | Kenmerken/flags voor dit model (zie hieronder). |
supported_parameters |
lijst |
Parameters die door dit model worden geaccepteerd. |
Capaciteiten-object:
| Vlag | Type | Beschrijving |
|---|---|---|
thinking |
boolean | Ondersteunt reasoning_effort en ketenredenering (chain-of-thought). |
tools |
boolean | Ondersteunt functieaanroepen / tools. |
vision |
boolean | Ondersteunt afbeeldingen en PDF-inputs. |
audio |
boolean | Ondersteunt audio-inputs. |
json_mode |
boolean | Ondersteunt response_format (JSON-modus / gestructureerde uitvoer) |
token_budget |
boolean | Ondersteunt expliciete denktokenbudgetbeheersing. |
Gebruik capabilities.thinking om te bepalen of een model redeneringsparameters accepteert voordat ze worden verzonden.
Voorbeeldantwoord:
{
"object": "list",
"data": [
{
"id": "clara",
"object": "model",
"owned_by": "trooper_42",
"created": 1700000000,
"base_models": ["Ministral-3"],
"context_length": 131072,
"max_tokens": 131072,
"capabilities": {
"tools": true,
"vision": true,
"audio": false,
"thinking": false,
"json_mode": true,
"token_budget": false
},
"supported_parameters": [
"temperature", "top_p", "max_tokens", "stream",
"response_format", "tools", "tool_choice"
]
}
]
}
/healthLevert beschikbaarheid van de endpoint en regio-informatie.
Alle parameters volgen het formaat van de OpenAI Chat Completions API.
| Parameter | Type | Beschrijving |
|---|---|---|
model |
ontworpen | Je route-naam (bijv. "clara", "nikola", "liv") |
messages |
matrix | Lijst met berichtobjecten (role + content) |
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
max_tokens |
getal | automatisch (32–4096) | Maximaal aantal uitvoertokens. Automatisch aangepast aan het contextvenster van de route. |
max_completion_tokens |
getal | — | Alias voor max_tokens. |
stream |
boolean | false |
Stroom SSE inschakelen. |
temperature |
getal | standaardmodel | Monsternemeratuur (0–2). |
top_p |
getal | standaardmodel | Kernsteekproef. |
response_format |
object | — | {"type": "json_object"} or {"type": "json_schema", "json_schema": {...}} |
tools |
matrix | — | Functieaanroep-tooldefinities (OpenAI-formaat) |
tool_choice |
string/objec | — | Stuurt keuze van tool ("auto", "none", of een specifiek hulpmiddel. |
reasoning |
object | — | `{"inspanning": "geen"} |
reasoning_effort |
ontworpen | — | Korte notatie: "none", "medium", "high". |
reasoning.exclude |
boolean | false |
Verwijder redeneerinhoud uit het antwoord. |
Standaard SSE-streaming, volledig compatibel met de OpenAI SDK.
{ "stream": true }
Antwoordformaat: data: {...}\n\n regels, afgesloten met data: [DONE]\n\n.
Vraag een gestructureerde JSON-output op. Zorg er niet alleen voor dat je de JSON-vraag in de tekstboodschap instelt, maar zet ook minstens response_format naar json_object!
Indien het model geen geldig JSON genereert, wordt u niet in rekening gebracht.
{ "response_format": { "type": "json_object" } }
Met een schema:
{
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "my_schema",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" }
},
"required": ["name", "age"]
}
}
}
}
Stuur afbeeldingen op via een URL of base64. PDF's worden automatisch omgezet naar pagina-afbeeldingen serverside.
{
"messages": [{
"role": "user",
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/photo.jpg" } },
{ "type": "text", "text": "Describe this image." }
]
}]
}
Base64:
{
"type": "image_url",
"image_url": { "url": "data:image/png;base64,iVBOR..." }
}
Audiobestanden kunnen worden verzonden via multimodale berichten. Ondersteund op liv.
Stuur aan hoe diep het model nadenkt (stap-voor-stap redeneren) voordat het antwoordt.
| Waarde | Werking |
|---|---|
"none" |
Denken uitgeschakeld – snelste antwoorden, laagste tokengebruik. |
"low" |
Nadenken uitgeschakeld — hetzelfde als niets. |
"medium" |
aan — het model redeneert stap voor stap voordat het antwoordt. Goede balans tussen kwaliteit en snelheid. |
"high" |
Aan + diep — het model wordt geïnstrueerd om zeer zorgvuldig en in grote detail na te denken. Ideaal voor complexe wiskunde, logica en code. Als max_tokens is ingesteld, moet dit minimaal zijn op 4 096, anders wordt de aanvraag afgewezen. |
Standaard nadenken inschakelen:
{ "reasoning_effort": "medium" }
Schakel diep nadenken in voor maximale kwaliteit:
{ "reasoning_effort": "high" }
Of via de reasoning veld:
{ "reasoning": { "effort": "high" } }
Denkproces expliciet uitschakelen:
{ "reasoning_effort": "none" }
Om de redenen uit het antwoord te verwijderen (het denken vindt nog steeds plaats, maar de redeneringstokens worden niet teruggegeven):
{ "reasoning": { "effort": "high", "exclude": true } }
Denkgedrag kan ook per route worden geconfigureerd in het beheerdashboard. De instelling van het dashboard bepaalt het standaardgedrag en hoe de redenatie wordt teruggegeven:
"reasoning_effort": "medium" of "high"redenerings_inhoud.<denk>-tags binnen de inhoud.Redundantie bij redeneren: als het model vastloopt in een redeneringslus, herstelt de router automatisch en levert een bruikbare respons.
Standaard OpenAI-toolsformaat. Werkt met alle routes.
{
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": { "type": "string" }
},
"required": ["location"]
}
}
}],
"tool_choice": "auto"
}
Als uw invoer de contextvenster overschrijdt, comprimeert de router automatisch het midden van het gesprek om ervoor te zorgen dat alles past – geen handmatige inkorting nodig. U ontvangt altijd een antwoord.
Een gratis systeemopdracht kan per route worden ingesteld via het beheerdashboard. Het wordt automatisch aan elke aanvraag toegevoegd en kost niets.
Standaard OpenAI-antwoordstructuur:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "clara",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 8,
"total_tokens": 20
}
}
Bij het inschakelen van redenering kan de respons ook reasoning_content naast content.
Elk antwoord bevat een x-transaction-id koptekst voor facturatieverwijzing en debuggen.
Fouten volgen het OpenAI-foutformaat:
{
"error": {
"message": "The model 'nonexistent' does not exist.",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}
| HTTP-status | Code | Beschrijving |
|---|---|---|
| 400 | invalid_value |
Ontbrekend model, API-sleutel, invoer te kort of ongeldig max_tokens. |
| 403 | invalid_api_key |
Ongeldige API-sleutel of onvoldoende budget. |
| 404 | model_not_found |
Model bestaat niet of is niet geactiveerd. |
| 404 | region_mismatch |
Model niet beschikbaar in de gevraagde regio. |
| 500 | — | Interne routerfout. |
| 503 | — | Geen endpoints beschikbaar in de gevraagde regio. |
Zie populaire voorbeelden van code om een met de OpenAI-compatibele API te gebruiken voor LLM-inferentie. Vervang router.trooper.ai door het eindpunt-URL zoals weergegeven in uw API Blib Bestelling!
from openai import OpenAI
client = OpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY"
)
response = client.chat.completions.create(
model="clara",
messages=[{"role": "user", "content": "Summarize this document."}],
max_tokens=1024
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://router.trooper.ai/v1",
apiKey: "YOUR_TROOPER_KEY",
});
const response = await client.chat.completions.create({
model: "nikola",
messages: [{ role: "user", content: "Write a unit test for this function." }],
max_tokens: 2048,
});
console.log(response.choices[0].message.content);
from openai import OpenAI
client = OpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY"
)
stream = client.chat.completions.create(
model="liv",
messages=[{"role": "user", "content": "Explain quantum computing."}],
max_tokens=2048,
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
import json
from openai import OpenAI
client = OpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY"
)
response = client.chat.completions.create(
model="clara",
messages=[{"role": "user", "content": "List the 3 largest EU countries as JSON with name and population."}],
max_tokens=512,
response_format={"type": "json_object"}
)
data = json.loads(response.choices[0].message.content)
print(data)
from openai import OpenAI
client = OpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY"
)
response = client.chat.completions.create(
model="clara",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://example.com/invoice.png"}},
{"type": "text", "text": "Extract all line items from this invoice as JSON."}
]
}],
max_tokens=2048,
response_format={"type": "json_object"}
)
print(response.choices[0].message.content)
from openai import OpenAI
client = OpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY"
)
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"}
},
"required": ["location"]
}
}
}]
response = client.chat.completions.create(
model="nikola",
messages=[{"role": "user", "content": "What's the weather in Berlin?"}],
tools=tools,
tool_choice="auto",
max_tokens=512
)
tool_calls = response.choices[0].message.tool_calls
if tool_calls:
print(tool_calls[0].function.name, tool_calls[0].function.arguments)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY",
model="clara",
max_tokens=1024
)
response = llm.invoke("Extract all dates from the following text: ...")
print(response.content)
from llama_index.llms.openai_like import OpenAILike
llm = OpenAILike(
api_base="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY",
model="nikola",
max_tokens=2048
)
response = llm.complete("Explain the EU AI Act in simple terms.")
print(response.text)
curl https://router.trooper.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_TROOPER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "clara",
"messages": [{"role": "user", "content": "Hello!"}],
"max_tokens": 512
}'
Éénregelige aanpassing — werk de basis-URL en API-sleutel bij:
# Before (OpenAI)
client = OpenAI(api_key="sk-...")
# After (Trooper.AI)
client = OpenAI(
base_url="https://router.trooper.ai/v1",
api_key="YOUR_TROOPER_KEY"
)
Alles anders blijft hetzelfde: het aanvraagformaat, responsschema, streamen, tools en JSON-modus.