OpenRouter-Key besorgen und ersten Call machen
Konto anlegen, API-Key erzeugen, ersten Call per curl und SDK absetzen - und verstehen, was in der Response steckt.
Video
Video folgt
Hier erscheint demnächst eine begleitende Video-Anleitung.
Lokale Modelle sind super zum Lernen, aber sobald du längere Kontexte, hochwertigeres Reasoning oder native Tool-Use willst, führt kein Weg an einem Cloud-Modell vorbei. Für den Einstieg nehmen wir OpenRouter - nicht weil es das beste Modell hätte, sondern weil es die niedrigste Hürde vor dem ersten eigenen Call legt.
Drei Gründe:
- Ein Key, viele Modelle. OpenRouter ist ein Router, kein Modellanbieter. Hinter derselben Adresse liegen Claude, GPT, Gemini, Llama, Qwen und Hunderte mehr. Du wechselst das Modell, indem du einen String änderst - nicht, indem du dir ein neues Konto anlegst.
- Keine Firmenverifizierung. E-Mail, Passwort, Bestätigungslink, fertig. Direkt bei Anthropic oder OpenAI brauchst du je nach Region Telefonnummer und Zahlungsmethode, bevor überhaupt etwas geht.
- Kostenlose Modelle. Einige Modelle tragen den Zusatz
:freeund kosten nichts. Du kannst diesen Kurs komplett ohne Guthaben durchspielen.
Dazu kommt ein technischer Grund, der dir später viel Arbeit spart: OpenRouter spricht /v1/chat/completions, den Dialekt der OpenAI-API. Praktisch jedes SDK und jedes Agenten-Framework kann diesen Dialekt - und unser eigener Code hier auf building-agents.com fährt denselben Pfad.
In diesem Tutorial:
- Konto anlegen und ersten API-Key erzeugen
- Key in
.envablegen - Ersten Call per
curlund per SDK schicken - Die Response lesen -
content,finish_reason,usage - Den Key hier im Konto hinterlegen, damit die Experimente auf deinem Zugang laufen
Schritt 1 - Konto anlegen
Auf openrouter.ai/sign-up registrieren. Entweder mit GitHub/Google, oder klassisch mit E-Mail und Passwort:

Danach kommt eine Bestätigungsmail mit einem Link. Einmal klicken - das war's. Keine Telefonnummer, keine Kreditkarte, keine Firmenangaben.
Schritt 2 - Ersten API-Key erzeugen und sichern
Nach der Bestätigung legt OpenRouter dir direkt einen Arbeitsbereich samt erstem Key an. Weitere Keys erzeugst du jederzeit unter Settings → API Keys → „New Key".

Der Key beginnt mit sk-or-v1-…. Kopier ihn sofort - die vollständige Zeichenkette bekommst du kein zweites Mal zu sehen. Später zeigt die Oberfläche nur noch Anfang und Ende (sk-or-v1-e99…184), damit du deine Keys auseinanderhalten kannst.
Schritt 3 - Key in .env ablegen
Im Projekt-Root:
Diese vier Variablennamen sind exakt die, die dieses Projekt liest (siehe .env.example). LLM_PROVIDER=openai-compatible sagt dem Code: sprich den OpenAI-Dialekt gegen die Adresse in LLM_BASE_URL. Genau derselbe Schalter zeigt auch auf einen selbst gehosteten vLLM-Server - OpenRouter ist aus Sicht des Codes nur ein weiterer /v1-Endpunkt.
Das Modell wählst du über LLM_MODEL. Die Schreibweise ist immer anbieter/modell, ein angehängtes :free markiert die kostenlose Variante. Die vollständige Liste steht unter openrouter.ai/models.
Schritt 4 - Erster Call
Zwei Wege zum selben Ergebnis. Fang mit curl an: kein Projekt, keine Abhängigkeiten, du siehst rohes JSON.
Wenn das läuft, dieselbe Sache mit dem SDK. Du brauchst kein OpenRouter-SDK - das offizielle OpenAI-SDK reicht, du zeigst es nur auf eine andere Basis-URL:
Lege index.mjs an:
Ausführen:
Schritt 5 - Die Response lesen
Was zurückkommt, ist kein String, sondern ein strukturiertes Objekt. Gekürzt auf das Wesentliche:
Drei Felder, die du dir merken solltest:
choices[0].message.contentist die eigentliche Antwort.choicesist ein Array, weil die API grundsätzlich mehrere Alternativen zurückgeben kann - in der Praxis steht dort genau ein Element, solange du nichtn > 1anforderst.finish_reasonsagt dir, warum das Modell aufgehört hat.stop= fertig.length= anmax_tokensabgeschnitten.tool_calls= das Modell will ein Werkzeug benutzen. Diese Information ist später im Agent-Loop kritisch: sie entscheidet, ob du die Schleife noch einmal drehst.usageist deine Abrechnung.prompt_tokens× Input-Preis +completion_tokens× Output-Preis. OpenRouter legt zusätzlichcostbei - bei einem:free-Modell steht dort0.
Wenn du später direkt zu Anthropic wechselst
Die Anthropic-API spricht einen eigenen Dialekt. Dieselben drei Merkfelder heißen dort anders, und ein Feld ist strukturell verschieden:
| Was du brauchst | OpenAI-Dialekt (OpenRouter) | Anthropic-Dialekt |
|---|---|---|
| Der Text | choices[0].message.content (String) | content[0].text - content ist ein Array von Blöcken |
| Abbruchgrund | finish_reason: stop | length | tool_calls | stop_reason: end_turn | max_tokens | tool_use |
| Verbrauch | usage.prompt_tokens / completion_tokens | usage.input_tokens / output_tokens |
Der wichtige Unterschied ist die Zeile ganz oben: Bei Anthropic ist content immer ein Array. Bei reinem Text steht dort ein einzelner text-Block, bei Werkzeugnutzung kommen tool_use-Blöcke dazu. Wer content wie einen String behandelt, fällt genau dann auf die Nase, wenn es interessant wird.
Schritt 6 - Key hier im Konto hinterlegen
Damit die Experimente auf dieser Seite auf deinem Zugang laufen statt auf unserem, kannst du deinen Key einmal im Konto speichern: Konto → eigener LLM-Key. Provider „OpenRouter" wählen, Key einfügen, speichern.
Danach gilt: Jeder Call, den du in den Bausteinen und Laboren auslöst, geht mit deinem Key raus - dein Kontingent, deine Modellwahl, deine Rechnung. Der Key wird verschlüsselt abgelegt und nie wieder im Klartext angezeigt; die Oberfläche zeigt nur noch die letzten Zeichen. Löschst du ihn, laufen die Calls wieder über unseren Server-Key.
Kosten und Limits
Ohne Guthaben stehen dir die :free-Modelle offen, allerdings mit spürbaren Ratenlimits - sie teilen sich eine gemeinsame Kapazität mit allen anderen Sparfüchsen. Für die Übungen hier reicht das.
Sobald du Guthaben auflädst (Minimum liegt bei wenigen Dollar), stehen dir alle Modelle offen und die Limits steigen deutlich. Abgerechnet wird pro Token, ohne Abo, in derselben Größenordnung wie beim Anbieter direkt: ein kleines Modell liegt bei Bruchteilen eines Cents pro Lern-Request, ein großes Reasoning-Modell kann das Hundertfache kosten. Unter Activity siehst du jeden einzelnen Call mit seinem Preis - das ist die ehrlichste Kostenkontrolle, die du kriegen kannst.
Häufige Stolperfallen
401 Unauthorized - Key falsch kopiert, oder die Umgebungsvariable ist im Terminal nicht gesetzt. Prüf mit echo $LLM_API_KEY, ob überhaupt etwas ankommt. Achte auch auf das Bearer vor dem Key im Authorization-Header.
402 „insufficient credits" - du rufst ein kostenpflichtiges Modell ohne Guthaben auf. Entweder ein :free-Modell nehmen oder aufladen. Achtung: Zu vielen Modellen gibt es beide Varianten, sie unterscheiden sich nur durch den Zusatz :free.
429 rate limit - bei :free-Modellen der Normalfall, wenn viele gleichzeitig zugreifen. Kurz warten, erneut versuchen, oder ein anderes freies Modell nehmen. Die Fehlermeldung nennt dir den Anbieter, bei dem es klemmt.
„Model not found" - Modell-Slugs ändern sich, und Anbieter nehmen Modelle vom Netz. Schreibweise gegen openrouter.ai/models prüfen; oft fehlt nur das :free oder es ist eines zu viel. Die Fehlermeldung schlägt in dem Fall meist direkt den richtigen Slug vor.
Downloads & Cheat-Sheets
Noch keine Downloads
Cheat-Sheets und Vorlagen ergänzen wir kurz nach Veröffentlichung.
Diskussion· noch keine Beiträge
Unser Kommentar-Agent liest jeden neuen Beitrag, bedankt sich oder empfiehlt passende Inhalte.
Sei die erste Stimme - was denkst du dazu?
Melde dich an, um mitzudiskutieren.
Anmelden