Blibs-API — Handleiding voor Ontwikkelaars

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.

Bestel API Blib nu


Modellen en Prijsinformatie

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 €0,029 €0,022 binnenkomend, €0,049 €0,037 uitgaand Tekst, Visie, Geluid, Redeneren, Tools, JSON
clara Mistral Ministral 3 - 13,5B + 0,4B (visie) 9,248 €0.139 €0.249 €0.139 €0,105 binnen, €0.249 €0,187 buiten 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 €0.159 €0.120 binnen, €0.319 €0.240 buiten 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!


Hoe bestel je jouw API-blok?

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:

API Blib in your Dashboard
API Blib in uw Dashboard


Gratis statische systeemprompt

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:

API Blib Static System Prompt
Standaard systeemprompt voor API Blib

Ga nu aan de slag en bestel je API Blib:

Bestel API Blib nu


LLM-Benchmark 🧪

LLM Quality Benchmark Interface
LLM-kwaliteitsbenchmarkinterface

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.


Basis URL

Code
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

Authenticatie

Alle verzoeken vereisen een Bearer-token. Haal uw API-sleutel op uit het

Code
Authorization: Bearer YOUR_TROOPER_KEY

Beschikbare modellen

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.

API-eindpunten

POST /v1/chat/completions

Standaard OpenAI-compatibele chatcompleties-endpoint.

GET /v1/models

Laatst 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:

json
{
  "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"
      ]
    }
  ]
}

GET /health

Levert beschikbaarheid van de endpoint en regio-informatie.

Bestel API Blib nu


Verzoekparameters

Alle parameters volgen het formaat van de OpenAI Chat Completions API.

Vereist

Parameter Type Beschrijving
model ontworpen Je route-naam (bijv. "clara", "nikola", "liv")
messages matrix Lijst met berichtobjecten (role + content)

Optioneel

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.

Functies

Stroomuitvoer

Standaard SSE-streaming, volledig compatibel met de OpenAI SDK.

json
{ "stream": true }

Antwoordformaat: data: {...}\n\n regels, afgesloten met data: [DONE]\n\n.

JSON-modus

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.

json
{ "response_format": { "type": "json_object" } }

Met een schema:

json
{
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "my_schema",
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "age": { "type": "integer" }
        },
        "required": ["name", "age"]
      }
    }
  }
}

Visie (Afbeeldingen & PDF's)

Stuur afbeeldingen op via een URL of base64. PDF's worden automatisch omgezet naar pagina-afbeeldingen serverside.

json
{
  "messages": [{
    "role": "user",
    "content": [
      { "type": "image_url", "image_url": { "url": "https://example.com/photo.jpg" } },
      { "type": "text", "text": "Describe this image." }
    ]
  }]
}

Base64:

json
{
  "type": "image_url",
  "image_url": { "url": "data:image/png;base64,iVBOR..." }
}
  • Afbeeldingen worden automatisch aangepast op formaat en ontdaan van metadata (veilig voor SSRF).
  • Het maximale aantal en de grootte van afbeeldingen zijn afhankelijk van uw routeconfiguratie.
  • Ondersteund op de liv- en clara-routes.

Bijkomende landelijke prijzen kunnen van toepassing zijn op API-opdrachten. Profiteer ook van onze regelmatige Extra Credits Promoties!

Audiobestanden kunnen worden verzonden via multimodale berichten. Ondersteund op liv.

Denken / Redeneren

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:

json
{ "reasoning_effort": "medium" }

Schakel diep nadenken in voor maximale kwaliteit:

json
{ "reasoning_effort": "high" }

Of via de reasoning veld:

json
{ "reasoning": { "effort": "high" } }

Denkproces expliciet uitschakelen:

json
{ "reasoning_effort": "none" }

Om de redenen uit het antwoord te verwijderen (het denken vindt nog steeds plaats, maar de redeneringstokens worden niet teruggegeven):

json
{ "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:

Thinking Modes under Actions on supported Models
Denkmodi onder Acties op ondersteunde modellen

  • Uitgeschakeld — Denken standaard uit. Kan nog steeds per-verzoek worden ingeschakeld via "reasoning_effort": "medium" of "high"
  • Strippen — Denken staat aan, maar de redeneringstokens worden uit het antwoord verwijderd.
  • Redeneringsinhoud — Denken ingeschakeld, redeneringen worden teruggegeven in een apart veld redenerings_inhoud.
  • Denk-tag — Denken ingeschakeld, redeneringen worden teruggegeven als <denk>-tags binnen de inhoud.

Redundantie bij redeneren: als het model vastloopt in een redeneringslus, herstelt de router automatisch en levert een bruikbare respons.

Functieaanroepen / Gebruik van tools

Standaard OpenAI-toolsformaat. Werkt met alle routes.

json
{
  "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"
}

Automatische contextcompressie

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.

Stelselprompt

Een gratis systeemopdracht kan per route worden ingesteld via het beheerdashboard. Het wordt automatisch aan elke aanvraag toegevoegd en kost niets.


Antwoordformaat

Standaard OpenAI-antwoordstructuur:

json
{
  "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.

Transactie-ID

Elk antwoord bevat een x-transaction-id koptekst voor facturatieverwijzing en debuggen.


Foutafhandeling

Fouten volgen het OpenAI-foutformaat:

json
{
  "error": {
    "message": "The model 'nonexistent' does not exist.",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

Foutcodes

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.

Facturering

  • Prijs per token — invoering en uitvoer van tokens worden apart gefactureerd per miljoen tokens.
  • Geen kosten bij stilstand — je betaalt alleen als je API-aanvragen verzendt.
  • Voorafbetaalde crediten — vul je saldo aan en gebruik ze op.
  • Stelselprompt-tokens zijn gratis (niet in rekening gebracht).
  • Foutieve JSON-verzoeken worden niet in rekening gebracht bij gebruik van JSON-modus.
  • Visuele invoer wordt factuurd per eenheid (verwerkte afbeeldingen).

Bestel API Blib nu


Integratievoorbeelden

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!

Python (OpenAI SDK)

python
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)

Node.js (OpenAI-SDK)

javascript
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);

Python met streaming

python
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)

JSON-modus

python
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)

Visie (Afbeeldingsanalyse)

python
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)

Functie-aanroeping

python
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)

LangChain

python
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)

LlamaIndex

python
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

bash
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
  }'

Migratie van OpenAI

Éénregelige aanpassing — werk de basis-URL en API-sleutel bij:

python
# 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.


Gegevensresidentie & Naleving

  • ISO/IEC 27001-gecertificeerde datacenters in Duitsland en de EU
  • Geen gegevensopslag — prompts en antwoorden worden verwerkt in het RAM, nooit opgeslagen.
  • Voldoet aan de AVG — geen gegevensoverdracht buiten de EU, en er vindt géén modellentraining plaats met uw data.
  • Landniveau-routing beschikbaar (DE, NL of bredere EU).

Bestel API Blib nu