SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor

LiteLLM vs OpenRouter: LLM-gateway zelf hosten of huren

OpenRouter rekent een toeslag op credits en ziet je prompts. LiteLLM op een eigen VPS kost onderhoud. Wat elk betekent voor je kosten en de AVG, met een beslisregel per situatie.

LiteLLM of OpenRouter: het korte antwoord

LiteLLM of OpenRouter is geen keuze tussen twee versies van hetzelfde product. OpenRouter is een gehoste dienst in de Verenigde Staten: je koopt credits in dollars en roept honderden modellen aan met één API-sleutel (API: application programming interface). LiteLLM is open-source software die je zelf op een VPS (virtual private server) draait, als proxy voor je eigen sleutels bij elke modelprovider. De twee sluiten elkaar ook niet uit, want LiteLLM kan OpenRouter gebruiken als een van zijn providers.

Bij OpenRouter betaal je een toeslag op je credits, en een extra partij verwerkt je verkeer. Bij LiteLLM betaal je geen toeslag. Je betaalt wel een server, een database en je eigen tijd. Voor een Nederlands team telt daarnaast de AVG (Algemene verordening gegevensbescherming, de Nederlandse naam voor de GDPR). Per keuze staat hieronder wat er juridisch verandert, en wat niet.

Alle feiten over OpenRouter hieronder zijn gelezen op 7 oktober 2026, in de FAQ, de documentatie en de verwerkersovereenkomst. Prijzen en voorwaarden veranderen. Controleer ze opnieuw voordat je een keuze vastlegt.

Wat doen de twee precies?

Beide zijn een gateway: één endpoint dat de OpenAI-API nabootst, met meerdere modellen erachter. Je code praat met één adres. De gateway beslist naar welke provider een verzoek gaat.

Het verschil zit in wie de gateway beheert. Bij OpenRouter is dat OpenRouter, Inc. in New York. Hun servers ontvangen je prompt, kiezen een provider en sturen het antwoord terug. Bij LiteLLM ben jij de beheerder. De proxy draait op jouw VPS, met jouw sleutels voor OpenAI, Anthropic, Mistral of een lokaal model. Hoe je die proxy installeert, staat in de handleiding voor een eigen LiteLLM-gateway op een VPS. Hier gaat het om de keuze, niet om de installatie.

Wat kost OpenRouter echt?

OpenRouter rekent geen opslag op de modelprijs. De FAQ zegt dat je per token hetzelfde betaalt als bij de provider zelf. OpenRouter verdient aan de aankoop van credits. Op 7 oktober 2026 is dat 5,5% bij betaling met een kaart, met een minimum van $0,80 per aankoop. Bij betaling in crypto is het 5%. Alle prijzen staan in Amerikaanse dollars. Betaal je in euro's, dan komen de wisselkoerskosten van je bank of kaart daar nog bij.

Dat minimum van $0,80 maakt kleine aankopen relatief duur. De grafiek hieronder rekent de effectieve toeslag uit voor een paar aankoopbedragen. Het zijn berekeningen op basis van de gepubliceerde tarieven, geen metingen.

GrafiekEffectieve toeslag op OpenRouter-credits per aankoopbedrag (berekend, tarieven oktober 2026)
De gegevens achter deze grafiek
[
  {
    "label": "$5 credits",
    "kaart_pct": 16,
    "crypto_pct": 5
  },
  {
    "label": "$10 credits",
    "kaart_pct": 8,
    "crypto_pct": 5
  },
  {
    "label": "$25 credits",
    "kaart_pct": 5.5,
    "crypto_pct": 5
  },
  {
    "label": "$100 credits",
    "kaart_pct": 5.5,
    "crypto_pct": 5
  },
  {
    "label": "$500 credits",
    "kaart_pct": 5.5,
    "crypto_pct": 5
  }
]

Wie telkens $5 bijkoopt met een kaart, betaalt dus 16% toeslag. Bij $10 is het 8%. Vanaf ongeveer $15 per aankoop zakt het naar de vaste 5,5%, omdat 5,5% van $14,55 ongeveer $0,80 is. De les is eenvoudig: koop minder vaak, en dan meer tegelijk.

Twee andere regels uit dezelfde FAQ zijn belangrijk. Ten eerste logt OpenRouter standaard je prompts en antwoorden niet. Je kunt logging wel aanzetten, en dan krijg je 1% korting. Voor een team met klantgegevens is dat een slechte ruil, want dan bewaart een extra partij je prompts voor één procent korting. Ten tweede is er BYOK (bring your own key): je koppelt je eigen providersleutel aan OpenRouter. Op pay-as-you-go is BYOK-verkeer gratis tot $25.000 per maand, gemeten in de lijstprijs van de modellen. Daarboven betaal je 5% van wat hetzelfde verkeer via OpenRouter zou kosten. Bijna elk klein team blijft met BYOK dus onder die grens.

Wat kost een eigen LiteLLM-proxy?

LiteLLM zelf is gratis, en er zit geen toeslag op je tokens. Je betaalt de provider direct, tegen hun eigen tarief. Een proxy die je zelf draait, heeft wel eigen kosten. Die zijn minder zichtbaar, dus hier staan ze apart.

  • De VPS. Een kleine VPS met 2 vCPU en 4 GB geheugen is genoeg voor een team. De proxy doet zelf geen inferentie. Hij stuurt verzoeken alleen door.
  • PostgreSQL. Zonder database werkt LiteLLM alleen met de hoofdsleutel uit je config. Virtuele sleutels per app, budgetten en uitgavenlogs vragen een Postgres-database via DATABASE_URL. Die database moet je back-uppen, want daarin staan de sleutels en de uitgaven.
  • Upgrades. LiteLLM brengt vaak nieuwe versies uit. Elke upgrade kan het gedrag van de proxy veranderen, dus elke upgrade vraagt een korte test.
  • Je eigen tijd. Iemand moet de server patchen, de logs lezen, de back-ups controleren en sleutels intrekken als een medewerker vertrekt. Dat werk verdwijnt niet. Het ligt bij jou in plaats van bij OpenRouter.

Het grootste risico is de toeleveringsketen. Op 24 maart 2026 stonden er twee besmette versies van het litellm-pakket op PyPI, de pakketindex van Python: 1.82.7 en 1.82.8. Een aanvaller had de PyPI-inloggegevens van de maintainers buitgemaakt via een eerder gecompromitteerde tool in hun CI (continuous integration, de automatische bouwstraat). De besmette versies stalen omgevingsvariabelen, SSH-sleutels, cloudsleutels en databasewachtwoorden. Ze stonden ongeveer drie uur online. Een gateway is juist de plek waar al je API-sleutels samenkomen, dus een besmette gateway lekt alles in één keer.

Daaruit volgt één harde regel: pin een versie. Draai nooit pip install litellm zonder versienummer, en gebruik op productie geen zwevende Docker-tag zoals main-latest of main-stable. Kies een vaste versie-tag, lees de release notes, test op een tweede machine en upgrade pas daarna. De Docker-images van LiteLLM zijn ondertekend met cosign, zodat je de herkomst kunt controleren. Zeg ook eerlijk wie dit werk doet. Is er niemand die het kan dragen, dan is de gehoste dienst de veiligere keuze, want OpenRouter doet dat werk voor zijn eigen platform.

Kun je LiteLLM en OpenRouter combineren?

Ja, en voor veel teams is dat de beste opzet. LiteLLM ondersteunt OpenRouter als provider. Elk model krijgt het voorvoegsel openrouter/, en de sleutel staat in de omgevingsvariabele OPENROUTER_API_KEY. Zo stuur je je vaste, zware verkeer direct naar een provider. OpenRouter gebruik je dan voor modellen die je maar af en toe probeert.

model_list:
  - model_name: mistral-large
    litellm_params:
      model: mistral/mistral-large-latest
      api_key: os.environ/MISTRAL_API_KEY
  - model_name: llama-70b
    litellm_params:
      model: openrouter/meta-llama/llama-3.3-70b-instruct
      api_key: os.environ/OPENROUTER_API_KEY

Je apps zien twee modelnamen op één endpoint. Ze weten niet dat het tweede model via OpenRouter loopt. Je virtuele sleutels en budgetten in LiteLLM gelden voor beide. Let wel op: verkeer naar llama-70b gaat nog steeds via OpenRouter in de VS. De combinatie haalt die tussenpartij alleen weg voor de modellen die je direct aanroept. Hoe je verzoeken over modellen verdeelt, bijvoorbeeld goedkope modellen voor eenvoudige taken, staat in routering over meerdere modellen voor coding agents.

Hoe zet je sleutels en budgetten per app?

Beide kunnen een uitgavenlimiet per sleutel zetten. Bij OpenRouter heeft een API-sleutel een optionele kredietlimiet, met een veld limit_reset voor een periodieke reset. Je beheert die sleutels in het dashboard of met een aparte beheersleutel.

LiteLLM gaat verder, omdat het ook je directe providersleutels afschermt. Een app krijgt een virtuele sleutel. De echte sleutel van Mistral of OpenAI verlaat de proxy nooit. Een sleutel met een budget van $50 per 30 dagen, beperkt tot één model, maak je zo aan:

curl -X POST 'http://localhost:4000/key/generate' \
  -H 'Authorization: Bearer <LITELLM_MASTER_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{"models": ["mistral-large"], "max_budget": 50, "budget_duration": "30d", "metadata": {"app": "support-bot"}}'

Het antwoord bevat een veld key dat begint met sk-. Een 401 betekent dat de hoofdsleutel niet klopt. Meldt de proxy dat er geen database is verbonden, dan ontbreekt DATABASE_URL, want virtuele sleutels worden in Postgres bewaard. Het budget is in dollars, omdat LiteLLM kosten berekent met de dollarprijzen van de providers. Wil je per verzoek zien wat een app deed, zet dan tracing naast de proxy, zoals in tracing van je agents met een zelfgehoste Langfuse. Tracing slaat prompts op, dus ook die database valt dan onder de AVG.

Wat verandert de keuze voor de AVG?

Begin bij de rollen. Jouw organisatie bepaalt waarom en hoe persoonsgegevens in een prompt worden verwerkt. Daarmee ben je de verwerkingsverantwoordelijke. Elke partij die die prompt namens jou verwerkt, is een verwerker. Met elke verwerker heb je volgens artikel 28 van de AVG een verwerkersovereenkomst nodig.

Is OpenRouter een verwerker?

Ja. OpenRouter verwerkt je prompts namens jou, en zegt dat ook zelf. Hun DPA (data processing agreement, de Engelse term voor verwerkersovereenkomst) noemt de klant de verantwoordelijke en OpenRouter de verwerker. De versie die op 7 oktober 2026 online staat, is bijgewerkt op 26 augustus 2026. Je hoeft niets apart te tekenen: de DPA is onderdeel van de voorwaarden en geldt zodra je die accepteert. Download wel de geldende versie, en bewaar die bij je verwerkingsregister.

Drie punten uit die DPA moet je kennen. Ten eerste gaan de gegevens naar OpenRouter, Inc. in New York, en de doorgifte buiten de EU rust op de SCC's (standaardcontractbepalingen van de Europese Commissie). Bij SCC's hoort een eigen beoordeling van de doorgifterisico's, en die moet jij maken. Ten tweede zijn de modelproviders subverwerkers van OpenRouter. De lijst staat op trust.openrouter.ai, en je kunt in je instellingen providers uitsluiten. Ten derde noemt de DPA ZDR (zero data retention): OpenRouter bewaart de inhoud van een verzoek dan niet na afloop, op korte technische buffers na.

Wil je dat prompts de EU niet verlaten, dan biedt OpenRouter in-region routing via https://eu.openrouter.ai. Verzoeken worden dan alleen in de EU ontsleuteld en alleen naar providers in de EU gestuurd. Op 7 oktober 2026 kan dat alleen op het Business- en het Enterprise-plan, niet op pay-as-you-go. Business kun je volgens de documentatie zelf activeren in de instellingen. Enterprise gaat via een aanvraag bij het salesteam. Er is geen schakelaar: je kiest de regio door het verzoek naar dat adres te sturen.

Wat verandert LiteLLM op een EU-server?

Draai je LiteLLM op een VPS in de EU, dan verdwijnt de Amerikaanse tussenpartij. Er komt wel een andere verwerker bij: je hostingprovider. Ook met hen heb je een verwerkersovereenkomst nodig.

Belangrijker: de modelprovider ontvangt nog steeds elke prompt. Stuurt je proxy een verzoek naar een Amerikaans model, dan gaan de gegevens alsnog naar de VS. LiteLLM verandert alleen het pad, niet de bestemming. Je hebt dus met elke provider in je config een eigen verwerkersovereenkomst nodig, en voor elke provider buiten de EU een eigen beoordeling van de doorgifte. Echte EU-verwerking krijg je alleen als ook het model in de EU draait, bij een Europese provider of op hardware die je zelf beheert. Gaat het om persoonsgegevens die al in een agent zijn beland, lees dan ook persoonsgegevens wissen uit het geheugen van een agent.

Welke kies je? Een beslisregel voor drie situaties

Eén ontwikkelaar die experimenteert

Neem OpenRouter. Eén sleutel geeft je honderden modellen, zonder server. Koop credits in grotere stappen, zodat het minimum van $0,80 niet telt. Laat logging uit en stuur geen echte klantgegevens mee.

Een team met sleutels en budgetten per app

Neem LiteLLM op een VPS met Postgres, en zet OpenRouter erachter als één provider voor de modellen die je alleen soms gebruikt. Zo krijgt elke app een eigen sleutel en budget, en blijven je echte providersleutels op één plek. Wijs één persoon aan die de versie pint, upgrades test, de server patcht en de database back-upt. Is er niemand voor dat werk, gebruik dan alleen OpenRouter met een kredietlimiet per sleutel.

Een organisatie met een EU-residentie-eis

Neem LiteLLM op een server in de EU, en roep alleen modellen aan die in de EU verwerken. Laat OpenRouter weg uit de config, of gebruik alleen eu.openrouter.ai op een Business- of Enterprise-plan. Sluit verwerkersovereenkomsten met de hostingprovider en met elke modelprovider. Leg in je verwerkingsregister vast welk model welke gegevens krijgt.

FAQ

Is OpenRouter duurder dan de provider direct aanroepen?

Per token niet. OpenRouter rekent volgens de eigen FAQ dezelfde modelprijs als de provider. Je betaalt wel een toeslag op de aankoop van credits: op 7 oktober 2026 is dat 5,5% met een kaart, met een minimum van $0,80, en 5% in crypto. Bij kleine aankopen weegt dat minimum zwaar, dus koop credits in grotere bedragen.

Heb ik een verwerkersovereenkomst nodig met OpenRouter?

Ja, als je prompts persoonsgegevens bevatten. OpenRouter verwerkt die namens jou en is dus een verwerker. OpenRouter biedt een DPA die automatisch deel uitmaakt van de voorwaarden, met standaardcontractbepalingen voor de doorgifte naar de VS. Bewaar de geldende versie, en maak zelf een beoordeling van de doorgifterisico's.

Maakt LiteLLM op een EU-VPS mijn gebruik van taalmodellen AVG-proof?

Nee, niet vanzelf. LiteLLM haalt de tussenpartij weg, maar de modelprovider ontvangt nog steeds elke prompt. Als die provider in de VS verwerkt, gaan de gegevens alsnog daarheen. Je hebt met elke modelprovider een eigen verwerkersovereenkomst nodig, en ook met je hostingprovider.

Kan LiteLLM OpenRouter als provider gebruiken?

Ja. Zet de sleutel in OPENROUTER_API_KEY en geef het model het voorvoegsel openrouter/, bijvoorbeeld openrouter/meta-llama/llama-3.3-70b-instruct. Je virtuele sleutels en budgetten in LiteLLM gelden dan ook voor dat verkeer. Dat verkeer loopt wel nog steeds via OpenRouter in de VS.

Welke LiteLLM-versie moet ik draaien?

Een vaste versie die je zelf hebt getest, nooit een zwevende tag. Op 24 maart 2026 stonden de besmette versies 1.82.7 en 1.82.8 ongeveer drie uur op PyPI, en die stalen sleutels uit de omgeving. Pin het versienummer in je installatie of in je Docker-tag, lees de release notes en upgrade bewust.