fshy / Compute / Egress and tunnels / Storage
Bunny
bunny.net · Compute, Egress and tunnels, Storage · 8 records · JSON
- Bunny.net Edge Storage (+ free origin→CDN transit) StoragecaveatcardcardRper-ip-shaping
- hop.js CDN (cdn.hopjs.net) — Bunny.net's free OSS mirror of npm + cdnjs Storagecaveatanonymousno cardRper-object-cap
- Bunny Sandbox Computetrialemailno cardDretention-clamped
- bunny.net Egress and tunnelspaidcardcardDper-object-cap
- bunny stream / bunny storage Storagepaidemail?card?Rdisagrees
- bunny.net as a *free* egress source Storagefails: egressemail?card?R
- bunny stream Storagefails: egressemail?card?Rdisagrees
- cdnjs / cdnjs.cloudflare.com as a personal store Storagefails: quotaemail?card?R
Bunny.net Edge Storage (+ free origin→CDN transit) Storage
caveatcardcardRper-ip-shaping
| Free tier | Unlimited volume, pay-as-you-go. $0.01/GB/mo HDD per region (up to 9 regions), $0.02/GB/mo SSD per region (up to 15). 20 TiB single-region HDD = $200/mo. $1 monthly minimum. unit GB; metered on unstated |
|---|---|
| Price | $10/TB stored (HDD, 1 region); $20/TB (SSD); delivery +$10/TB EU/NA, +$30/TB Asia, +$5/TB on Volume Network. 20 TiB stored + 30 TB/mo served EU/NA = $200 + $300 = $500/mo ≈ $25 per stored TB all-in. |
| Per-object cap | not stated |
| Retention | not stated |
| Egress | The structurally important bit: **origin→CDN transit is free** ('Free traffic to Bunny CDN', 'Free API egress'). Only end-user CDN delivery is billed, at $0.01/GB EU/NA, $0.03/GB Asia-Oceania, $0.045/GB South America, $0.06/GB ME-Africa — or a flat $0.005/GB on the 10-PoP Volume Network. So storage and delivery are one bill with no double charge, unlike B2/R2-style metres. |
| Identity | card card |
| Limits |
per-ip-shaping: 100 concurrent conns per IP per server; 500 RPS per storage zone; 8 MB POST body for zip/download requests; 1 Gbps per connection. Geo-replication multiplies the storage price linearly (2 regions = 2x). |
| Binding | per-ip-shaping one stream is shaped, and a user's throughput is the shaped rate times the number of streams |
| Interface | s3-compatible, rest, ftps, ftp, rclone s3 + rest + ftp |
| Tooling | S3-compatible API and an HTTP API, FTP/FTPS, plus rclone's bunny backend. Limits are per-server: 100 concurrent HTTP conns/IP, 500 RPS per zone, 1 Gbps per connection — the docs explicitly tell you to shard across connections, which is rule 6 in action. |
| Composes with | This is the canonical 'cheap origin becomes viable' answer. Origin = Hetzner Storage Box at €2.03/TB (already in A-P8) or Bunny Storage at $10/TB; front door = Bunny CDN at $5–10/TB delivered, or free with the Cloudflare/EdgeOne layer. Bunny also *is* a pull zone, so you can point it at any free qualifying origin and pay only for delivery. |
| Reliability | PCI/99.99% SLA on storage; $1 minimum means idle cost is trivial. Card required at signup is the binding constraint for a user, and is why the free CDNs above matter more than Bunny's own storage. |
| Notes | Unlimited volume, pay-as-you-go. $0.01/GB/mo HDD per region (up to 9 regions), $0.02/GB/mo SSD per region (up to 15). 20 TiB single-region HDD = $200/mo. $1 monthly minimum. |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
| Parsed numbers |
|
Evidence (4)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | bunny.net/pricing/storage/ | '$0.01/GB … Up to 9 regions', '$1 monthly minimum', 'Free traffic to Bunny CDN', 'Free API egress' (read via read broker) |
| 2026-10-21 | bunny.net/pricing/cdn/ | EU/NA $0.01/GB, Asia & Oceania $0.03/GB, Volume Network 'First 500 TB $0.005/GB' (read via read broker) |
| 2026-10-21 | docs.bunny.net/storage/pricing | per-region arithmetic: 1 region $0.01/GB, 9 regions $0.055/GB; 'Traffic from Storage to CDN is FREE' |
| 2026-10-21 | docs.bunny.net/storage/limits | 100 concurrent HTTP conns/IP, 500 RPS/zone, 1 Gbps per connection, 8 MB POST body |
More fields (1)
{
"price_verbatim": "$10/TB stored (HDD, 1 region); $20/TB (SSD); delivery +$10/TB EU/NA, +$30/TB Asia, +$5/TB on Volume Network. 20 TiB stored + 30 TB/mo served EU/NA = $200 + $300 = $500/mo ≈ $25 per stored TB all-in."
}Unknown or withheld values (5)
$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.per_object_cap.statednot-extracted$.retention.notesnot-extracted$.retention.statednot-extracted
hop.js CDN (cdn.hopjs.net) — Bunny.net's free OSS mirror of npm + cdnjs Storage
caveatanonymousno cardRper-object-cap
| Free tier | No quota of its own. It is a permanent mirror: every file is copied into Bunny Storage SSD and served from there, so your ceiling is the npm cap. Probed single files of 32.2 MB, 54.0 MB and 64.5 MB — all served complete and byte-identical to the unpkg copy (sha256 match on the 53,974,528-byte .node and the 64,458,752-byte .exe). No per-file cap was hit at any size tried. unit unlimited; metered on stored-bytes |
|---|---|
| Price | none stated |
| Per-object cap | single files of 32.2 MB (32200000 bytes) |
| Retention | No quota of its own. It is a permanent mirror: every file is copied into Bunny Storage SSD and served from there, so your ceiling is the npm cap |
| Egress | Free and unmetered — it is a free public CDN; no account, no key, no billing surface at all. Origin->CDN transit is Bunny's own storage, so there is no origin bill either. |
| Identity | anonymous anonymous |
| Limits |
per-object-cap: ~64 MB proven, likely bounded by npm's own ~100 MB tarball publish limit rather than by hop.js. cache-write-gated: only packages already in the npm/cdnjs index are mirrored — you cannot upload to hop.js directly, you publish upstream. /gh/ (GitHub) paths are not supported (404). |
| 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 | rest, rclone rest |
| Tooling | Plain HTTPS GET: https://cdn.hopjs.net/npm/<pkg>@<ver>/<path>. No auth. Drop-in for any HTTP client / rclone http remote / curl. NOTE the path form carries the version twice when the mirror rewrites you, and the un-versioned form 302s to a broken URL — always pin <pkg>@<ver> explicitly. |
| Composes with | This is the missing piece for the npm-as-storage chain: publish the blob to npm (email-only identity), then serve it from hop.js instead of jsDelivr and the 50 MB jsDelivr file cap stops applying. Publish a 64 MB shard per npm version, chain thousands of versions, serve all of them free with no bandwidth ceiling. Because the mirror is permanent and Bunny-hosted, an npm unpublish does not remove the served copy in the short term. |
| Reliability | Young third-party service (Bunny-backed, 119 PoPs, logging disabled by design). Single point of failure with no SLA; for a 1 TiB/day workload you would mirror across hop.js + unpkg + jsDelivr so one going away is not an outage. Sustained single-stream measured 11.3 MB/s vs jsDelivr's 6.4 MB/s on the same 32 MB object. |
| Notes | No quota of its own. It is a permanent mirror: every file is copied into Bunny Storage SSD and served from there, so your ceiling is the npm cap. Probed single files of 32.2 MB, 54.0 MB and 64.5 MB — all served complete and byte-identical to the unpkg copy (sha256 match on the 53,974,528-byte .node and the 64,458,752-byte .exe). No per-file cap was hit at any size tried. |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
| Parsed numbers |
|
Evidence (5)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | cdn.hopjs.net/npm/@ffmpeg/core@0.12.10/dist/esm/ffmpeg-core. | HTTP 200, 32,232,419 bytes (probed) |
| 2026-10-21 | cdn.hopjs.net/npm/@swc/core-win32-x64-msvc@1.7.0/swc.win32-x | HTTP 200, 53,974,528 bytes, sha256 0c7aecd6… identical to the unpkg copy (probed) |
| 2026-10-21 | cdn.hopjs.net/npm/@ffmpeg-installer/win32-x64@4.1.0/ffmpeg.e | HTTP 200, 64,458,752 bytes, sha256 c8abc49e… identical to unpkg (probed); jsDelivr 403s this exact file |
| 2026-10-21 | cdn.hopjs.net/gh/jquery/jquery@3.7.1/dist/jquery.min.js | 404, so no GitHub proxy |
| 2026-10-21 | hopjs.bunny.net/about/ | 'every package is permanently distributed across Bunny Storage's globally deployed SSD regions'; 119 PoPs; all logging disabled |
Unknown or withheld values (3)
$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.retention.notesnot-extracted
Bunny Sandbox Compute
trialemailno cardDretention-clamped
| Free tier | A sandbox billed at Magic Containers rates: USD 0.02 per CPU core-hour billed per second up to 8 cores, USD 0.005 per GB-hour of RAM billed in 64 MB blocks, USD 0.10 per GB per month for the allocated 10 GB workspace, and USD 2 per month for the anycast IPv4 billed per minute. Every sandbox is a clean Ubuntu image with Node.js, Bun, Python and Claude Code installed, plus a 10 GB persistent workspace. unit hours; metered on wall-clock; trial-credit |
|---|---|
| Price | none stated |
| Per-object cap | not applicable |
| Retention | The trial ends at 14 days or when the USD 20 balance is spent, and a sandbox keeps running and billing until it is deleted, so an orphaned box eats the whole trial. |
| Egress | egress is metered: USD 0.01 per GB Europe and North America, USD 0.03 Asia and Oceania, USD 0.045 Latin America, USD 0.06 Middle East and Africa |
| Identity | email no card required: the bunny.net FAQ states "Every user starts with USD 20 of trial credits upon signup. No credit card is required", with the balance rising to USD 50 when a card is linked, so the card is optional rather than a gate; no hold or authorisation is stated, no phone or identity document is mentioned, and whether debit or prepaid cards work for the optional link is not stated. The record does not name the signup identifier beyond that FAQ |
| Limits |
The trial ends at 14 days or when the USD 20 balance is spent, and a sandbox keeps running and billing until it is deleted, so an orphaned box eats the whole trial. |
| Binding | retention-clamped The trial ends at 14 days or when the USD 20 balance is spent, and a sandbox keeps running and billing until it is deleted, so an orphaned box eats the whole trial. |
| Interface | ssh inferred from the tooling the provider documents; not probed |
| Tooling | not stated |
| Composes with | The USD 20 trial at USD 0.06 per hour for 2 cores with 4 GB buys about 333 sandbox-hours inside a 14-day window, and the anycast IP plus port exposure makes each one reachable by SSH or HTTPS without a tunnel, which is the piece the free container sandboxes usually lack. |
| Reliability | no reliability event recorded |
| Notes | The trial credit is recorded against the site-wide bunny.net trial, not a sandbox-specific allowance; nothing on the sandbox page carves out a separate free lane. Egress is the term that can dominate: at USD 0.01 per GB in Europe, serving 1 TiB inside the trial costs USD 10.24, half the balance. The rate is the cheapest per-core container rate I found, and the memory rate is the cheapest per-GiB rate. Compute at 2 cores and 4 GB is USD 0.06 per hour, or USD 43.80 for 730 hours, plus USD 1 for the workspace and USD 2 for the IP. |
| Evidence rung | documented |
| Checked | 2026-10-22 (live); stale on 2026-11-21 |
Evidence (5)
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | bunny.net/blog/introducing-bunny-sandbox-a-disposable-room-w | Bunny Sandbox announced 2026-07-16, Magic Containers underneath, clean Ubuntu with Node.js, Bun, Python and Claude Code, 10 GB persistent workspace, USD 0.02 per CPU core per hour per second up to 8 cores, USD 0.005 per GB per hour in 64 MB increments, USD 2 per month anycast IP |
| 2026-10-22 | bunny.net/blog/introducing-bunny-sandbox-a-disposable-room-w | 'a sandbox keeps running, and keeps costing you, until you delete it' |
| 2026-10-22 | bunny.net/docs/faq | 'Every user starts with USD 20 of trial credits upon signup. No credit card is required', the balance rises to USD 50 with a linked card, and the trial ends at 14 days or when the balance is used |
| 2026-10-22 | bunny.net/magic-containers/ | egress is metered: USD 0.01 per GB Europe and North America, USD 0.03 Asia and Oceania, USD 0.045 Latin America, USD 0.06 Middle East and Africa |
| 2026-10-22 | bunny.net/magic-containers/ | not published |
More fields (1)
{
"wave2": {
"class": "trial-credit-sandbox",
"free_tier_kind": "trial-credit",
"shape": {
"vcpu": 2,
"ram_gib": 4,
"disk_gib": 10,
"gpu_class": null,
"gpu_count": null
}
}
}Unknown or withheld values (6)
$.evidence[4].provedwithheld$.per_object_cap.notesprocess$.per_object_cap.statednot-applicable$.reliability_notenone-observed$.retention.notesprocess$.toolingnot-stated
bunny.net Egress and tunnels
paidcardcardDper-object-cap
| Free tier | no free tier; USD 1/month minimum unit none; metered on downloaded-bytes |
|---|---|
| Price | none stated |
| Per-object cap | not applicable: billed per GB with no free allowance |
| Retention | not applicable |
| Egress | USD 0.01/GB in EU and North America, USD 0.005/GB on the volume network |
| Identity | card a card, with a USD 1/month minimum |
| Limits |
|
| Binding | per-object-cap |
| Interface | rest a pull zone hostname |
| Tooling | bunny API |
| Composes with | the paid comparison every free claim here should be read against: at USD 0.005/GB a day of a user's workload is USD 5.5 to 11. |
| Reliability | the cheapest per-GB CDN rate found, which is why the arithmetic matters more than the rate |
| Notes | At 1 TiB/day, 1,024 GiB is 1.10 TB, so USD 5.5 to 11 per day and USD 165 to 330 per month. |
| Evidence rung | documented |
| Checked | 2026-10-23 (live); stale on 2026-11-22 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | bunny.net/pricing/ | USD 0.005/GB on the volume network and USD 0.01/GB in EU and North America |
More fields (3)
{
"stale_after_days": 180,
"bytes_transit": "yes",
"transit_note": "a pull zone serves the origin's bytes from bunny's edge"
}bunny stream / bunny storage Storage
paidemail?card?Rdisagrees
Sibling records disagree:
- verdict:
storage/bunny-streamsays fails-egress, storage/bunny-stream-bunny-storage says paid-only
| Free tier | No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial; Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage* unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial; Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage* |
| Notes | No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial; Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage* |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (3)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | bunny.net/pricing/stream/ | No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage* |
| 2026-10-21 | bunny.net/pricing/ | cited as the basis of the rejection: No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial; Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage* |
| 2026-10-21 | bunny.net/pricing/storage/ | cited as the basis of the rejection: No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial; Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage* |
More fields (1)
{
"dead_end": {
"failure_class": "paid",
"why": "No free tier — Stream is 'only pay for the traffic' plus $1/month minimum and a 14-day trial; Storage is $0.01/GB/mo with free traffic to Bunny CDN only. Note for the swarm: Bunny *Storage*",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded
bunny.net as a *free* egress source Storage
fails: egressemail?card?R
| Free tier | Free transit applies only from Bunny Storage *into* Bunny CDN. There is no free public egress: end-user delivery is $0.01/GB EU/NA and $0.03/GB Asia, with a $1/month minimum, so Bunny is the unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | Free transit applies only from Bunny Storage *into* Bunny CDN. There is no free public egress: end-user delivery is $0.01/GB EU/NA and $0.03/GB Asia, with a $1/month minimum, so Bunny is the |
| Notes | Free transit applies only from Bunny Storage *into* Bunny CDN. There is no free public egress: end-user delivery is $0.01/GB EU/NA and $0.03/GB Asia, with a $1/month minimum, so Bunny is the |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | docs.bunny.net/storage/pricing | Free transit applies only from Bunny Storage *into* Bunny CDN. There is no free public egress: end-user delivery is $0.01/GB EU/NA and $0.03/GB Asia, with a $1/month minimum, so Bunny is the |
| 2026-10-21 | bunny.net/pricing/cdn/ | cited as the basis of the rejection: Free transit applies only from Bunny Storage *into* Bunny CDN. There is no free public egress: end-user delivery is $0.01/GB EU/NA and $0.03/GB Asia, with a $1/month minimum, so Bunny is the |
More fields (1)
{
"dead_end": {
"failure_class": "egress",
"why": "Free transit applies only from Bunny Storage *into* Bunny CDN. There is no free public egress: end-user delivery is $0.01/GB EU/NA and $0.03/GB Asia, with a $1/month minimum, so Bunny is the",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded
bunny stream Storage
fails: egressemail?card?Rdisagrees
Sibling records disagree:
- verdict:
storage/bunny-streamsays fails-egress, storage/bunny-stream-bunny-storage says paid-only
| Free tier | Paid per GB stored and per GB delivered. Transcoding and player are free, storage is 'From $0.01/GB' and traffic is billed on top — this is exactly the per-GB metered model the client reject unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | Paid per GB stored and per GB delivered. Transcoding and player are free, storage is 'From $0.01/GB' and traffic is billed on top — this is exactly the per-GB metered model the client reject |
| Notes | Paid per GB stored and per GB delivered. Transcoding and player are free, storage is 'From $0.01/GB' and traffic is billed on top — this is exactly the per-GB metered model the client reject |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | bunny.net/pricing/stream/ | Paid per GB stored and per GB delivered. Transcoding and player are free, storage is 'From $0.01/GB' and traffic is billed on top — this is exactly the per-GB metered model the client reject |
More fields (1)
{
"dead_end": {
"failure_class": "egress",
"why": "Paid per GB stored and per GB delivered. Transcoding and player are free, storage is 'From $0.01/GB' and traffic is billed on top — this is exactly the per-GB metered model the client reject",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded
cdnjs / cdnjs.cloudflare.com as a personal store Storage
fails: quotaemail?card?R
| Free tier | Not open-write: packages are added by maintainer PR against the cdnjs/cdnjs repo, i.e. write-gated by review. Its free mirror hop.js is useful (see candidate 1) but the underlying store is n unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | Not open-write: packages are added by maintainer PR against the cdnjs/cdnjs repo, i.e. write-gated by review. Its free mirror hop.js is useful (see candidate 1) but the underlying store is n |
| Notes | Not open-write: packages are added by maintainer PR against the cdnjs/cdnjs repo, i.e. write-gated by review. Its free mirror hop.js is useful (see candidate 1) but the underlying store is n |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | hopjs.bunny.net/about/ | Not open-write: packages are added by maintainer PR against the cdnjs/cdnjs repo, i.e. write-gated by review. Its free mirror hop.js is useful (see candidate 1) but the underlying store is n |
More fields (1)
{
"dead_end": {
"failure_class": "write-gated",
"why": "Not open-write: packages are added by maintainer PR against the cdnjs/cdnjs repo, i.e. write-gated by review. Its free mirror hop.js is useful (see candidate 1) but the underlying store is n",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded