/data volume), those files are retained indefinitely and managed manually.
Generated Media (CDN Files)
When your app generates output files, they are uploaded to the fal CDN and returned as URLs (e.g.,https://v3.fal.media/files/...). Files you upload as inputs via fal_client.upload_file are also stored on the CDN. Both input uploads and output media are subject to the same retention controls.
Per-Request Expiration
Control how long generated media is stored using theX-Fal-Object-Lifecycle-Preference header:
expiration_duration_seconds to the number of seconds, or null for no expiration.
Request Payloads
Request inputs and outputs (the JSON data) are stored in the platform for 30 days by default. This powers the request history in your dashboard.Preventing Payload Storage
To prevent fal from storing request payloads entirely, add theX-Fal-Store-IO: 0 header:
This prevents storage of the JSON payloads only. CDN files generated during processing are still accessible (subject to the media expiration setting above).
Deleting Payloads
You can delete a request’s payloads and the CDN files in its output via the Platform API:Delete Request Payloads API
Delete IO payloads and CDN output files for a specific request
CDN files found in the input of a request are not deleted, as they may be used by other requests.
Summary
| Data Type | Default Retention | Control |
|---|---|---|
| Generated media (CDN files) | Configurable | X-Fal-Object-Lifecycle-Preference header |
| Request payloads (JSON) | 30 days | X-Fal-Store-IO: 0 header to opt out, or delete via API |
Persistent storage (/data) | Forever | Manual deletion via Dashboard or CLI |