API-Kostenrechner: Tokens, Cache und Anfragevolumen

Nutzen Sie Formel und Python-Rechner, um Input-, Output-, Cache-Write- und Cache-Read-Kosten für drei Anfragevolumen-Szenarien zu schätzen.

Ein API-Kostenrechner multipliziert jede Nutzungskategorie mit dem aktuellen Preis und der Zahl der Aufrufe. Berechnen Sie Input, Output, Cache Write und Cache Read getrennt; alle Preise müssen in einer Währung je 1.000.000 Tokens angegeben sein. Ersetzen Sie unbekannte Werte nicht stillschweigend durch null. Definieren Sie zuerst die Basisanfrage, danach das Anfragevolumen und die Cache-Hit-Rate.

Welche Daten benötigt der Rechner?

Für die Text-API brauchen Sie sieben Eingaben:

input_tokens_per_call output_tokens_per_call cache_write_tokens_per_miss cache_read_tokens_per_hit calls cache_hit_rate prices_per_1m_tokens

Möchten Sie die Prognose mit einer echten Anfrage abgleichen? Erstellen Sie ein BetterToken-Konto und einen API Key, übernehmen Sie die aktuellen Preise von der Preisseite und führen Sie eine kontrollierte Anfrage aus. Vergleichen Sie dann Modell, Status, Input, Output, gegebenenfalls Cache Token und Verbrauch im Dashboard. So erkennen Sie sofort, welche Annahmen korrigiert werden müssen.

Caching hängt von Modell und Protokoll ab. Prüfen Sie vor dem Ausfüllen die BetterToken API-Referenz, OpenAI Prompt Caching oder Anthropic Prompt Caching.

Universelle Formel

Bezeichnungen:

I — reguläre Input Tokens O — Output Tokens W — Cache Write / Creation Tokens R — Cache Read / Cached Tokens Pi — Input-Preis je 1.000.000 Tokens Po — Output-Preis je 1.000.000 Tokens Pw — Cache-Write-Preis je 1.000.000 Tokens Pr — Cache-Read-Preis je 1.000.000 Tokens

Kosten eines Aufrufs:

C = I / 1_000_000 × Pi + O / 1_000_000 × Po + W / 1_000_000 × Pw + R / 1_000_000 × Pr + Cextra

Cextra umfasst getrennt berechnete Einheiten wie Websuche, Bilder, Audio, Storage, Tools oder andere Operationen. Gibt es keine, ist der Wert null. Ist unklar, ob eine Zusatzgebühr anfällt, lassen Sie das Feld unbekannt und prüfen Sie die Dokumentation; null würde falsche Genauigkeit vortäuschen.

Der häufigste Fehler ist das vergessene Teilen durch eine Million. Ist ein Preis je 1.000.000 Tokens angegeben, teilen Sie die Token zuerst durch 1_000_000 und multiplizieren dann mit dem Preis.

Kopierbarer Python-Rechner

Das Skript enthält weder Preise noch API Key. Es fragt die Eingaben ab und berechnet ein Szenario. Das Ergebnis verwendet dieselbe Währung wie Ihre eingegebenen Preise.

from decimal import Decimal, InvalidOperation MILLION = Decimal("1000000") def read_decimal(label: str, *, allow_empty: bool = False) -> Decimal: raw = input(label).strip().replace(",", ".") if allow_empty and raw == "": return Decimal("0") try: value = Decimal(raw) except InvalidOperation as exc: raise SystemExit(f"Invalid number for {label!r}") from exc if value < 0: raise SystemExit(f"Negative value is not allowed for {label!r}") return value input_tokens = read_decimal("Input tokens per call: ") output_tokens = read_decimal("Output tokens per call: ") cache_write_tokens = read_decimal("Cache write tokens per call: ") cache_read_tokens = read_decimal("Cache read tokens per call: ") calls = read_decimal("Number of calls: ") price_input = read_decimal("Input price per 1M tokens: ") price_output = read_decimal("Output price per 1M tokens: ") price_cache_write = read_decimal("Cache write price per 1M tokens: ") price_cache_read = read_decimal("Cache read price per 1M tokens: ") extra_per_call = read_decimal("Extra cost per call (empty = 0): ", allow_empty=True) per_call = ( input_tokens / MILLION * price_input + output_tokens / MILLION * price_output + cache_write_tokens / MILLION * price_cache_write + cache_read_tokens / MILLION * price_cache_read + extra_per_call ) total = per_call * calls print(f"Cost per call: {per_call:.8f}") print(f"Total cost: {total:.8f}")

Speichern Sie den Code als api_cost_calculator.py und starten Sie ihn:

python3 api_cost_calculator.py

Tragen Sie keine tatsächlichen Tokens in Cache-Write/-Read-Felder ein, wenn der aktuelle Endpoint diese Kategorien nicht getrennt ausweist. Überführen Sie die Nutzungsangaben zuerst in sich gegenseitig ausschließende Gruppen, damit ein Token nicht doppelt gezählt wird.

Cache-Hit-Rate berücksichtigen

Für eine Reihe von Anfragen ist es sinnvoll, Cache Hits und Misses zu trennen:

N — Gesamtzahl der Aufrufe h — Cache-Hit-Rate von 0 bis 1 Nhits — N × h Nmiss — N - Nhits Chit — Kosten eines Aufrufs mit Cache Read Cmiss — Kosten eines Aufrufs ohne Hit oder mit Cache Write

Ergebnis:

Ctotal = Nhits × Chit + Nmiss × Cmiss + Cextra_total

Runden Sie für die Planung Nhits ab und Nmiss auf. Das ergibt eine etwas vorsichtigere Schätzung. In echten Logs verwenden Sie die tatsächliche Zahl jeder Aufrufart.

Drei Szenarien statt einer Zahl

Basisszenario

Verwenden Sie den Median von Input und Output aus jüngsten Aufgaben, die erwartete Zahl der Aufrufe und die beobachtete Cache-Hit-Rate. Ohne Historie müssen die Werte als Annahmen gekennzeichnet werden.

Günstiges Szenario

Stabiler langer Präfix, hohe Cache-Hit-Rate, begrenzter Output und keine wiederholten Fehler. Es zeigt eine Untergrenze, darf aber nicht zur Budgetzusage werden.

Schlechtester Fall

Fügen Sie Cache Misses, langen Output, einen begrenzten Retry und getrennt berechnete Tools hinzu. Erhöhen Sie nicht willkürlich alle Parameter: Jede Annahme muss einem realen Prozessrisiko entsprechen.

Notieren Sie die Ergebnisse in einer einfachen Tabelle:

scenario, calls, hit_rate, input, output, write, read, extra, total base, ..., ..., ..., ..., ..., ..., ..., ... low, ..., ..., ..., ..., ..., ..., ..., ... high, ..., ..., ..., ..., ..., ..., ..., ...

Agent-Workflow bewerten

Ein sichtbarer Agent-Lauf entspricht nicht immer einem Modellaufruf. Darin können Planung, Tool Call, Tool Result, Retry und finale Antwort stecken. Deshalb:

  1. Führen Sie eine sichere Testaufgabe aus.
  2. Zählen Sie die tatsächlichen API-Aufrufe.
  3. Gruppieren Sie sie nach Modell und Nutzungskategorie.
  4. Wenden Sie die Formel auf jede Gruppe an.
  5. Fügen Sie Tool- oder Search-Einheiten getrennt hinzu.
  6. Vergleichen Sie den Betrag mit dem Dashboard.

Multiplizieren Sie nicht die Kosten eines zufälligen Aufrufs mit der Nutzerzahl, wenn die Anfragegrößen stark schwanken. Besser sind mehrere Aufgabenklassen: kurze Frage, Dateireview, Agent-Aufgabe.

Prognose mit dem tatsächlichen Wert abgleichen

Gleichen Sie nach dem Testaufruf Folgendes ab:

  • Zeitpunkt und Request Status;
  • Model ID;
  • Input- und Output-Tokens;
  • Cache-Kategorie;
  • Zahl der Retries;
  • tatsächlicher Verbrauch;
  • Währung und Preisdatum.

Die Differenz zwischen Prognose und Tatsache weist meist auf einen von vier Punkten: falscher Preis, doppelt gezählte Cached Tokens, versteckter Retry oder zusätzliche abrechenbare Transaktion.

Für BetterToken verwenden Sie die aktuelle Preisseite und prüfen anschließend den echten Dashboard-Eintrag. Übernehmen Sie keine Preise aus alten Screenshots oder Artikeln.

Grenzen des Rechners

Die Formel deckt nur bekannte Kategorien ab. Sie sagt keine Tarifänderungen, zukünftigen Preise, dynamisches Routing oder die Zahl der Agent-Schritte voraus. Bilder, Audio, Websuche, Storage und einige Tools können eigene Einheiten haben.

Sie bewertet auch nicht die Antwortqualität. Ein billigerer Aufruf, der manuell wiederholt werden muss, kann die Gesamtkosten erhöhen. Das misst ein eigenes Experiment, kein erfundener Koeffizient.

FAQ

Was trage ich ein, wenn kein Cache genutzt wird?

Setzen Sie Cache Write und Cache Read nur dann auf null, wenn der Endpoint tatsächlich keinen Cache verwendet hat. Bei unbekannten Werten prüfen Sie zuerst die Nutzung.

In welcher Währung erscheint das Ergebnis?

Das Ergebnis verwendet die Währung Ihrer Preise und von extra_per_call. Mischen Sie Dollar und Rubel nicht ohne expliziten Wechselkurs und Datum.

Sind Cached Tokens in Input Tokens enthalten?

Das hängt vom Nutzungsformat der jeweiligen API ab. Prüfen Sie vor der Rechnung die Dokumentation und überführen Sie die Felder in sich gegenseitig ausschließende Kategorien, um Doppelzählungen zu vermeiden.

Wie berechne ich Monatskosten?

Berechnen Sie zuerst die Kosten einer Aufgabenklasse und multiplizieren Sie dann mit der tatsächlichen oder prognostizierten Aufrufzahl. Verwenden Sie für unterschiedliche Modelle und Aufgaben getrennte Zeilen und summieren Sie danach.

Warum ist die tatsächliche Belastung höher als die Schätzung?

Prüfen Sie Output, Retries, Agent-Schritte, Cache Misses und zusätzliche Tools. Ordnen Sie jede Nutzungszeile dem Dashboard zu, nicht nur die Gesamtsumme.

Bereit, Ihren LLM-Workflow zu optimieren?

Verbinden Sie Modelle über eine API, verwalten Sie Schlüssel und behalten Sie KI-Kosten im Blick.