Vorschau-Umgebung - hier siehst du auch noch nicht freigegebenen Content.
Einstieg12 Min.openrouterapi-keysdksetup

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 :free und 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 .env ablegen
  • Ersten Call per curl und 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-upExtern - Öffnet in neuem Tab registrieren. Entweder mit GitHub/Google, oder klassisch mit E-Mail und Passwort:

Registrierungsformular von OpenRouter mit Feldern für Vorname, Nachname, E-Mail-Adresse und Passwort sowie der Zustimmung zu den Nutzungsbedingungen.
Registrierung: Vor- und Nachname sind optional, E-Mail und Passwort genügen.

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

OpenRouter zeigt nach der Registrierung den frisch erzeugten API-Key an, beginnend mit sk-or-v1-, daneben ein Knopf zum Kopieren in die Zwischenablage.
Der Key beginnt mit sk-or-v1- und wird genau einmal vollständig angezeigt.

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:

.env

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/modelsExtern - Öffnet in neuem Tab.

Schritt 4 - Erster Call

Zwei Wege zum selben Ergebnis. Fang mit curl an: kein Projekt, keine Abhängigkeiten, du siehst rohes JSON.

bash

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:

bash

Lege index.mjs an:

index.mjs

Ausführen:

bash

Schritt 5 - Die Response lesen

Was zurückkommt, ist kein String, sondern ein strukturiertes Objekt. Gekürzt auf das Wesentliche:

response

Drei Felder, die du dir merken solltest:

  • choices[0].message.content ist die eigentliche Antwort. choices ist ein Array, weil die API grundsätzlich mehrere Alternativen zurückgeben kann - in der Praxis steht dort genau ein Element, solange du nicht n > 1 anforderst.
  • finish_reason sagt dir, warum das Modell aufgehört hat. stop = fertig. length = an max_tokens abgeschnitten. 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.
  • usage ist deine Abrechnung. prompt_tokens × Input-Preis + completion_tokens × Output-Preis. OpenRouter legt zusätzlich cost bei - bei einem :free-Modell steht dort 0.

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 brauchstOpenAI-Dialekt (OpenRouter)Anthropic-Dialekt
Der Textchoices[0].message.content (String)content[0].text - content ist ein Array von Blöcken
Abbruchgrundfinish_reason: stop | length | tool_callsstop_reason: end_turn | max_tokens | tool_use
Verbrauchusage.prompt_tokens / completion_tokensusage.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/modelsExtern - Öffnet in neuem Tab 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