Dein erster API-Aufruf
Claude Hallo zu sagen mag dein Herz erwärmen, aber wirklich nützlich ist es nicht. In dieser Lektion schicken wir Claude etwas Echtes und bekommen strukturierte Einsichten zurück — in knapp unter 20 Zeilen Code.
Einrichtung
Hol dir zunächst einen API-Key von platform.claude.com. Prüfe vor deinem ersten API-Aufruf, dass du Guthaben auf der Abrechnungsseite(öffnet in neuem Tab) in der Claude Console hast. Falls nicht, füge dort Guthaben hinzu.

Nimm den API-Key und speichere ihn in einer .env.local-Datei, damit er nicht in deiner Versionskontrolle landet. Keys fest im Quellcode zu hinterlegen ist genau der Weg, wie sie auf GitHub landen und geleakt werden — bewahre sie stattdessen in Umgebungsdateien auf.
Installiere als Nächstes das SDK:
npm install @anthropic-ai/sdkDer Aufbau einer Anfrage
Jeder API-Aufruf läuft über die Funktion messages.create. Du gibst drei Dinge an:
- Ein model — welches Claude-Modell die Anfrage bearbeitet
- Ein max tokens limit — eine Obergrenze dafür, wie lang die Antwort sein darf
- Eine Liste von messages — Objekte mit entweder der Rolle
useroderassistant, ähnlich strukturiert wie ein Gespräch, das du anderswo mit Claude führen würdest
So sieht das in seiner einfachsten Form aus:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const msg = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 2048,
messages: [{
role: "user",
content: "Hello, Claude",
}],
});Ein echtes Beispiel: fehlerhaften Code überprüfen
Geben wir Claude etwas Interessanteres als „Hallo“. Wir richten es auf etwas fehlerhaften Code und bitten um ein Review. Hier ist das Ganze — eine Datei, etwa 20 Zeilen Code:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const buggyCode = `
function add(a, b) {
return a - b;
}
`;
const response = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 2048,
system: "You are a terse senior code reviewer. Give feedback in one paragraph.",
messages: [
{ role: "user", content: `Review this code:\n${buggyCode}` },
],
});
for (const block of response.content) {
if (block.type === "text") {
console.log(block.text);
}
}Zwei Dinge solltest du hier beachten:
- Der
system-Prompt ist der Ort, an dem du die Persona formst. Ich möchte einen knappen, erfahrenen Reviewer, keinen geschwätzigen — also sage ich einfach genau das. - Der
message.contentin der Antwort ist ein Array von Blöcken, kein String. Bei einer einfachen Textantwort gibt es normalerweise nur einen Block vom Typtext, aber Claude kann mehrere Blöcke zurückgeben — Text, Tool-Aufrufe, Nachdenken — deshalb iterieren wir immer und prüfen den Typ.
Führe es aus, und Claude erkennt, dass add subtrahiert, und teilt dir das in einem Absatz mit. Das war's. Das ist der gesamte API-Aufruf.

Vom Skript zum Produkt
In einem echten Produkt ist genau diese messages.create-Struktur der Motor hinter etwas wie einem Zusammenfassungs-Endpunkt. Hol ein Meeting-Transkript aus der Datenbank, gib es Claude mit einem System-Prompt, der sagt „extrahiere Erkenntnisse und Risiken“, speichere das Ergebnis zurück in der Zeile und gib es an die Benutzeroberfläche zurück. Es ist derselbe Aufruf — nur eingepackt in einen Route-Handler.

Zusammenfassung
- Dein erster API-Aufruf ist eine
messages.create-Funktion mit einem model, einem Token-Limit und messages. - Speichere deinen API-Key in einer
.env.local-Datei, damit er nicht in die Versionskontrolle gelangt. - Füge einen System-Prompt hinzu, um Claudes Verhalten zu formen.
- Der
contentder Antwort ist ein Array von Blöcken — iteriere und prüfe dentypejedes Blocks. - Von hier aus baut alles auf diesem Muster auf.