Abrechnung
SpicyAPIs nutzungsbasierte USD-Abrechnung: Preisabfragen, Reservierungen, endgültige Kosten, modellspezifische Ablehnungen, Aufladungen, Ausgabenlimits und Rechnungen.
Geldbeträge statt Credits
Preise werden in US-Dollar angegeben: „$0.008 je Bild“, „$0.042 je Ausgabesekunde“. Vorausbezahltes Guthaben, Aktionsguthaben und Kreditlinien lauten auf Dollar; ein Kreditlimit ist jedoch kein Geldguthaben.
Wir verzichten bewusst auf Credits. Ein Creditsystem legt eine Umrechnungsebene zwischen „X aufladen, Y Bonus erhalten“ und „Was ist ein Credit wert?“. Dadurch lassen sich die tatsächlichen Stückkosten schwerer berechnen. Der angezeigte Preis ist der Preis, den Sie bezahlen.
So funktioniert die Bezahlung
- Laden Sie zuerst Geld auf. Neue Konten haben $0 Guthaben; eine kostenlose Nutzungsstufe gibt es nicht. Ein Task vor der Aufladung wird mit
40201abgelehnt und kostet nichts. - Bei Annahme eines Tasks wird sein geschätzter Preis zurückgelegt. Das ist eine Reservierung. Das Geld gehört weiterhin Ihnen, kann aber nicht gleichzeitig einen anderen Task bezahlen.
- Bei erfolgreichem Task bezahlen Sie die tatsächliche Nutzung, höchstens den reservierten Betrag. Der Rest geht zurück in Ihr Guthaben.
- Fehlgeschlagene oder abgelaufene Tasks geben normalerweise die gesamte Reservierung frei. Bestimmte Inhaltsablehnungen werden nur dann zum angenommenen Angebotspreis berechnet, wenn die Modellseite diese Ausnahme ausdrücklich nennt. Prüfen Sie
settledundcostfür die endgültigen Kosten. - Ausgabenlimits je API-Key verhindern, dass ein außer Kontrolle geratenes Skript Ihr Guthaben aufbraucht.
Die folgenden Abschnitte erläutern jeden Schritt im Detail.
Guthaben aufladen
Laden Sie unter Abrechnung in der Konsole Guthaben auf: per Karte, Kryptowährung oder manueller Überweisung, sofern diese Option angezeigt wird. Die automatische Aufladung verhindert, dass lange Aufträge bei niedrigem Guthaben stoppen. Bezahltes Guthaben verfällt nicht; Aktionsguthaben verfällt zum unter Abrechnung angezeigten Datum.
Den vollständigen Ablauf mit Zahlungsoptionen, Gutschrift und automatischer Aufladung beschreibt Kontoeinrichtung. Aufladungen werden grundsätzlich nicht als Geld zurückgezahlt; die Rückerstattungsrichtlinie nennt Ausnahmen wie doppelte Belastungen.
Drei Phasen
Jeder Task durchläuft dieselben drei Abrechnungsschritte. Sie müssen dafür nichts tun. Die Erklärung hilft Ihnen, Ihren Guthabenverlauf sicher zu verstehen.
holdsettlereleaseReservierung
Bei der Erstellung reservieren wir Geld für die geschätzte Nutzung. Der Betrag entspricht genau estimatedCost aus createTask.
Die Reservierung bindet die Finanzierungsquellen dieses Tasks; sie ist keine endgültige Belastung. Reserviertes vorausbezahltes Guthaben, anwendbares Aktionsguthaben und genehmigter Kredit können nicht gleichzeitig einen anderen Task finanzieren. Der Betrag erscheint als held in GET /api/v1/chat/credit und als „Reserviert“ in der Konsole.
Reservierung und Taskdatensatz werden in einer Datenbanktransaktion gespeichert. Es gibt keinen Zwischenzustand, in dem ein Task ohne Reservierung existiert oder umgekehrt.
Abrechnung oder Freigabe
succeeded→ Abrechnung nach tatsächlicher Nutzung, begrenzt auf die angenommene Reservierung. Ungenutzte Beträge gehen an ihre ursprünglichen Finanzierungsquellen zurück; darüber hinaus wird kein weiterer Betrag eingezogen.failed/expired→ normalerweise vollständige Freigabe. Eine Modellseite kann ausdrücklich darauf hinweisen, dass bestimmte Fehler mitcontent_rejectedzum angenommenen Angebotspreis berechnet werden. Historischecanceled-Datensätze geben die Reservierung ebenfalls vollständig frei; angenommene Tasks können derzeit jedoch nicht abgebrochen werden.
Nach Abschluss der Abrechnung meldet recordInfo den Wert settled: true; cost ist dann endgültig. Solange settled gleich false ist, kann sich cost noch ändern.
Nachlauf zur Bereinigung
Wird unser Prozess während der Ausführung beendet, findet ein Bereinigungsprozess Reservierungen zu bereits abgeschlossenen Tasks und führt die Abrechnung oder Freigabe anhand des gespeicherten Ergebnisses zu Ende.
Abrechnung und Freigabe verwenden denselben Deduplizierungsschlüssel. Der Abrechnungsablauf eines Tasks wird deshalb genau einmal abgeschlossen; Wiederholungen können ihn nicht doppelt verbuchen.
Prüfen Sie die Abrechnung, nicht nur den Taskzustand
Fehlgeschlagene oder abgelaufene Tasks geben normalerweise die gesamte Reservierung frei. Bestimmte Inhaltsablehnungen werden nur dann zum angenommenen Angebotspreis berechnet, wenn die Modellseite diese Ausnahme ausdrücklich nennt. Prüfen Sie settled und cost für die endgültigen Kosten. Eine berechnete Ablehnung bleibt state: "failed" mit errorCode: "content_rejected"; nach der Abrechnung ist settled gleich true und cost positiv. Andere Fehler und abgelaufene Tasks geben die gesamte Reservierung automatisch frei.
Guthaben prüfen
Am schnellsten geht es auf der Seite Abrechnung in der Konsole. Sie zeigt verfügbares Guthaben, aktuell reservierte Beträge und jede Guthabenbewegung. Aus Ihrem Code rufen Sie Folgendes auf:
GET /api/v1/chat/creditcurl https://api.spicyapi.ai/api/v1/chat/credit \
-H "Authorization: Bearer $SPICY_API_KEY"const res = await fetch('https://api.spicyapi.ai/api/v1/chat/credit', {
headers: { Authorization: `Bearer ${process.env.SPICY_API_KEY}` },
});
const body = await res.json();
if (body.code !== 200) throw new Error(`${body.code} ${body.msg}`);
const balance = body.data;
console.log(balance.funding ?? balance);import os, requests
res = requests.get(
"https://api.spicyapi.ai/api/v1/chat/credit",
headers={"Authorization": f"Bearer {os.environ['SPICY_API_KEY']}"},
)
body = res.json()
if body["code"] != 200:
raise RuntimeError(f'{body["code"]} {body["msg"]}')
balance = body["data"]
print(balance.get("funding", balance)){
"code": 200,
"msg": "success",
"data": {
"available": "128.42",
"held": "0.36",
"total": "128.78"
}
}| Feld | Bedeutung |
|---|---|
available | Nettobetrag im Wallet; kann nach Nutzung eines genehmigten Kredits negativ sein und reicht allein nicht zur Prüfung der Anfragezulassung |
held | Durch laufende Tasks gebundener Betrag |
total | Summe der beiden Werte |
Reichen die zum gewählten Modell und Zeitpunkt anwendbaren Finanzierungsquellen nicht für die Schätzung, liefert createTask den Code 40201. Kreditablauf, ausgeschöpfte Limits und ein Fehlbetrag nach Rückforderung einer Zahlung können die Zulassung ebenfalls beeinflussen. Ersetzen Sie die serverseitige Prüfung nicht durch einen clientseitigen Vorzeichentest für available.
Sie müssen das Guthaben nicht vor jeder Generierung prüfen: Die Annahme des Tasks prüft bereits verfügbares Guthaben und Ausgabenlimits.
In der API ist Geld eine Zeichenfolge ohne Dollarzeichen
„$0.008“ ist die für Menschen lesbare Preisdarstellung dieser Seite. Die API liefert eine dezimale Zeichenfolge ohne Währungssymbol: estimatedCost, cost und alle drei Guthabenfelder sehen wie "0.008" aus, ohne $ und ohne Trennzeichen, immer in USD.
// Keep the exact decimal string for display
const usd = task.cost;Zeichenfolgen statt JSON-Zahlen sind eine bewusste Wahl: In den meisten Sprachen wird eine JSON-Zahl zu float64, und 0.008 besitzt keine exakte binäre Darstellung. Für Ihre Buchhaltung lesen Sie den Wert als Dezimalzahl ein:
from decimal import Decimal
usd = Decimal(task["cost"]) # not float()Ausgabenlimits
Ein Ausgabenlimit begrenzt den Betrag, den Sie ausgeben können. Bis zu sechs Limits gelten für einen Task. Das zuerst erreichte Limit lehnt den Task mit 40202 ab, bevor etwas erstellt oder reserviert wird:
| Limit | Wer es festlegt | msg bei Erreichen |
|---|---|---|
| Gesamtlimit des Keys | Sie auf der API-Key-Seite; Obergrenze über die gesamte Lebensdauer dieses Keys | This key has reached its total spend cap |
| Monatslimit des Keys | Sie auf der API-Key-Seite; Budget für diesen Kalendermonat | This key has reached its monthly budget |
| Tageslimit des Keys | Sie auf der API-Key-Seite; neue Keys haben kein Limit, solange Sie keines festlegen | This key has reached its daily spend cap |
| Tageslimit des Teams | Teaminhaber, Administratoren und Budgetverantwortliche auf der Teamseite; gilt nur für Keys eines Teams | Workspace daily budget has been reached |
| Monatslimit des Teams | Wie oben | Workspace monthly budget has been reached |
| Tageslimit der Plattform | Wir; unser eigener Schutzschalter, den Sie nicht erhöhen können | Platform quota for today is exhausted, please try again later |
Tageslimits werden um 00:00 UTC zurückgesetzt. Monatslimits folgen dem UTC-Kalendermonat und werden am 1. zurückgesetzt. Ein Gesamtlimit wird nie zurückgesetzt. Ist das Plattformlimit erreicht, versuchen Sie es nach 00:00 UTC erneut oder kontaktieren Sie den Support, wenn dies wiederholt passiert.
Eine noch nicht abgerechnete Reservierung zählt gegen jedes Limit, also Gesamt-, Monats- und Tageslimit, bis der Task abgerechnet ist, unabhängig von Tag oder Monat. Das Geld ist noch nicht ausgegeben, kann aber auch nicht doppelt ausgegeben werden. Teamlimits erläutert Konsole und Teams.
Ein leeres Limitfeld bedeutet nicht überall dasselbe
- Key erstellen oder bearbeiten: Ein leeres Limit bedeutet kein Limit, ebenso wie
0. Neue Keys haben kein Limit, solange Sie keines setzen. Wenn Sie ein bestehendes Limit leeren, entfernen Sie es. Soll es bleiben, lassen Sie einen Zahlenwert im Feld stehen. - Ausgabenlimits des Teams: Ein leeres Feld behält den aktuellen Wert;
0bedeutet kein Limit.
Limits dienen Ihrem Schutz. Eine fehlerhafte Schleife kann innerhalb weniger Stunden hohe Beträge verbrauchen. Solche Vorfälle sind in dieser Branche alltäglich und betreffen fast immer Konten ohne gesetztes Limit.
Das Buchungsjournal
Die Seite Abrechnung listet jede Guthabenbewegung mit verständlichen Bezeichnungen wie Aufladung, Reserviert, Berechnet und Zurückgegeben. Beim Download über CSV exportieren enthält die Spalte kind einen dieser stabilen Codes:
| Art | Bedeutung |
|---|---|
topup | Bezahltes Geld, das Ihrem Guthaben hinzugefügt wurde |
bonus | Zusätzlicher Betrag aus einer Aufladeaktion, getrennt von Ihrer Zahlung verbucht |
trial | Guthaben aus einer Testaktion, getrennt von Aufladungen und Boni |
hold | Bei Taskannahme reservierter Schätzbetrag; keine Belastung |
settle | Endgültige Taskkosten, einschließlich nach Modellbedingungen berechneter Inhaltsablehnung; ungenutzte Reservierung wird zurückgegeben |
refund | Vollständig zurückgegebene Reservierung nach Taskfehler oder Zeitüberschreitung |
adjust | Manuelle Korrektur unseres Teams; enthält immer die Identität des Bearbeiters und einen Grund |
chargeback | Nach einer Zahlungsreklamation zurückgenommenes Guthaben |
forfeit | Bei Kontoschließung aufgegebenes Restguthaben |
grant_expire | Nach Ablauf entferntes ungenutztes Aktionsguthaben |
grant_revoke | Zurückgezogenes ungenutztes Aktionsguthaben |
Das Journal wird nur ergänzt. Gespeicherte Einträge werden nie umgeschrieben. Eine freigegebene Reservierung ist ein neuer Eintrag und keine Löschung des ursprünglichen. So lässt sich jedes Guthaben vom Anfang an neu berechnen und die Frage „Warum stimmen die Zahlen nicht?“ mit einem nachweisbaren Ergebnis beantworten.
Bonusguthaben wird getrennt von Ihrer Zahlung verbucht, weil eine Zahlungsrückerstattung auf Ihre Karte nur den bezahlten Betrag umfasst. Ein Bonus hat keinen Geldwert. Das ist unabhängig von den oben genannten refund-Einträgen, die die Reservierung eines fehlgeschlagenen Tasks in Ihr Guthaben zurückführen.
Diese Guthabenbewegungen bleiben 10 Jahre gespeichert, getrennt von Taskinhalten. Sie stehen deshalb für Abgleich und Streitfälle zur Verfügung, lange nachdem Prompts und Ergebnisse gelöscht wurden. Siehe Datenaufbewahrung.
Rechnungen und Nutzungsabrechnungen
Unter Abrechnung → Rechnungen können Sie selbst zwei Dokumentarten erstellen und als PDF herunterladen:
| Dokument | Inhalt | Zahlungsbeleg? |
|---|---|---|
| Zahlungsrechnung | Eine bereits bezahlte Aufladung über den belasteten Betrag | Ja; dieses Dokument verwenden Sie für eine Kostenerstattung |
| Nutzungsabrechnung | Tatsächliche Ausgaben eines abgeschlossenen Monats | Nein; das Geld wurde schon bei der Aufladung bezahlt. Beide einzureichen würde denselben Betrag doppelt geltend machen |
Tragen Sie Ihre Angaben einmal oben unter Abrechnung → Rechnungen ein. Name, entweder Firmenname oder eigener Name, erste Adresszeile, Stadt und Land sind Pflichtfelder. Eine Steuernummer wie USt-IdNr. oder GST-Nummer ist optional. Angaben werden genau wie eingegeben aufgedruckt. Sie liefern diese Angaben; wir prüfen sie nicht, auch die Steuernummer nicht. Druckbar sind nur lateinische, griechische und kyrillische Zeichen. Schreiben Sie einen japanischen oder koreanischen Firmennamen daher in seiner eingetragenen romanisierten Form. Bereits ausgestellte Dokumente behalten die zum Erstellungszeitpunkt verwendeten Angaben; spätere Änderungen gelten nur für neue Dokumente.
- Für jede bezahlte Aufladung und jeden abgeschlossenen Monat kann ein Dokument einmal ausgestellt werden. Existiert es bereits, laden Sie es herunter, statt ein weiteres auszustellen.
- Korrigieren Sie falsche Angaben mit Neu ausstellen: Das alte Dokument wird als ungültig markiert; ein Ersatz mit neuer Nummer deckt denselben Vorgang ab. Ohne Ersatz stornieren verwenden Sie nur, wenn ein Dokument die falsche Aufladung oder den falschen Monat betrifft.
- Kontoauszüge weiter unten auf derselben Seite sind etwas anderes: feste monatliche Momentaufnahmen aller Guthabenbewegungen für Ihre eigene Buchführung. Sie sind weder Quittung noch Steuerdokument.
Die Steuer wird mit null ausgewiesen: Wir sind ein US-Anbieter und erheben oder führen keine Umsatzsteuer, GST oder Verkaufssteuer für Sie ab. Jedes Dokument enthält einen Reverse-Charge-Hinweis. Eventuell an Ihrem Standort geschuldete Steuern müssen Sie daher selbst berücksichtigen. Eine ausgestellte Rechnung wird nie bearbeitet, sondern mit dokumentiertem Grund storniert und neu ausgestellt; auch der Ersatz wird erfasst.
Abrechnungseinheiten
Jedes Modell hat genau eine Abrechnungseinheit.
| Einheit | Bedeutung | Welches input-Feld die Menge liefert |
|---|---|---|
per_image | Je generiertem Bild | Das vom Modell angegebene Feld; Standardwert ist 1 |
per_second | Je Ausgabesekunde. Einige Endpunkte runden die Länge auf feste Blöcke auf; siehe Längenabrechnung in ganzen Blöcken | Lesen Sie das aktuelle quantityField und Schema. Das übliche Dauerfeld ist duration_seconds. Eine fehlende Dauer wählt nicht zwangsläufig die kürzeste Stufe. |
per_request | Je Aufruf, unabhängig von Parametern | — |
per_1k_tokens | Je Token. Die API-Einheit heißt per_1k_tokens; Website und price.perMillionTokens im Katalog zeigen dieselben Preise je Million Tokens. Eingabe, Cacheeingabe, Cacheschreiben und Ausgabe können jeweils eigene Preise haben | — |
Sie müssen den Feldnamen nicht erraten: quantityField am Katalogendpunkt nennt ihn je Modell. Eine leere Zeichenfolge bedeutet eine Einheit je Aufruf.
Ein Modell kann verschiedene Preise für verschiedene Stufen haben. Auflösung, Dauer, Audiooptionen und Referenzmedien können je nach Schema den Angebotspreis beeinflussen. pricing[].variant kennzeichnet eine Stufe der Preiskarte; im Anfragebody gibt es kein Feld variant. Diese Bezeichnung lässt sich nicht immer als resolution senden. Ebenso lässt sich nicht jedes Modell als Einstiegspreis × Dauer berechnen. Senden Sie die vollständige Eingabe an jobs/quote, um die genaue Schätzung und Kostenobergrenze zu erhalten.
Lesen Sie Menge und Preis immer aus dem Livekatalog
Kodieren Sie kein Mengenfeld für eine gesamte Modellkategorie fest. Ein leeres quantityField bedeutet eine Abrechnungseinheit je Aufruf; andernfalls lesen Sie die geschätzte Menge aus dem genannten Eingabefeld. Modellstufen, Standardwerte und Abrechnungsverhalten können sich mit dem Katalog ändern. Die Kosten sind auf den bei Taskannahme reservierten Betrag begrenzt: Ungenutzte Beträge werden freigegeben; darüber hinaus wird kein weiterer Betrag eingezogen.
Längenabrechnung in ganzen Blöcken
Die meisten per_second-Modelle berechnen die exakt erzeugte Länge. Einige rechnen dagegen in festen Blöcken ab: Vor der Preisberechnung wird die gemessene Länge auf den nächsten ganzen Block aufgerundet. Bei 8-Sekunden-Blöcken kosten ein 6- und ein 8-Sekunden-Clip gleich viel; ein 9-Sekunden-Clip kostet zwei Blöcke. Das gilt nicht für jedes Modell mit Sekundenabrechnung, sondern nur für Endpunkte, die dies ausdrücklich angeben. Jeder dieser Endpunkte erläutert es auf seiner Modellseite.
Gemeinsam ist ihnen außerdem der Grund, warum die Rundung im Angebotspreis sichtbar wird: Sie übernehmen die Länge aus einem von Ihnen bereitgestellten Video, statt aus einem von Ihnen gewählten duration_seconds-Wert. Die Ergebnislänge ist also erst bekannt, nachdem der Clip gelesen wurde. Ihr quantityField ist leer. Der Angebotspreis vor der Einreichung entspricht deshalb dem höchsten möglichen Betrag für den längsten akzeptierten Clip:
{
"estimatedCost": "0.96",
"maxCharge": "0.96",
"quantity": "32",
"unit": "per_second"
}Die Beträge dienen als Beispiel. quantity ist hier eine Obergrenze in Sekunden und kein Messwert. Der Angebotspreis wird reserviert; die endgültigen Kosten werden aus der gerundeten Dauer berechnet und überschreiten die Reservierung nie. Der Rest wird bei der Abrechnung freigegeben, wie in den drei Phasen oben.
Die Reservierung kann größer als die endgültigen Kosten sein
Das ist bei diesen Endpunkten vorgesehen und keine Überberechnung. Zwischen Annahme und Abrechnung zeigt Ihr Guthaben die reservierte Obergrenze, weil die Ergebnislänge vor dem Lesen des Clips unbekannt ist. Bei der Abrechnung bezahlen Sie die tatsächliche, auf den Block aufgerundete Länge. Die Differenz geht automatisch zurück in Ihr Guthaben. Das Journal erfasst beide Bewegungen, sodass Sie hold und settle jederzeit gegeneinander prüfen können.
Daraus ergeben sich zwei Punkte für Ihre Planung:
- Planen Sie Ihr Budget nach dem Angebotspreis, nicht nach Ihrem Clip. Bis zur Abrechnung wird die Obergrenze reserviert und zählt wie jede andere Reservierung gegen die Ausgabenlimits.
- Auch ein kurzer Clip kostet einen ganzen Block. Kürzen von 9 auf 8 Sekunden kann den Preis eines Endpunkts mit 8-Sekunden-Blöcken halbieren. Kürzen von 8 auf 5 Sekunden ändert dagegen nichts.
Die genauen Einheiten und Preise finden Sie auf der Preisseite und der jeweiligen Modellseite.
Kundenrabatte und Aktionen
Angebote können für alle oder für ein bestimmtes Konto gelten, für alle oder ausgewählte Modelle. Dauerhafte Angebote laufen bis zur Deaktivierung; zeitlich begrenzte gelten nur zwischen tatsächlichem Beginn und Ende. Kontospezifische Preise gelten bei Anmeldung dieses Kontos oder bei Preisabfragen mit seinem API-Key und werden nie als Preis anderer Kunden veröffentlicht.
Angebote werden nicht kombiniert. Der niedrigste anwendbare Preis gilt automatisch. Bei regulären $10 ergeben eine öffentliche Aktion mit 10 % und ein Kontorabatt mit 20 % einen Preis von $8, nicht einen kombinierten Preis von $7.20. Endet ein Angebot oder wird es deaktiviert, nutzen neue Preisabfragen das beste verbleibende anwendbare Angebot oder den regulären Preis.
Angebote auf Startseite, Katalog und Modellseiten helfen beim Vergleich. Die tatsächliche Schätzung erhalten Sie von jobs/quote mit Ihrer Identität, dem Modell und vollständigen Eingaben. Ein Countdown reserviert keinen Preis: Aktualisieren Sie das Angebot nach Änderungen an Aktion, Eingabe oder Preis. Angenommene Tasks behalten ihren eingefrorenen Preis, auch wenn die Aktion während der Ausführung endet. Die endgültigen Kosten können den bei Annahme reservierten Betrag nicht überschreiten.
Angebote gelten automatisch für API-Nutzungskosten, nicht für den Aufladebetrag; sie gewähren kein Cashback auf Aufladungen. Beispiele für Tages- oder Monatsbudgets rechnen den aktuellen Preis hoch. Eine zeitlich begrenzte Aktion kann vor dem Budgetzeitraum enden. Prüfen Sie deshalb auch ihr Enddatum.
Aktionsguthaben und Kreditlinien
GET /api/v1/chat/credit behält available, held und total bei und kann eine Aufschlüsselung unter funding enthalten. Ältere Antworten können funding auslassen; fehlende Daten bedeuten nicht null. Nutzen Sie client.getBalance() im SDK oder spicyapi balance --json in der CLI.
funding.prepaidAvailableUsdenthält vorausbezahlte oder ältere uneingeschränkt verfügbare Mittel;grantAvailableUsdsummiert aktuell aktive Guthabenzuteilungen. Jeder Eintrag ingrantsnennt zugeteilte, verfügbare, reservierte und ausgegebene Beträge, Status, Beginn, Ablauf undmodelSlugs. Eine leere Modellliste bedeutet alle Modelle; sonst gilt das Guthaben nur für die aufgeführten Modelle. Die Liste enthält bis zu 100 Zuteilungen, zuerst solche mit verbleibenden oder reservierten Beträgen und anschließend die neuesten zuerst.grantsHasMorezeigt weitere Datensätze an. Ersetzen Sie die Kontosumme nicht durch die Zwischensumme der sichtbaren Liste.funding.creditbeschreibt eine genehmigte Kreditlinie zur späteren Zahlung.limitUsdist die Obergrenze,availableUsdder ungenutzte anwendbare Kredit,usedUsdder abgerechnete ausstehende Kreditbetrag,heldUsddie Reservierung für angenommene Tasks undexpiresAtdas Ablaufdatum. Das Kreditlimit ist weder Aufladung noch Aktions- oder Geldguthaben. Ablauf, Deaktivierung oder Überschreitung des Limits schränken neue Anfragen ein; bestehende Schulden bleiben zahlbar.- Aktionsguthaben kann nicht ausgezahlt werden. Rabatte bestimmen den Anfragepreis; Guthabenzuteilungen und Kredit bestimmen dessen Finanzierung. Eine Zuteilung senkt nicht den Preis der Modellpreiskarte. Ihr Modellumfang und ihre Gültigkeit gelten; ungenutzte Beträge können verfallen oder zurückgezogen werden. Fehlgeschlagene Tasks und ungenutzte Reservierungen geben Mittel an ihre ursprüngliche Quelle zurück. Dadurch wird eine abgelaufene oder widerrufene Zuteilung nicht wieder aktiviert.
- Ein positiver Wert
funding.cashShortfallUsdist ein Fehlbetrag nach externer Zahlungsrückforderung. Aktionsguthaben und Kredit können ihn nicht decken; neue Aufrufe bleiben gesperrt, bis er ausgeglichen ist. Ein negativesavailablekann dagegen auf genehmigte Kreditnutzung zurückgehen. Leiten Sie aus dem Vorzeichen keine Ablehnung ab und addieren Sie den Wert nicht direkt zum Kreditlimit. Der Server prüft Finanzierungsquellen, Modellberechtigung, Gültigkeit und Ausgabenlimits.
Beträge bleiben exakte dezimale USD-Zeichenfolgen; Datumswerte verwenden RFC3339. Geben Sie bei der Anzeige die Zeitzone an. Die Abrechnungsseite zeigt Finanzierungs- und Zuteilungsdetails; Änderungen gelten erst nach manueller Genehmigung eines Administrators. Fragen zu Aktionsguthaben oder Kreditlinien stellen Sie unter Support in der Konsole oder per E-Mail an support@spicyapi.ai. Die öffentliche API bietet keine Schreibzugriffe, um Ihre eigenen Kontingente zu erhöhen oder Guthaben zuzuteilen.
Nutzung des aktuellen API-Keys
Ein Diagramm der Ausgaben je Tag und Modell für Ihr gesamtes Konto oder Team finden Sie unter Abrechnung → Nutzung. Der folgende API-Endpunkt berichtet ausschließlich über den aufrufenden Key:
curl 'https://api.spicyapi.ai/api/v1/usage?from=2026-09-01&to=2026-09-06' \
-H "Authorization: Bearer $SPICY_API_KEY"Datumswerte verwenden UTC [from,to); dieses Beispiel umfasst deshalb den 1.–5. September. Ohne Datumsangaben erhalten Sie die letzten sieben Tage einschließlich heute; der maximale Zeitraum beträgt 92 Tage. Ergebnisse gehören ausschließlich zum aktuellen API-Key. Es gibt keinen Parameter für einen anderen Key oder einen kontoweiten Bericht. Für das Walletguthaben verwenden Sie chat/credit.
data.totalCalls zählt alle Tasks; data.totalSpend enthält nur abgerechnete Kosten. days und models gruppieren dieselben Tasks nach Erstellungsdatum und Modell, mit exakten dezimalen USD-Zeichenfolgen. Offene Reservierungen sind ausgeschlossen; späte Abrechnungen können frühere Datumswerte aktualisieren. Ausgeblendete Taskverläufe bleiben enthalten; Tage ohne Aufrufe werden ausgelassen. Addieren Sie die beiden Gruppierungen nicht.
Verwenden Sie client.getUsage({ from, to }) im SDK oder spicyapi usage --from 2026-09-01 --to 2026-09-06 in der CLI. Dieser Endpunkt hat ein eigenes, strengeres Ratenlimit; siehe Ratenbegrenzungen.
n8n
Nutzen Sie die Bild-, Video-, Audio- und Chatmodelle von SpicyAPI in n8n-Workflows. Installieren Sie die Community-Node, importieren Sie die HTTP-Request-Vorlagen oder richten Sie die OpenAI-Credential von n8n für AI-Agent-Nodes auf SpicyAPI.
Konsole und Teams
Was jede Seite der SpicyAPI-Konsole tut und wann Sie sie brauchen, und wie Teams API-Schlüssel und Ausgabengrenzen gemeinsam nutzen, während der Team-Inhaber bezahlt.

