fshy

fshy / Storage

nostrmedia.com

nostrmedia.com · Storage · 1 record · JSON

nostrmedia.com (NIP-96 file host) Storage

caveatanonymousno cardRper-object-cap

nostrmedia.com/ · p2p-blob-storage · storage/nostrmedia-com · JSON · compare

Free tierfree plan max_byte_size 26,214,400 (25 MiB); paid 'purple'/'onyx' 104,857,600 (100 MiB). file_expiration: [0,0] on every plan = never expires.
unit mixed; metered on unstated
Pricenone stated
Per-object capper-object-cap 25 MiB (26214400 bytes)
Retentionnot stated
Egressunmetered, Cloudflare-fronted (Server: cloudflare, Cache-Control public max-age=14400).
Identityanonymous anonymous
Limits
  • per-object-cap per-object-cap 25 MiB source
per-object-cap 25 MiB free. 125 MB on the direct /upload, 5 GB via /presigned (per llms.txt) — the /presigned path is the one that matters and it is far above the free plan's advertised 25 MiB.
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
Interfaceunknown NIP-96 HTTP file storage. Discoverable at /.well-known/nostr/nip96.json; POST /upload; /presigned 'handles up to 5 GB'.
Toolingcurl; NIP-98 Authorization header (signed event). The llms.txt documents the /presigned path for large objects.
Composes withmachine-readable plan manifest means the cap is queryable rather than scraped — one GET tells you the size ceiling per plan.
Reliabilitytransforms media at ingest on some paths (resizing, format_conversion, compression, metadata_stripping are all listed in the manifest) — verify originals come back byte-identical, per BRIEF rule 4.
Notesfree plan max_byte_size 26,214,400 (25 MiB); paid 'purple'/'onyx' 104,857,600 (100 MiB). file_expiration: [0,0] on every plan = never expires.
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 25.0 MiB
Evidence (3)
datesourcewhat it proved
2026-10-21nostrmedia.com/.well-known/nostr/nip96.jsonliteral body: api_url https://nostrmedia.com/upload, download_url https://file.nostrmedia.com, supported_nips [94,96,98], plans.free.max_byte_size 26214400, file_expiration [0,0], media_transformations image [resizing, format_conversion, compression, metadata_stripping]
2026-10-21nostrmedia.com/llms.txt'A single POST to /upload accepts files up to 125 MB; /presigned handles up to 5 GB', 'Uploads never expire while the subscription is active'
2026-10-21nostrmedia.com/docs/api.md'/upload answers 413 above 125 MB because the request would outlive the worker'
More fields (1)
{
 "unit_note": "free_tier.unit is 'mixed' because the headline is denominated in MiB or KiB, which the schema enum does not carry; the verbatim free_tier.stated keeps the true unit. See the storage-dossier handover."
}
Unknown or withheld values (5)
  • $.free_tier.notes process
  • $.interface interface-unknown
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted