What Folio supports.
Open an area to see supported formats, limits and where each feature works. HTTP, server SDK, client hooks, optional UI and console are ways into the same file system.
Folio Storage v1 · SDK 1.4.0 · Updated 21 October 2026 · Release roadmap
Included in the released product.
Available only within the stated scope or allowlist.
Selected direction; not available yet.
No implementation commitment. See Exploring on the roadmap.
File Management
Identity, organization and lifecycle.
4 available1 limited1 not supported
File Management
Identity, organization and lifecycle.
4 available1 limited1 not supported
Originals and stable file IDs
Available
Upload, inspect and delete tenant-scoped original records. Processing failures leave original bytes available.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Yes
- Console
- Yes
Rename and flexible metadata
Available
Rename without replacing bytes. Merge, replace or remove JSON keys, with shared version-conflict protection. Metadata is capped at 16 KiB and is not indexed automatically.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Yes
- Console
- Yes
Listing and search
Limited
Cursor-paginated tenant listing and indexed tag filtering work across the library. Name, type and status filters in the console apply to loaded files; full-library filename/full-text search is not supported.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Library filters
- Console
- Yes
Deletion and physical cleanup
Available
Logical deletion blocks access and releases allowance immediately. Durable object cleanup becomes eligible 24 hours after the last reference, protecting shared bytes and active processing.
- HTTP API
- Delete
- Server SDK
- Delete
- Client hooks
- Delete
- Optional UI
- Confirmation
- Console
- Delete
Folders and original version history
Not supported
No folders, separate collections or restorable original-version history. Use tags and application metadata for current organization.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Ingestion
Reliable uploads, text and voice input.
5 available1 limited1 not supported
Ingestion
Reliable uploads, text and voice input.
5 available1 limited1 not supported
Original file formats and sizes
Available
Store arbitrary original file types within available capacity. Ordinary buffered uploads are capped at 25 MiB. Storage support does not imply browser preview, AI or processing support.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Yes
- Console
- Yes
Large and resumable uploads
Available
Direct multipart transfer, pause, reselect/resume, cancel and whole-file integrity verification. Provider object ceiling: 5,492,189,429,760 bytes, subject to remaining workspace and tenant capacity; this is not multi-terabyte test evidence.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Yes
- Console
- Yes
Type, size and batch selection controls
Available
Configure accepted MIME types/extensions, maximum file bytes and queue count. Inline errors and callbacks apply to picker/drop selection; valid files in a partial batch continue. Queue concurrency is 1 or 2, default 2. These are local UX rules, not server-enforced workspace policy.
- HTTP API
- Per-file routes
- Server SDK
- Validation helper
- Client hooks
- Validation / queue
- Optional UI
- Single / queue / resumable
- Console
- Components
Idempotency and uncertain-save recovery
Available
Ordinary creation acknowledgements can be recovered with identical input for seven days. Resumable sessions use durable state and their own deadlines. An uncertain write is never assumed missing or silently uploaded again.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Yes
- Console
- Yes
Pasted text attachments
Available
Explicitly save UTF-8 text, up to 25 MiB in the composer. The mounted draft does not survive a reload. Saving text does not start AI.
- HTTP API
- Upload
- Server SDK
- Text helper
- Client hooks
- Text helper
- Optional UI
- Text composer
- Console
- Yes
Voice recording and review
Limited
Browser MediaRecorder, permission request, local review and explicit Save. Card or compact controls. Default five minutes, configurable up to ten; 25 MiB maximum recording. WebM, MP4/M4A or Ogg depends on the browser. No reload-persistent draft or automatic transcription.
- HTTP API
- Audio upload
- Server SDK
- Audio upload
- Client hooks
- Recorder hook
- Optional UI
- Card / compact
- Console
- Components
Workspace upload rules
Not supported
An authoritative workspace-wide allowed-types/maximum-size policy and its editor are proposed follow-up work. Component selection settings cannot enforce this across clients.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Processing
Derived media, durable jobs and useful results.
3 available7 limited1 planned3 not supported
Processing
Derived media, durable jobs and useful results.
3 available7 limited1 planned3 not supported
JPEG, PNG, GIF and WebP previews
Available
Automatic 512px thumbnails and 1600px optimized WebP outputs, bounded to 25 MiB and 50 megapixels. GIF processing uses its first frame. Original bytes remain unchanged.
- HTTP API
- Read / retry
- Server SDK
- Read / retry
- Client hooks
- Read / status
- Optional UI
- Preview / thumbnail
- Console
- Versions / retry
Still HEIC and HEIF phone photos
Limited
Recognized new still HEVC HEIC/HEIF uploads receive browser-friendly WebP outputs within the image limits. Standard HEIF orientation is applied. Existing opaque files are not automatically reclassified; sequences, direct HEIC AI extraction and named HEIC recipes are not supported.
- HTTP API
- Automatic / read
- Server SDK
- Read / retry
- Client hooks
- Read / status
- Optional UI
- Preview / thumbnail
- Console
- Versions / retry
PDF previews
Limited
Automatic first-page image preview. No full PDF editor, multipage preview UI, PDF merging or splitting.
- HTTP API
- Read / retry
- Server SDK
- Read / retry
- Client hooks
- Read / status
- Optional UI
- Preview
- Console
- Yes
Named image recipes
Available
JPEG, PNG, GIF and WebP inputs only; bounded dimensions up to 4096, inside/cover fit and WebP/JPEG/PNG outputs. Equivalent requests reuse a named operation. HEIC/HEIF named recipes are not supported.
- HTTP API
- Request / read / retry
- Server SDK
- Yes
- Client hooks
- Yes
- Optional UI
- Custom
- Console
- Read / download / retry
Managed image and PDF extraction
Limited
Explicit operator-allowlisted first-party jobs only. Supported image/PDF input up to 12 MiB; versioned instructions/schema and validated JSON output up to 32 KiB. App review and business decisions stay in the app. No automatic paid replay.
- HTTP API
- Allowlisted
- Server SDK
- Allowlisted
- Client hooks
- Read
- Optional UI
- Status / custom result
- Console
- Allowlisted
Durable voice transcripts
Limited
Explicit allowlisted jobs with saved output separate from metadata. ElevenLabs Scribe v2 is configured. The OpenAI Whisper adapter requires an operator key before it can run. Audio: 24 MiB, ten minutes, one stream. Saving a voice note does not start transcription.
- HTTP API
- Allowlisted
- Server SDK
- Allowlisted
- Client hooks
- Read
- Optional UI
- Status / custom result
- Console
- Allowlisted
Job history and observed usage
Limited
Per-job provider/model, status and known input/output/total tokens; tenant/workspace counters by UTC calendar month, including historical months. Late usage belongs to the month recorded, not a revised invoice. Audio seconds retain measured/provider provenance. Missing cost and tokens remain unknown. This is observed metering, not AI-credit billing.
- HTTP API
- Allowlisted
- Server SDK
- Allowlisted
- Client hooks
- Read
- Optional UI
- Status / custom result
- Console
- Allowlisted
Private processing request details
Limited
Workspace owners inspect saved instructions, schema and context. New extraction attempts retain dispatched prompts and safe validation paths; older runs explicitly lack snapshots. Raw failed answers are not retained. No prompt fields are added to normal API jobs or completion notices.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- Owner only
Amazon Rekognition image evidence
Not supported
Proposed reusable text, labels and moderation evidence. Requires a new processor and image-operation accounting; no Rekognition call or Katalog migration is enabled today.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Signed completion notices
Limited
Operator-configured first-party destinations, durable delivery history and explicit eligible notice replay. Replaying delivery never reruns inference. Consumers must persist deduplication.
- HTTP API
- Allowlisted
- Server SDK
- Verify / inspect / replay
- Client hooks
- —
- Optional UI
- —
- Console
- Allowlisted
Use OpenRouter or your own model
Available
Read an authorized file on your server, call your chosen provider with your own key, then save bounded application metadata. Your app owns those jobs and provider charges. Folio does not receive the key in this flow.
- HTTP API
- File / metadata routes
- Server SDK
- Example / file / metadata
- Client hooks
- Read result
- Optional UI
- Custom result
- Console
- Metadata editor
Automatic transcription defaults
Planned
Owner-selected opt-in defaults for new audio uploads are selected next scope. They are not active today; current transcription starts explicitly.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Managed BYOK and custom endpoints
Not supported
Customer provider-key storage, configurable customer processing endpoints and public paid AI are exploration. No provider-key form or public AI wallet is available.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Video, archives and extra PDF operations
Not supported
No generated video/audio waveforms, video thumbnails, ZIP exports, PDF merging/splitting or customer-supplied variants. Arbitrary originals can still be stored and downloaded.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Delivery
Authorized bytes and a usable file experience.
3 available2 limited2 not supported
Delivery
Authorized bytes and a usable file experience.
3 available2 limited2 not supported
Authorized originals and variants
Available
Same-origin app route, bounded-memory streaming and byte-range original downloads. Temporary links last five minutes and are bearer capabilities. Key revocation does not invalidate an already issued link before expiry.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Content URL / reads
- Optional UI
- Download / preview
- Console
- Yes
TXT, Markdown, JSON, CSV, TSV and logs
Available
Passive literal-text preview reads at most a 64 KiB prefix. Markup is not executed and no processing job starts. Keep the full original download.
- HTTP API
- Byte reads
- Server SDK
- Download bytes
- Client hooks
- Text reader
- Optional UI
- Text preview
- Console
- Yes
Saved audio playback
Limited
Explicit authorized read, capped at 25 MiB with a 30-second timeout. WebM/MP4/Ogg containers are validated; actual decoding depends on browser codec support. No generated audio derivative.
- HTTP API
- Original bytes
- Server SDK
- Download bytes
- Client hooks
- Audio hook
- Optional UI
- Audio player
- Console
- Preview / Components
Default and custom preview artwork
Available
Safe default artwork for pending, failed or unsupported previews; optional fallbackImage or your own renderer. This is UI artwork, not a generated/stored file version.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- Render data
- Optional UI
- Preview / thumbnail / library
- Console
- Components
Live updates for a known file
Limited
Optional application-authorized SSE observes the file API every five seconds. Reauthorizes reads and exposes an off switch. No whole-library discovery/replay feed or named-rendition observation.
- HTTP API
- App adapter
- Server SDK
- Adapter opt-in
- Client hooks
- Watch / hook
- Optional UI
- Opt-in details / library
- Console
- Polling
Custom delivery domains
Not supported
No Folio-managed custom-domain provisioning or permanent public-library delivery contract. Serve through your existing authorized app route today.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Hosted customer-scoped MCP
Not supported
Developers can call the server SDK from their own authorized MCP server. Hosted delegated customer credentials, revocation and write permissions are not implemented.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Workspace Administration
Workspace identity, customer settings and shared capacity.
3 available1 limited1 not supported
Workspace Administration
Workspace identity, customer settings and shared capacity.
3 available1 limited1 not supported
Create and switch workspaces
Available
Up to ten free owned workspaces; each has a decimal 3 GB original-byte allowance, separate keys, tenants and files. Provisioning is an authenticated owner operation, not a public API-key route.
- HTTP API
- Owner only
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- Sidebar switcher
Tenant identity and storage limits
Available
Keep your app’s tenant ID; set optional display name and cap together in tenant settings. Stored/reserved bytes count against shared workspace allowance. A tenant cap does not reserve capacity or increase workspace allowance.
- HTTP API
- Yes
- Server SDK
- Yes
- Client hooks
- Authorized usage read
- Optional UI
- Custom usage UI
- Console
- Identity / Storage
Keys, storage usage and permissions
Available
Owners create/revoke workspace keys. Tenant usage needs whole-tenant permission; workspace totals require a separate explicit grant. Your application owns customer sign-in and access policy.
- HTTP API
- Owner keys / usage routes
- Server SDK
- Usage / scoped adapter
- Client hooks
- Explicit usage grants
- Optional UI
- Custom
- Console
- Keys / Settings / Tenants
Request-rate controls
Limited
Fixed budgets per key and API process: 600 reads, 120 writes and 20 ordinary uploads per minute. Tenants sharing a key share this budget; multiple API instances multiply it. Durable storage quotas are shared. No configurable tenant request budget.
- HTTP API
- Fixed enforcement
- Server SDK
- Errors / rate hints
- Client hooks
- Queue waits
- Optional UI
- Errors / waiting
- Console
- No rate editor
Workspace rename, teams and billing
Not supported
No workspace rename, team/org membership administration or paid workspace billing controls. No public AI credits or money wallet. Namespace/npm publication remains deferred.
- HTTP API
- —
- Server SDK
- —
- Client hooks
- —
- Optional UI
- —
- Console
- —
Choose who runs processing.
- Folio manages media
- Supported uploads receive automatic image/PDF outputs. Your app reads their status and renders ready versions; original storage does not depend on successful processing.
- Your app owns AI
- Read a file through your trusted server, use OpenRouter or another provider, and save the result as metadata. Your app manages the key, job and provider charge.
- Folio manages AI · limited preview
- Operator-allowlisted workspaces can explicitly start durable extraction or transcription with configured operator keys. Results and usage are stored separately. Customer BYOK and configurable processing endpoints remain exploration.
Browser reads and writes pass through your application’s authorized adapter. Workspace secrets stay on the server. “Custom” means you can compose the UI; it does not promise a supplied component. Reliability, security and observability apply across all five domains.