nostrmedia.com
nostrmedia.com · Storage · 1 record · JSON
nostrmedia.com (NIP-96 file host) Storage
caveatanonymousno cardRper-object-cap
| Free tier | free 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 |
|---|---|
| Price | none stated |
| Per-object cap | per-object-cap 25 MiB (26214400 bytes) |
| Retention | not stated |
| Egress | unmetered, Cloudflare-fronted (Server: cloudflare, Cache-Control public max-age=14400). |
| Identity | anonymous anonymous |
| Limits |
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. |
| Binding | per-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 |
| Interface | unknown NIP-96 HTTP file storage. Discoverable at /.well-known/nostr/nip96.json; POST /upload; /presigned 'handles up to 5 GB'. |
| Tooling | curl; NIP-98 Authorization header (signed event). The llms.txt documents the /presigned path for large objects. |
| Composes with | machine-readable plan manifest means the cap is queryable rather than scraped — one GET tells you the size ceiling per plan. |
| Reliability | transforms 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. |
| Notes | free 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 rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
| Parsed numbers |
|
Evidence (3)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | nostrmedia.com/.well-known/nostr/nip96.json | literal 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-21 | nostrmedia.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-21 | nostrmedia.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.notesprocess$.interfaceinterface-unknown$.per_object_cap.notesnot-extracted$.retention.notesnot-extracted$.retention.statednot-extracted