22. April 2026
SE Ranking API mit Claude Code verbinden: Mein Setup-Tutorial für SEO-Automatisierung
Wichtigste Erkenntnisse
- Die SE Ranking API lässt sich in unter 30 Minuten an Claude Code anbinden — wenn man den richtigen Skill-Wrapper baut statt nackte requests.get() zu schreiben.
- Ein Daily-Credit-Limit gehört von Minute 1 dazu — nicht erst nachdem ein Agent mal eben 10.000 Credits in einem Call verbrannt hat.
- Der account/subscription-Endpunkt kostet 0 Credits und ist dein Rettungsanker — immer vor und nach jedem Job abfragen.
Moin! 🌻
Mein Kumpel Maximilian D. Muhr — ja, der, den ich schon im SEOpresso-Podcast-Artikel erwähnt habe — saß mit mir letzte Woche beim Kaffee und erzählte mir eine Geschichte, die mich seitdem nicht loslässt. Er nutzt seit einer Weile die Sistrix-API mit Claude Code für automatisierte SEO-Analysen — sauber aufgesetzt, Wrapper gebaut, alles gut.
Bis an einem dieser Tage, an dem man irgendwas schnell testen will.
Ein anderer Agent bei ihm machte eine Mini-Anfrage. Eine. Kleine. Abfrage.
Ergebnis: 10.000 Sistrix-Credits weg in einem Rutsch.
Das komplette Wochenbudget. Pulverisiert. Für eine Frage, die eigentlich einen Credit hätte kosten sollen — aber durch einen undokumentierten Endpoint-Preis eben 10.000 kostete.
Und ich dachte mir: Das kann ich mit SE Ranking doch auch. Nur dass ich bei dem Fehler nicht noch mal hängen bleiben will.
Deshalb gibt es diesen Artikel. Ein Setup-Tutorial, bei dem das Daily-Credit-Limit von Minute 1 dabei ist — nicht nachträglich.
Warum SE Ranking API + Claude Code
SE Ranking kenne ich aus der täglichen Arbeit. Sichtbarkeits-Index, Keyword-Research, Backlink-Profile — das All-in-One-Werkzeug, das ich seit Jahren für meine Kunden nutze. Claude Code wiederum ist seit ein paar Monaten mein zweiter Schreibtisch: kein Dashboard-Klick, sondern echte Skripte, die bleiben. Einmal geschrieben, immer reproduzierbar.
Die Kombination macht etwas Spezielles möglich: du baust dir dein eigenes SEO-Tooling. Kein SaaS on top, keine Zapier-Kette, keine Drittabhängigkeit. Nur deine Fragen, deine Daten, dein Report.
Persönliches Versprechen: Ich zeige dir genau den Weg, den ich gegangen bin — inklusive der einen Stelle, wo ich extra ein Limit eingebaut habe, damit mir nicht passiert, was Max passiert ist.
Was du brauchst
- SE Ranking Account mit API-Zugang (Core-Tarif reicht, Pro optional)
- Claude Code Installation (mac/windows/linux)
- Terminal-Grundkenntnisse
- ~30 Minuten Zeit
- Kaffee ☕ (optional, aber bewährt)
Schritt 1: API-Key holen
Log dich in dein SE Ranking Dashboard ein und navigiere zu Admin → API. Dort generierst du deinen persönlichen Token.

Einmal kopieren, sofort in einen Passwort-Manager oder .env.local. Und dann testest du ihn genau einmal per curl:
curl -H "Authorization: Token DEIN_KEY" \
https://api.seranking.com/account/subscription
⚠️ Warnung
Niemals in Commits, Screenshots, Slack oder Whatsapp — behandle den API-Key wie deinen Haustürschlüssel. Einmal öffentlich, einmal rotieren.
Schritt 2: Claude Code Projekt aufsetzen
Neues Verzeichnis, Claude Code starten, loslegen:
mkdir seo-analyse && cd seo-analyse
claude
Jörgs SEO-Klartext (LinkedIn Insights)
"Claude Code ist wie ein Praktikant, der wirklich liest, was du sagst. Erklär ihm, was du willst, lass ihn schreiben, prüfe — fertig."
Meinen ersten echten Prompt an Claude Code habe ich fast eins zu eins so eingetippt:
“Erstelle einen Python-Client für die SE Ranking Data API. Base-URL
https://api.seranking.com. Auth: HeaderAuthorization: Token {KEY}. Plus Smoketest gegenaccount/subscription. Plus Tests mit pytest-mock. Key aus.env.localvia python-dotenv.”
Claude Code legt dir daraufhin eine saubere Struktur an: scripts/seo_api/seranking.py für den Client, scripts/seranking_smoke.py für den Smoketest, tests/ für die Testfälle. Der Wrapper sitzt, die Tests laufen, alles ist committbar. Keine 10 Minuten Arbeit.

Schritt 3: Daily-Limit einbauen (das Wichtigste!)
Jetzt kommt der Teil, wo ich an Max zurückdenke.
Vor jedem produktiven Call macht mein Wrapper einen Vor-Check via account/subscription. Der Endpunkt kostet 0 Credits — der kostet dich nichts, außer einer Netzwerkverbindung. Er liefert dir zurück, wie viele Units du gerade noch hast. Danach schätze ich den geplanten Call-Verbrauch. Vergleiche beides mit drei Grenzwerten. Fertig.
| Gate | Schwelle | Aktion |
|---|---|---|
| 🟢 Grün | units_left > 100.000 | Alles läuft, keine OK-Pflicht |
| 🟡 Gelb | units_left 50.000 – 100.000 | Admin-OK für die Session nötig |
| 🔴 Rot | units_left < 50.000 | Stop. Kein weiterer Call. |
| 🔴 Rot | heute > 100.000 verbraucht | Daily-Cap — Stop bis morgen |

Im Code sieht das — stark gekürzt — so aus:
# Hard-Stop: niemals unter 50k
if left - estimated_cost < SERANKING_HARD_STOP:
raise BudgetViolation(f"Hard-Stop: {left}-{estimated_cost} < 50000")
# Soft-Stop: unter 100k nur mit Admin-OK
if left < SERANKING_SOFT_STOP and not admin_ok:
raise BudgetViolation("Soft-Stop: brauche Admin-OK")
# Daily-Cap: max 100k pro Session
if session_cumulative + estimated_cost > SERANKING_MAX_PER_SESSION:
raise BudgetViolation("Daily-Limit erreicht")
Drei Zeilen Logik, und aus einem offenen Scheunentor wird ein Drehkreuz.
Jörgs SEO-Klartext (LinkedIn Insights)
"Ein API-Key ohne Daily-Limit ist wie ein Porsche ohne Tempomat — theoretisch cool, praktisch teuer."
Zusätzlich schreibt der Wrapper jeden Call in ein append-only Log: Zeitstempel, Endpunkt, geschätzte Kosten, tatsächliche Units vorher/nachher, Delta. So weiß ich am Ende des Monats nicht nur, was ich verbraucht habe, sondern auch wofür.
Schritt 4: Smoketest laufen lassen
Zeit für den ersten echten Call — kostet nichts, beweist alles:
python3 scripts/seranking_smoke.py
Erwartete Ausgabe (aus meinem echten Log):
{
"status": "active",
"units_left": 300000,
"expiration_date": "2027-03-29"
}

Falls die API statt expiration_date das Feld expiraton_date liefert — ja, das ist ein Typo bei SE Ranking. Nicht deiner. Mein Smoketest toleriert beide Schreibweisen. SE Ranking, wenn ihr das lest: bitte fixen. 😉
Schritt 5: Der erste echte Call
Jetzt die erste kostenpflichtige Abfrage. research/domain/overview/db — 100 Credits, gibt dir Sichtbarkeit plus Keyword-Count einer Domain. Der perfekte Einstieg.
client = SERankingClient()
overview = client.domain_overview("teleschmie.de")
print(overview["organic"]["traffic_sum"])
Und dann siehst du, wie dein Wrapper macht, was er soll: Vor-Check, Call, Nach-Check, Log-Eintrag, Ergebnis im Terminal. Sauber, transparent, reproduzierbar.
Bei dem Setup hat mir übrigens die Truppe von poliSYS (das ist Max’ Agentur) tatkräftig geholfen — die haben das genaue Wrapper-Pattern als Open-Source-Skill vorgemacht und auch den Budget-Guard mit den drei Gates. Wenn du das Rad nicht neu erfinden willst: rüberschauen lohnt.
Tacheles am Ende
Wenn du einmal den Wrapper hast, sind alle weiteren Endpunkte eine Sache von fünf Minuten. backlinks/summary, research/keyword/questions, audit/audits/standard — alles nach dem gleichen Muster. Du baust dir im Lauf einer Woche dein eigenes kleines SEO-Tooling, das deinem Workflow entspricht und nicht dem eines SaaS-Produktmanagers in San Francisco.
SE Ranking belohnt strukturierte Setups. Die API-Docs sind gut, die Endpunkte gut sortiert — aber Daily-Limits muss man selbst bauen. Jetzt weißt du, wie.
Im nächsten Teil der Serie sortiere ich, was die SE Ranking API eigentlich alles kann: Ein Kompass durch die Endpunkte. Sechs Kategorien, Kosten-Tabelle, Use-Cases. Teuerste Abfrage: 7.500 Credits. Günstigste: null. Dazwischen liegt eine Menge SEO-Arbeit.
Spart euch den 10k-Schock. Baut das Limit jetzt. ALOHA! 🌻
Brauche ich für das Setup Python-Erfahrung?
Was kostet die API im Test?
Warum extra Claude Code und nicht einfach Postman?
Diesen Beitrag teilen?
Vielleicht hilft er ja auch anderen in deinem Netzwerk.