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

Available

Included in the released product.

Limited

Available only within the stated scope or allowlist.

Planned

Selected direction; not available yet.

Not supported

No implementation commitment. See Exploring on the roadmap.

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
Release scope and acceptance

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
Release scope and acceptance

Indexed tags and grouping

Available

Up to 32 case-insensitive Unicode labels per file, 64 UTF-8 bytes each. Shared tags group files; no separate collection resource is needed.

HTTP API
Yes
Server SDK
Yes
Client hooks
Yes
Optional UI
Yes
Console
Yes
Release scope and acceptance

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
Release scope and acceptance

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

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
—
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
—
Release scope and acceptance

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
—
Release scope and acceptance

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
—
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
—
Release scope and acceptance

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
—
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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
Release scope and acceptance

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.