Security

Data Retention

How Skytells handles, retains, and purges prediction outputs and associated data.

Data Retention

Skytells follows an ephemeral-by-default data model. Prediction outputs — images, audio, and video files — are retained for a strictly limited window after completion, then automatically and permanently purged. This approach minimizes data exposure and ensures that your generated content does not persist on Skytells infrastructure.


Retention Timeline

queued / processing succeeded 5 minutes Prediction Created Inference Running Output Available Automatic Purge Permanently Deleted
PhaseDurationOutput Accessible?
Queued / ProcessingVariable (depends on model and queue)No — output is null
Succeeded5 minutesYes — via CDN URLs
After retention windowPermanentNo — URLs return 404

What Is Retained

Data typeRetained?DurationPurpose
Prediction metadataYesAccount lifetimeID, status, timestamps, model used, billing credits. Required for usage tracking, billing, and audit.
Generated outputs (images, audio, video)Temporarily5 minutes after completionDelivered via CDN for immediate download. Purged automatically.
Input promptsNoNot storedPrompts are processed in-memory during inference and are never written to disk or logs.
Input files (image-to-image, etc.)Temporarily5 minutes after completionPurged alongside outputs.
Account dataYesAccount lifetimeEmail, billing information, API keys (hashed), usage history.
API request logsYes30 daysHTTP metadata only (method, path, status code, latency). Request and response bodies are not logged.

How Purging Works

Skytells uses TTL-based (Time-To-Live) automatic purging:

  1. Completion trigger — When a prediction reaches succeeded, failed, or canceled status, a 5-minute TTL timer starts.
  2. CDN invalidation — After the TTL expires, the output files are deleted from the CDN origin storage.
  3. Cache eviction — CDN edge caches are invalidated simultaneously. Cached copies at edge nodes are not served after purge.
  4. Metadata update — The prediction's metadata.data_available field is set to false. The storage.files array is emptied.
  5. Irreversible — Deleted files cannot be recovered by Skytells staff or any support process.

Best Practices

Immediate Download via Webhooks

The recommended pattern is to register a webhook when creating a prediction and download outputs as soon as the prediction.succeeded event arrives:

POST /v1/predictions
{
  "model": "skytells/FLUX.2-pro",
  "input": { "prompt": "A mountain landscape at dawn" },
  "webhook": {
    "url": "https://your-server.com/webhook",
    "events": ["prediction.succeeded", "prediction.failed"]
  }
}

When your server receives the webhook:

  1. Verify the X-Skytells-Signature header.
  2. Extract the output array from the payload.
  3. Download each URL to your own storage (S3, GCS, local filesystem).
  4. Acknowledge with a 200 response.

Polling Fallback

If you cannot use webhooks, poll GET /v1/predictions/{id} until status is succeeded, then download immediately.


What Skytells Does NOT Do

PracticeGuarantee
No long-term storageGenerated outputs are never archived or backed up beyond the 5-minute retention window.
No training on your dataYour inputs and outputs are never used to train, fine-tune, or improve Skytells models.
No prompt loggingPrompts and input parameters are processed in-memory and are not written to any persistent store.
No third-party sharingYour generated content is never shared with, sold to, or accessed by third parties.
No backup retentionInfrastructure backups explicitly exclude generated prediction content. Only account and billing metadata is backed up.

How is this guide?

On this page