Wenn Sie ein KI-Bild- oder Videoprodukt ohne Zensur entwickeln, bestimmen drei Fakten Ihre Speicherarchitektur. Hochgeladene Referenzdateien bleiben 1 Tag erhalten. Generierte Medien aus API-, SDK- und Playground-Tasks bleiben etwa 14 Tage erhalten (für Studio-Kurzfilmmedien gilt eine separate Obergrenze von etwa 60 Tagen), und jeder erhaltene Download-Link funktioniert nur etwa 20 Minuten. Das sind jeweils Obergrenzen: Sie können sie nur verkürzen, entweder für das ganze Konto oder für einzelne Anfragen, und Inhalte abgeschlossener Tasks bei Bedarf vernichten. Keine Einstellung verlängert diese Grenzen.
Der zuverlässige Ablauf lautet daher: mit einem kurzlebigen Ticket direkt hochladen, den Upload bestätigen, mit der privaten spicy://-Referenz einen asynchronen Task erstellen, nach Abschluss den Ergebnislink abrufen und das Ergebnis entweder in selbst kontrollierten Speicher kopieren oder bewusst verfallen lassen. Legen Sie Kunden-Uploads nicht in einem öffentlichen Bucket ab und speichern Sie zurückgegebene Download-URLs nicht als permanente Links.
Eine Referenz zu SpicyAPI hochzuladen ist kostenlos; der Generationstask, der sie verwendet, wird separat berechnet. Das Erneuern eines Download-Links für ein vorhandenes Ergebnis startet oder kauft die Generierung nicht erneut. Jeder neue Generierungsversuch kostet den jeweiligen Modellpreis. Speicher, Anfragen und Datentransfer einer Kopie in Ihrem eigenen Bucket richten sich nach den Preisen Ihres Speicheranbieters.
Lesen Sie die akzeptierten Aufbewahrungsfristen, bevor Sie Kunden eine Speicherfrist zusagen; die Dokumentation zur Aufbewahrung erklärt die Einstellungen. Ein praktisches Beispiel für eine lokale Kopie finden Sie in Temporäre KI-Medien in dauerhaft nutzbare Produktdateien umwandeln.
Zuerst im Playground ausprobieren
- Öffnen Sie die z-image-Seite für Text-zu-Bild, bleiben Sie in Workbench bei Form, geben Sie einen Prompt ein, wählen Sie ein Aspect ratio und dann Run model (vorher anmelden; dieses eine Bild ist eine regulär kostenpflichtige Generierung). Prüfen Sie es unter Preview und speichern Sie es mit Download.
- Öffnen Sie in der Console Logs und suchen Sie diesen Task, um die Aufbewahrungsdauer seiner Ausgabe zu sehen.
- Öffnen Sie Data protection, dann Retention, um die vier Fristen einzusehen und zu verkürzen.
- Sobald Sie eine eigene Kopie haben, wählen Sie beim abgeschlossenen Task Destroy outputs, um seinen Inhalt zu löschen.
Was SpicyAPI aufbewahrt und wie lange
| Daten | Aufbewahrung | Was bei Ablauf geschieht |
|---|---|---|
| Hochgeladene Referenzdateien | 1 Tag nach erfolgreicher Upload-Bestätigung | Die spicy://-URI funktioniert für neue Tasks (einschließlich Wiederholungen) nicht mehr; das Objekt wird anschließend gelöscht, mit bis zu 24 Stunden Verzögerung bei der Bereinigung |
| Generierte Bilder, Videos und Audiodateien | Etwa 14 Tage für API-, SDK- und Playground-Ergebnisse; etwa 60 Tage innerhalb eines Spicy Studio-Kurzfilmprojekts, mit bis zu 24 Stunden Bereinigungsverzögerung | Aus dem Objektspeicher gelöscht; es kann kein Download-Link mehr ausgestellt werden |
Prompt-Text und Ergebnisdateipfade im Task (input, output) | 30 Tage | Beide Felder werden geleert; der Task-Datensatz bleibt |
| Task-Datensatz (ID, Modell, Status, Betrag, Zeitstempel) | Unbegrenzt | Bleibt als Abrechnungsnachweis; Inhaltsfelder werden nach ihrem eigenen Zeitplan geleert |
| Abrechnungsbuch | 10 Jahre | Bleibt erhalten; Inhaltslöschung hat keinen Einfluss |
| Task-Logs und Webhook-Zustellnachweise | Mindestens 60 Tage | Gelöscht |
| Datenbank-Backups | 35 Tage | Werden rollierend ersetzt; Inhaltslöschung entfernt Backups nicht sofort |
Selbst verkürzen oder vernichten
1. Aufbewahrungsfristen des Kontos. Unter Retention auf der Seite Data protection der Console gibt es vier getrennte Fristen:
| Frist | Gilt für | Standard | Kürzere Optionen |
|---|---|---|---|
| Generated results | Bilder, Videos, Audio und Ergebnisdaten | Etwa 14 Tage | 1 Stunde, 6 Stunden, 24 Stunden, 7 Tage |
| Short-film media | Studio-Kurzfilmmedien und exportierte Filme | Etwa 60 Tage | 1 Stunde bis 30 Tage |
| Prompt text | Textfelder der Anfrage | 30 Tage | Wie Ergebnisse, 1 Stunde, 24 Stunden, 7 Tage |
| Uploaded files | Referenzdateien | 1 Tag | Delete when the job ends |
Für die Frist hochgeladener Dateien gelten drei wichtige Einschränkungen:
- Delete when the job ends: Ein Upload wird entfernt, sobald alle Tasks, die ihn verwenden, einen Endstatus erreicht haben, normalerweise innerhalb einer Minute. Eine neue Generierung mit dieser gelöschten Referenz erfordert einen erneuten Upload.
- Nur vorhandene Dateien: Der Schalter gilt für Dateien, die beim Speichern vorhanden sind. Spätere Uploads behalten derzeit den standardmäßigen Ablauf nach 1 Tag aus ihrer Bestätigungsantwort.
- Optionen für 1 Stunde und 24 Stunden: Diese ändern derzeit nichts; der Upload bleibt bis zum zurückgegebenen
expiresAtnutzbar.
Warnung vor jeder Verkürzung: Eine kürzere Einstellung kann bereits ausgeführte Tasks betreffen. Wenn Sie Prompt text beispielsweise auf 1 oder 24 Stunden setzen, werden Prompt-Text und generierte Ergebnisse aller Tasks geleert, die vor mehr als einem Tag fertig wurden, selbst wenn Generated results weiterhin auf 14 Tage steht. Gelöschte Inhalte lassen sich nicht wiederherstellen. Laden Sie zuerst alles herunter, was Sie behalten möchten; eine Verlängerung der Einstellung wirkt nur für die Zukunft.
2. Einzelne Anfragen. Senden Sie beim Erstellen eines Tasks den Header X-Spicy-Retention (Sekunden); die Dokumentation zur Aufbewahrung zeigt die Anfrage. Es gilt die kürzeste Frist aus Anfrage, Kontoeinstellung und Plattformobergrenze. Lesen Sie die akzeptierten Fristen aus dem Task, statt die angeforderte Dauer zu versprechen.
Verwenden Sie keine sofortige Löschung für ein Produkt, das Auslieferung oder eine gespeicherte Mediathek verspricht. Sie kann das Ergebnis entfernen, bevor Ihre Kopie fertig ist. Lassen Sie nach der Auslieferung einen zeitlichen Puffer für die Wiederherstellung.
3. Einen abgeschlossenen Task vernichten. Sobald Sie alles Nötige kopiert haben oder ein Kunde die Löschung verlangt, entfernen Sie die kreativen Inhalte dieses Tasks.
In der Console finden Sie dieselbe Aktion als Destroy outputs bei einem Task in Logs. Es gelten drei Regeln:
- Nur abgeschlossene Tasks. Purge ist anhand von
taskIdidempotent; es benötigt keinenIdempotency-Key. Es bricht weder die Generierung ab noch erstattet es die Kosten, undbillingRetainedbleibt true. - Die Löschung wird eingeplant.
contentStatewirdpurged, währendmediaDeletionPendingbis zum Abschluss der Bereinigung true bleibt, normalerweise innerhalb einer Minute. Bestätigen Sie den Abschluss, bevor Sie einem Kunden mitteilen, dass die Daten gelöscht sind. - Eine Antwort mit
presenthat nichts entfernt. Prüfen Sie die Antwort und Aufbewahrungseinstellungen, statt die Löschung als abgeschlossen zu melden.
contentState ist expired, wenn die Aufbewahrungsfrist den Inhalt entfernt hat, und purged, wenn Sie ihn vernichtet haben. Der Task-Status expired bedeutet etwas völlig anderes: Die Generierung hat das Zeitlimit überschritten und nichts erzeugt. Nur in diesem zweiten Fall hilft eine Wiederholung.
Referenzdateien senden
Ein Referenzbild, -video oder eine Audiodatei kann einen Task auf drei Wegen erreichen. Eine öffentliche HTTPS-URL muss die Datei selbst zurückgeben: Ein Link auf eine Freigabeseite (Cloud-Laufwerk, Fotoalbum, Social-Media-Beitrag) liefert eine Webseite, und der Task scheitert mit invalid_asset. Laden Sie die Datei daher herunter und dann hoch. Ein kleines Bild (bis zu 1 MiB) kann inline als Base64-Daten-URI übergeben werden. Private oder große Dateien sollten über SDK, CLI oder Playground hochgeladen werden; diese liefern eine private spicy://-Referenz für den Task.
Upload-Grenzen: JPEG, PNG, WebP und GIF bis zu 10 MiB; WAV, MP3, WebM, MP4 und MOV bis zu 90 MiB und 600 Sekunden; ein Modell kann niedrigere Grenzen haben. Behalten Sie ein Original, wenn Sie die Eingabe nach ihrer eintägigen Frist erneut benötigen. Ihr Backend muss nur den Upload autorisieren und die Eigentümerschaft erfassen; der Client kann die Daten direkt senden. Hochladen ist kostenlos; die Generierung wird separat gekauft. Die Mediendokumentation beschreibt den Ablauf.
Ergebnisse: abrufen, dann kopieren oder verfallen lassen

Ein Manuskript und Landschaftsbilder laufen in einer einzigen projizierten Szene zusammen.
Übermitteln Sie jede neue Anfrage mit einem eigenen Idempotenzschlüssel, behalten Sie die Task-ID und holen Sie das Ergebnis per Polling oder Callback ab. Fertige Dateien enthalten eine signierte url; rufen Sie diese ohne API-Key ab und senden Sie einen User-Agent wie Mozilla/5.0, weil das CDN den Standard-Agent von Python urllib mit einem 403 ablehnt, der nicht bedeutet, dass der Link abgelaufen ist. Ein Task mit succeeded kann noch eine Datei mit pending enthalten; prüfen Sie weiter, bis die URL bereitsteht. Ein abgelaufener Link lässt sich innerhalb der Aufbewahrungsfrist erneuern; die Mediendokumentation zeigt, wie.
Drei Dateizustände sollten Sie ausdrücklich behandeln:
| Was Sie sehen | Bedeutung | Was zu tun ist |
|---|---|---|
pending: true, noch keine url | Die Datei wird noch in den Speicher kopiert | Nach einigen Sekunden erneut abfragen |
unavailable: true, kein key | Keine abrufbare Plattformdatei: anfängliche Speicherung gescheitert, Frist abgelaufen oder durch Purge entfernt | Eine verifizierte gespeicherte Kopie wiederherstellen; falls keine existiert, ausdrücklich über eine neue Generierung entscheiden |
HTTP 410 von download-url | Die Aufbewahrungsfrist der Plattformkopie ist abgelaufen oder sie wurde vernichtet | Die Plattformkopie lässt sich nicht wiederherstellen; gegebenenfalls eigenes Archiv verwenden |
Ein reines Textmodell hat überhaupt keine assets; auch sein Text in output.text wird nach demselben Zeitplan gelöscht. Lesen Sie ihn, bevor Sie davon ausgehen, dass eine Datei existiert.
Die Ausnahme ohne Berechnung bei Speicherfehlern gilt, wenn keine Ausgabe eines Tasks anfänglich gespeichert werden konnte. Eine alte Datei mit unavailable allein begründet keine Erstattung; prüfen Sie die ursprüngliche Abrechnung des Tasks.
Callbacks enthalten Ihren Prompt und signierte Ergebnislinks. Ihr Endpunkt, Reverse Proxy, Fehlertracker und Ihre Logging-Pipeline erhalten damit Material, das SpicyAPI selbst planmäßig löscht. Entfernen Sie Callback-Inhalte aus Zugriffslogs und führen Sie das Kopieren in einem Worker aus. Signaturprüfung, Deduplizierung und Wiederholungen erklärt die Webhook-Dokumentation.
- Ihr Produkt verspricht eine Mediathek, Freigaben oder spätere Bearbeitung: Streamen Sie das Ergebnis bei Erfolg sofort in privaten, selbst kontrollierten Speicher, erfassen Sie eine eigene Datei-ID und rufen Sie anschließend Purge auf, falls die Plattformkopie entfernt werden soll. Streamen Sie große Videos, statt sie im Speicher zu puffern, und machen Sie den Schreibvorgang am Ziel anhand von Task und Datei idempotent.
- Einmalige Auslieferung: Kopieren Sie nichts. Zeigen Sie das Ergebnis, nennen Sie dem Kunden die Dauer der Verfügbarkeit und lassen Sie die Aufbewahrungsfrist oder einen kurzen
X-Spicy-Retentiones entfernen.
Eine vom Nutzer hochgeladene Referenz ist kein Marketingmaterial, und ein erfolgreiches Ergebnis bedeutet keine Einwilligung zur Veröffentlichung. Markieren Sie etwas erst als „vom Kunden gespeichert“, wenn Ihre eigene Kopie bestätigt ist.
Wenn etwas fehlschlägt
| Übergang | Symptom | Richtige Wiederherstellung |
|---|---|---|
| Task erstellen | Antwort verloren | Den gespeicherten Anfrageinhalt mit demselben Idempotenzschlüssel innerhalb des 24-stündigen Deduplizierungsfensters erneut senden; zur Abstimmung stoppen, wenn dieses Fenster abgelaufen sein könnte. Ein neuer Schlüssel kann einen zweiten Task samt Kosten erzeugen |
| Callback | Doppelt, verspätet oder ausgeblieben | Anhand von request_id deduplizieren; recordInfo abfragen, wenn ein erwartetes Abschlussereignis nie eintrifft |
| Ergebniskopie | Link vor einem eingereihten Abruf oder einer erneuten Verbindung abgelaufen | Frische URL abrufen und erneut auf denselben Zielschlüssel streamen |
| Nach Fristablauf | 410 oder unavailable | Zuerst das verifizierte Archiv prüfen; als nicht verfügbar markieren, wenn keine gespeicherte Kopie bleibt |
Logs nützlich halten, ohne kreative Inhalte aufzubewahren
Prüfen Sie folgende Stellen auf versehentliche Kopien:
- Fehlerberichte und Zugriffslogs: Prompts, Tickets und signierte Links schwärzen; Inhalte von Medienrouten nicht protokollieren.
- Analysen und Warteschlangen: Undurchsichtige Vorgangs-, Task- und Datei-IDs statt URLs oder Dateinamen verwenden, auch im Speicher für nicht zustellbare Nachrichten.
- Support-Exporte und öffentliche Auslieferung: Screenshots, Seitenmetadaten und E-Mails prüfen. Kunden auf eine authentifizierte Seite verweisen, die nach einer Zugriffsprüfung einen frischen Link ausstellt.
- Eigener Speicher und Backups: Eigene Löschrichtlinie anwenden. Ein abgelaufener Link kann eine bereits heruntergeladene Datei nicht zurückrufen.
Was Aufbewahrungseinstellungen nicht versprechen können
- Das Modell sieht den Prompt. Das Modell, das eine Anfrage ausführt, erhält ihn im Klartext. SpicyAPIs Einstellungen regeln daher nur, wie lange SpicyAPI selbst etwas aufbewahrt. Senden Sie kein unnötiges Material.
- Purge ist eine asynchrone Löschanfrage. Bestätigen Sie den zurückgegebenen Inhaltsstatus und den Abschluss der Medienlöschung. Speicherbereinigung und Backup-Rotation haben eigene Fristen; Ihre eigenen Dateikopien und Backups benötigen ebenfalls eigene Löschvorgänge. Abrechnungsdatensätze bleiben in jedem Fall.
Wenn Sie eine andere Aufbewahrungsfrist vertraglich benötigen, sprechen Sie dies vor der Unterzeichnung an, statt es aus einer Dokumentationsseite abzuleiten.
Häufige Fragen
Kann ich eine temporäre Upload-URL als Bild-URL in einer Generierungsanfrage verwenden?
Nein. Die Upload-URL autorisiert nur das direkte Schreiben. Laden Sie hoch, bestätigen Sie den Upload und setzen Sie die bestätigte spicy://-URI in ein Feld, das das aktuelle Modellschema als Upload-Feld ausweist.
Kann ich ein generiertes Video länger als 14 Tage bei SpicyAPI behalten?
Für API-, SDK- und Playground-Ergebnisse nicht: Ihre Obergrenze beträgt etwa 14 Tage. Studio-Kurzfilmmedien haben eine separate Obergrenze von etwa 60 Tagen. Kopieren Sie die Datei nach Erfolg für längeren Zugriff in Ihren eigenen Speicher.
Erstattet Purge den Task?
Nein. Purge entfernt nur Inhalte; die Kosten und der Task-Datensatz bleiben.
Kann ein Webhook Polling vollständig ersetzen?
Er kann der Hauptweg sein, mit einer begrenzten Abgleichprüfung für ausgebliebene Zustellungen. Verwenden Sie die Zustellungs-request_id und die Task-ID als Schlüssel Ihres Handlers.
Kann ich einen Ergebnislink in eine E-Mail einfügen?
Vermeiden Sie das. E-Mails werden weitergeleitet und lange nach Ablauf eines kurzlebigen Links archiviert. Verweisen Sie Kunden auf eine authentifizierte Seite, die den Zugriff prüft und einen frischen Link ausstellt.
Was sollte geschehen, wenn ein Kunde ein gespeichertes Ergebnis löscht?
Löschen oder widerrufen Sie Ihre eigene Kopie und deren Auslieferungsweg und dokumentieren Sie dies. Die Plattformkopie folgt ihrem eigenen Zeitplan; verwenden Sie Destroy outputs, wenn sie früher entfernt werden soll.
Einen vorhandenen Task per Code prüfen
Installieren Sie spicyapi, setzen Sie SPICY_API_KEY und TASK_ID und führen Sie diese schreibgeschützte Prüfung aus. Sie erstellt keine Generierung und löscht keine Inhalte.
import json
import os
from spicyapi import SpicyClient
client = SpicyClient()
task = client.get_task(os.environ["TASK_ID"])
print(json.dumps({"taskId": task["taskId"], "state": task["state"],
"contentState": task.get("contentState"), "retention": task.get("retention"),
"mediaDeletionPending": task.get("mediaDeletionPending")}, indent=2))Die Aufbewahrungsreferenz beschreibt Anfrageeinstellungen und Löschvertrag.
Den Aufruf einem Agent überlassen
Delegieren Sie eine Speicherprüfung, wenn Sie bereits eine Task-ID haben; eine neue Generierung ist nicht nötig.
- CLI:
npx @spicyapi/cli tasks get "$TASK_ID"liest die aktuellen Fristen. Siehe CLI-Anleitung. - MCP: Bitten Sie
spicyapi_task_get, diesen Task zu prüfen. Verwenden Siespicyapi_task_purgenur, nachdem Sie die Vernichtung seines Inhalts ausdrücklich genehmigt haben; die MCP-Anleitung erklärt die Bestätigung. - Skill: Nach
npx skills add spicyapi-ai/spicy-skillbitten Sie$spicyapi, die Aufbewahrung des Tasks zu prüfen und zu erklären, was abläuft. Siehe Skill-Anleitung.





