Die Klage liest man überall: Ich zahle jeden Monat für Claude, und trotzdem will meine Automatisierung einen API Key. Das stimmt. Ich wollte wissen, warum genau, und habe mich zwei Stunden lang in die falsche Richtung graben lassen. Hier ist, was dabei herauskam.

Der naheliegende Versuch

Der erste Gedanke ist immer derselbe: Ich habe ein Abo, ich hole mir daraus einen Token und schicke ihn an die normale Anthropic-Schnittstelle. Technisch spricht nichts dagegen, das Token-Format ist dokumentiert, die Bibliotheken nehmen es an.

Und dann kam die Antwort: HTTP 429, Rate Limit.

Das ist der Moment, in dem die meisten falsch abbiegen, und ich war keine Ausnahme. Ein Rate Limit heisst: zu viel benutzt, warte ab. Also wartet man. Und es passiert nichts, weil man auf ein Fenster wartet, das nie aufgeht.

Die falsche Fährte

Statt weiter zu raten, habe ich die Antworten mitgeschnitten, also nicht nur den Text, sondern auch die Kopfzeilen, die Anthropic mitschickt. Da lag der eigentliche Hinweis, und zwar in dem, was fehlte.

Bei einem erfolgreichen Aufruf kommt ein ganzer Satz Rate-Limit-Header zurück: wie viel vom Fenster verbraucht ist, wann es zurückgesetzt wird, ob ein Überlauf erlaubt ist. Bei den abgewiesenen Aufrufen kamen diese Header überhaupt nicht. Kein einziger.

Ein echtes Kontingentproblem würde genau diese Zahlen mitliefern, es ist ja die ganze Botschaft. Ihr vollständiges Fehlen bedeutet etwas anderes: Das ist kein Verbrauchsproblem, sondern eine Berechtigungssperre, die sich als Rate Limit ausgibt. Der Statuscode war schlicht irreführend.

Der Beweis

Um sicher zu sein, habe ich alle Modelle durchgemessen, die mein Zugang überhaupt anbietet. Das Ergebnis war eindeutig: Von elf Modellen kam genau eines durch, das kleinste das auch ohne Abo funktioniert. Alle anderen wurden abgewiesen, Sekunden später, mit demselben Zugang, im selben Code.

Das ist keine Drosselung. Das ist eine Tür, die für fast alles zu ist.

Warum Umgehen keine Option ist

Ja, es gibt Wege, das zu umgehen. Sie sind erstaunlich simpel, und ich werde sie hier nicht beschreiben. Nicht aus Prinzipienreiterei, sondern weil es nichts bringt.

Nimm an, es funktioniert heute. Dann hängt dein produktiver Workflow an etwas, das der Anbieter jederzeit zumachen kann, ohne Vorwarnung und ohne dass das als Fehler zählt. Es braucht keine grosse Gegenmassnahme, eine Kleinigkeit reicht. Deine Automatisierung steht dann morgens still, und du suchst den Fehler zuerst bei dir.

Ein Trick, der funktioniert, ist noch keine Grundlage. Und niemand baut gern auf Sand, den er selbst geschüttet hat.

Was tatsächlich erlaubt ist

Der interessante Teil kam, als ich aufgehört habe, gegen die Sperre zu arbeiten, und nachgelesen habe, was der Anbieter eigentlich will. Die Trennung ist klarer, als der Frust vermuten lässt:

Wer ein Produkt für fremde Nutzer baut und deren Anfragen über sein Abo leitet, braucht einen API Key. Das ist untersagt, und das ist auch nachvollziehbar.

Wer sein eigenes Abo für seine eigene Arbeit automatisiert, darf das. Vorgesehen ist dafür Claude Code und die Agent SDK, inklusive des nicht-interaktiven Modus. Das ist dokumentiert und ausdrücklich erlaubt.

Im Kern läuft es also darauf hinaus, deine Claude Code Konsole fernzusteuern. Genau das, was du täglich lokal tust, nur angestossen von einem Workflow statt von deiner Tastatur.

Und der Gegentest war die eigentliche Genugtuung: Über diesen Weg lief sofort das grösste Modell, dasselbe, das die Schnittstelle Minuten vorher noch abgewiesen hatte. Nicht mit einem Trick, sondern weil es der vorgesehene Weg ist.

Was ich daraus gebaut habe

Die Konsole direkt aus n8n heraus aufzurufen ist unschön. Also habe ich einen kleinen Service gebaut, der sie kapselt und als HTTP-Endpunkt bereitstellt. Er ist Open Source auf GitHub.

Vier Entscheidungen darin sind es wert, erwähnt zu werden, weil sie beim Bauen nicht offensichtlich waren:

  • Er hält keinen Zustand. Die Konsole speichert Gespräche selbst auf Platte. Ein eigener Speicher im Service wäre nicht nur doppelt, er wäre schlechter: Nach einem Neustart wären die Sitzungen weg, obwohl die Gespräche noch existieren. So überlebt eine Unterhaltung den Neustart problemlos.

  • Der Aufrufer bestimmt, wann ein neues Gespräch beginnt. Du schickst eine ID mit. Gleiche ID heisst weiterreden, neue ID heisst neuer Chat, keine ID heisst Einmalfrage.

  • Strukturierte Antworten kommen über ein Schema, nicht über eine höfliche Bitte im Prompt. Wer im Prompt um JSON bittet, bekommt es oft in Markdown eingepackt und darf es hinterher auspacken. Mit Schema kommt sauberes JSON zurück, auf das ein Workflow sich verlassen kann.

  • Er ist mit einem API-Key abgesichert. Solange der Key fehlt und du die Absicherung nicht ausdrücklich abgeschaltet hast, verweigert er den Dienst. Security first: Er läuft erst, wenn du entschieden hast, wie er geschützt sein soll.

Was du dafür brauchst

  • Einen Service-User mit eigenem Abo. Teste ruhig zuerst mit deinem eigenen Zugang, aber trenne es danach. Das Kontingent hängt am Konto, nicht an der Maschine. Läuft die Automatisierung über deinen Account, frisst sie dir genau das Fenster weg, das du zum Arbeiten brauchst.

  • Claude Code auf dem Server, installiert und angemeldet, auf dem der Service läuft. Der Service ruft die Konsole auf, mehr passiert da nicht.

  • Den Service auf dem Server installieren. Ist die Umgebung abgeschottet, brauchst du keine Authentisierung. Soll er übers Internet erreichbar sein, was bei n8n Cloud der Normalfall ist, dann sicherst du ihn ab.

Was du damit sauber automatisieren kannst

Weil du die volle Konsole fernsteuerst und nicht nur ein Sprachmodell anfragst, geht deutlich mehr als Text rein, Text raus:

  • Den täglichen Blogpost oder Newsletter-Entwurf, angestossen vom Zeitplan statt von dir.

  • Wiederkehrende Auswertungen, etwa der Wochenrückblick aus deinen eigenen Zahlen.

  • Dokumente verarbeiten. Du lädst eine Datei hoch, das Modell liest sie als Kontext. Angebote, Rechnungen, Berichte, Protokolle zusammenfassen oder vergleichen.

  • Strukturiert extrahieren. Aus einem Fliesstext ein festes JSON gewinnen, das der nächste Workflow-Schritt direkt weiterverarbeitet, ohne Nachbearbeitung.

  • Eingehendes einsortieren, also Kommentare, Anfragen oder Tickets klassifizieren und mit einer Begründung anreichern.

  • Mehrstufige Arbeit in einem Lauf. Entwurf, dann Kritik am eigenen Entwurf, dann Überarbeitung, alles im selben Gespräch statt in drei kontextlosen Aufrufen.

  • Aufgaben in Dateien und Repositories, weil die Konsole Werkzeuge mitbringt. Sie kann lesen und, wenn du es erlaubst, auch schreiben.

  • Eine Wissensbasis pflegen, die über die Läufe hinweg wächst, statt jedes Mal bei null anzufangen.

Wo die Grenze liegt

Das sage ich lieber selbst, bevor es jemand herausfindet. Für hochfrequente Aufrufe ist das nichts. Jeder Aufruf startet einen Prozess und läuft gegen dein Nutzungsfenster. Wenn du im grossen Stil aufrufen willst, brauchst du weiterhin einen API Key, dafür ist das nicht gebaut, und dafür ist der API Key auch nicht zu teuer.

Für alles, was ein paar Mal am Tag läuft, reicht es problemlos. Und genau das sind die Fälle, für die die meisten überhaupt erst einen API Key lösen wollten.