fshy

fshy / Storage

Steam

steamgames.com · Storage · 3 records · JSON

Steam Cloud (developer-set per-app quota) Storage

caveatemail?card?Rper-object-cap

partner.steamgames.com/doc/features/cloud · cloud-drive · storage/steam-cloud · JSON · compare

Free tierQuota is set by each game's developer as 'Byte quota per user' and 'Number of files allowed per user', 'enforced on each Cloud-enabled game, on a per-user-per-game basis'. No Valve-imposed total. Community-observed ceilings: 93 GB per game, ~10,000 files. Defaults are frequently tiny (a few MB to 1 GB).
unit objects; metered on unstated
Pricenone stated
Per-object cap100 MB per File (100000000 bytes)
Retentionper-object-cap: 100 MB per FileWrite call (256 MB 'may result in a non-optimal storage endpoint'); per-object-cap: ~10,000 files per cloud save; the game must be launchable/owned for the user, and impersonating it blocks normal play during sync. Retention: indefinite — no expiry documented, but a developer can change quota or delist and the data can be evicted.
EgressUnmetered and anonymous on the download path via the Steam client / Steamworks SDK. No published per-GB charge.
Identityemail (placeholder) not published
Limits
  • per-object-cap 100 MB per File source
per-object-cap: 100 MB per FileWrite call (256 MB 'may result in a non-optimal storage endpoint'); per-object-cap: ~10,000 files per cloud save; the game must be launchable/owned for the user, and impersonating it blocks normal play during sync. Retention: indefinite — no expiry documented, but a developer can change quota or delist and the data can be evicted.
Bindingper-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota
Interfacerest rest
ToolingSteamworks SDK ISteamRemoteStorage (FileWrite, FileWriteStreamWriteChunk, FileReadAsync). Working wrapper exists: github.com/Fldicoahkiin/SteamCloudFileManager — 237 stars, Rust, Windows/macOS/Linux, '支持任意文件的上传、下载与删除' (arbitrary file upload/download/delete against any owned game's cloud). Design writeup: krutonium.ca/posts/using-steam-as-cloud-storage/.
Composes withOne Steam account x every owned Cloud-enabled game with a large quota. At 93 GB/game, 12 games = ~1.1 TB; 100 games = ~9 TB. Multiply again by accounts. The lever is picking titles whose developers set 93 GB, not buying storage.
ReliabilityEntirely undocumented by Valve; a developer lowering their quota can strand data, and files are re-downloaded into the local save folder on game launch. No public bans recorded.
NotesQuota is set by each game's developer as 'Byte quota per user' and 'Number of files allowed per user', 'enforced on each Cloud-enabled game, on a per-user-per-game basis'. No Valve-imposed total. Community-observed ceilings: 93 GB per game, ~10,000 files. Defaults are frequently tiny (a few MB to 1 GB).
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[0].value limit:per-object-cap 100.0 MB
Evidence (4)
datesourcewhat it proved
2026-10-21partner.steamgames.com/doc/features/cloud'you must set the Byte quota per user and Number of files allowed per user options ... This quota is enforced on each Cloud-enabled game, on a per-user-per-game basis'; file-size table '100MB Maximum size for a call to ISteamRemoteStorage::FileWrite'
2026-10-21krutonium.ca/posts/using-steam-as-cloud-storage/(published 2026-05-09) — '93GB Cloud Save Storage per Game, Maximum'; '100MB per File is an Ideal Limit, but above 250MB the back end for the API will start to hate you'; 'Possible Limit of 10,000 Files per Cloud Save'
2026-10-21api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetprobe: GET (POST, no key) -> 200, returns file_size 4997533 for item 450814997 — Steam's public storage APIs answer anonymously
2026-10-21forums.factorio.com/viewtopic.php?t=130969(Sep 2025) — 'poly bridge 3 has 93GB available', user reports 23GB used in Factorio
Unknown or withheld values (5)
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted

Steam Workshop (per-app item storage) Storage

caveatanonymousno cardRwrite-gateddisagrees

partner.steamgames.com/doc/features/workshop · media · storage/steam-workshop · JSON · compare

Sibling records disagree:

Free tierPer-item size is set by the game developer, not by Valve, and some games are explicitly unlimited — Arma 3: 'Arma 3 Workshop now support items of unlimited size.' Others are tiny: House Flipper raised its cap from 12 MB to 20 MB in a patch. So the quota is per-app, and the number of published items per account is not documented as capped.
unit unlimited; metered on unstated
Pricenone stated
Per-object capnot stated
Retentionnot stated
EgressFree and CDN-served by Valve's content network — same infrastructure as game downloads, genuinely unmetered.
Identityanonymous derived from the record's prose, not from an identity field, and no signup was executed: e survived a decade, links do not expire, and downloads are anonymous. Enforcement risk is real but technical: items can be delisted by the app's developer. One Steam account x every Worksh
Limits
  • write-gated review images go through a separate Steam Cloud quota source
Requires ownership of the game and a Steam client to upload — there is no headless upload path, which is the practical blocker. Per-item caps range from 20 MB to unlimited depending on app; preview images go through a separate Steam Cloud quota.
Bindingwrite-gated the write is a queue with a person or a rule in it, so the upload rate is set by somebody else
Interfacerest rest
ToolingISteamUGC (CreateItem + SetItemContent + SubmitItemUpdate) via the Steamworks SDK, so uploads need a Steam client with the game installed. Downloads are scriptable anonymously: steamcmd +login anonymous +workshop_download_item <appid> <publishedfileid>. Third-party downloaders (polocaz/ws-downloader, workshopfetch.com) exist for the read path.
Composes withOne Steam account x every Workshop-enabled game it owns x unlimited items per game. This is the multiplier: 'unlimited items per published file ID' inside an app whose developer set no cap.
ReliabilityVery durable — Workshop items have survived a decade, links do not expire, and downloads are anonymous. Enforcement risk is real but technical: items can be delisted by the app's developer.
NotesPer-item size is set by the game developer, not by Valve, and some games are explicitly unlimited — Arma 3: 'Arma 3 Workshop now support items of unlimited size.' Others are tiny: House Flipper raised its cap from 12 MB to 20 MB in a patch. So the quota is per-app, and the number of published items per account is not documented as capped.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (4)
datesourcewhat it proved
2026-10-21arma3.com/workshop101'What is the maximum size of a mod? Arma 3 Workshop now support items of unlimited size.'
2026-10-21steamcommunity.com/app/3710840/announcements/'Increased the maximum Steam Workshop item size limit from 12 MB to 20 MB. Increased the default Workshop item size from 10 MB to 12 MB.'
2026-10-21steamcommunity.com/discussions/forum/1/1744480966997034452/'The maximum size varies depending on what the developers set it as.'
2026-10-21partner.steamgames.com/doc/features/workshop'Steam Workshop is a system of back-end storage and front-end web pages that make it easy to store, organize, sort, rate, and download content'
Unknown or withheld values (5)
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted

steam workshop Storage

fails: quotaemail?card?Rdisagrees

partner.steamgames.com/steamdirect · rejected-provider · storage/steam-workshop-2 · JSON · compare

Sibling records disagree:

Free tierHard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityHard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract
NotesHard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (3)
datesourcewhat it proved
2026-10-21partner.steamgames.com/steamdirectHard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract
2026-10-21steamcommunity.com/discussions/forum/10/4202490864588145731/cited as the basis of the rejection: Hard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract
2026-10-21steamcommunity.com/app/4000/discussions/5/173434306561546770cited as the basis of the rejection: Hard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "Hard ceiling far below the client's unit size, plus a paid gate: uploads need a Steamworks partner app ($100 Steam Direct fee per product) and the ISteamUGC API is a C++ SDK, not HTTP. Pract",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded