{
  "data": {
    "a": {
      "slug": "bunny-storage",
      "name": "Bunny Storage",
      "vendor": "bunny.net",
      "vendorUrl": "https://bunny.net/storage/",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "Object storage replicated to up to 15 regions, fronted by Bunny CDN.",
      "url": "https://www.anchorterminal.com/tools/bunny-storage",
      "markdownUrl": "https://www.anchorterminal.com/tools/bunny-storage.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bunny-storage.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bunny-storage.json",
      "repo": "https://github.com/BunnyWay/BunnyCDN.Net.Storage",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://storage.bunnycdn.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@bunny.net/storage-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "The HTTP API takes the storage zone's password in an AccessKey header (each zone has a read-write and a read-only password). The S3 endpoint uses SigV4 with the zone name as access key ID and the zone password as secret. There's no OAuth and no per-object or per-prefix credential.",
      "pricing": "usage",
      "pricingNotes": "Standard (HDD) storage is $0.01 a GB-month in one region, $0.02 for two, $0.025 for three, then $0.005 a GB for each extra region up to nine. Edge (SSD) storage is $0.02 a GB-month per region, up to 15 regions. No API fees, and traffic from storage to Bunny CDN and API egress are free. Delivery to end users is billed by the CDN, $0.01 a GB in Europe and North America, $0.03 in Asia and Oceania, $0.045 in South America and $0.06 in the Middle East and Africa on the Standard tier, or $0.005 a GB for the first 500 TB on the Volume tier. $1 monthly minimum. 14-day trial without a card (https://bunny.net/pricing/storage/; https://bunny.net/pricing/).",
      "priceSummary": "$0.01 / GB",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 46,
        "npmWeekly": 10379,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://bunny.net/docs/storage",
      "llmsTxt": "https://bunny.net/docs/llms.txt",
      "capabilities": [
        "storage.object",
        "storage.s3",
        "storage.presigned"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "s3-compatible",
        "typescript",
        "llms-txt",
        "eu",
        "usage-priced"
      ],
      "lastRelease": "2026-08-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.3,
        "grade": "C",
        "agentReady": false,
        "rank": 582,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 63,
          "payments": 40,
          "reliability": 75,
          "schema": 64,
          "security": 45,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "$0.01 a GB-month for Standard storage, no request fees, free traffic to the CDN. Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log.",
        "bestFor": "An agent that publishes files to be served through a CDN at the lowest price and doesn't need fine-grained credentials.",
        "strengths": [
          "$0.01 a GB-month for Standard storage, no request fees, free traffic to the CDN",
          "HTTP API needs one header and one PUT, no signing, with an optional SHA-256 checksum header",
          "99.99 per cent SLA with credits from 12 to 240 hours",
          "llms.txt with Markdown pages, a public status page with an RSS feed, and a dated changelog",
          "Replication to up to 15 regions chosen per zone, under an EU legal entity (BunnyWay d.o.o., Slovenia)"
        ],
        "weaknesses": [
          "Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log",
          "S3 compatibility, and with it presigned links, is still public preview and can't be switched on for an existing zone",
          "The HTTP API documents only 201, 400 and 401, and gives no pagination for folder listings",
          "No OpenAPI for the storage data plane, no official MCP server and no security.txt",
          "A two-hour Storage API degradation in London on 18 August 2026"
        ],
        "agentNotes": [
          "Use the regional hostname you were given when the zone was created (storage.bunnycdn.com is Frankfurt). Other regions return a 401",
          "Send the body as raw bytes with --data-binary. Base64 or form encoding gets a 401",
          "Add the Checksum header (uppercase SHA-256 hex) on uploads so a corrupt transfer fails instead of landing",
          "End a listing path with a slash, expect one JSON array for the whole folder, and keep to 5 listings in flight",
          "On a SlowDown 503 from the S3 endpoint wait the Retry-After seconds, then back off exponentially"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.3
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 63,
          "payments": 40,
          "reliability": 75,
          "schema": 64,
          "security": 45,
          "transparency": 52
        },
        "provenanceScore": 67
      },
      "connect": {
        "http": "curl -X PUT \"https://storage.bunnycdn.com/$BUNNY_STORAGE_ZONE/hello.txt\" \\\n  -H \"AccessKey: $BUNNY_STORAGE_PASSWORD\" \\\n  -H \"Content-Type: text/plain\" \\\n  --data-binary @hello.txt"
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/bunny-storage"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Standard storage, one region",
          "unit": "gb-month",
          "usd": 0.01,
          "note": "$0.02 for two regions, $0.025 for three, then $0.005 per extra region"
        },
        {
          "item": "Edge SSD storage, per region",
          "unit": "gb-month",
          "usd": 0.02
        },
        {
          "item": "CDN delivery, Europe and North America",
          "unit": "gb",
          "usd": 0.01,
          "note": "Standard tier. $0.03 Asia and Oceania, $0.045 South America, $0.06 Middle East and Africa"
        },
        {
          "item": "CDN delivery, Volume tier",
          "unit": "gb",
          "usd": 0.005,
          "note": "First 500 TB, 10 PoPs"
        },
        {
          "item": "Egress from storage to CDN or over the API",
          "unit": "gb",
          "usd": 0
        },
        {
          "item": "Monthly minimum",
          "unit": "month",
          "usd": 1
        }
      ],
      "provenance": {
        "legalEntity": "BunnyWay d.o.o.",
        "domain": "bunny.net",
        "domainRegistered": "1999-11-22",
        "domainNote": "bunny.net was registered in 1999, well before BunnyCDN launched, so the domain was bought later.",
        "endpointOnVendorDomain": false,
        "terms": "https://bunny.net/tos/",
        "privacy": "https://bunny.net/privacy/",
        "statusPage": "https://status.bunny.net",
        "changelog": "https://bunny.net/docs/storage/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms and privacy policy name BunnyWay d.o.o., Dunajska cesta 165, 1000 Ljubljana, Slovenia. The privacy policy was last updated 2026-08-05.",
          "Storage endpoints sit on storage.bunnycdn.com, not bunny.net.",
          "bunny.net/.well-known/security.txt returns 404.",
          "The status page listed four resolved incidents in the last ten days of September 2026 (API maintenance, latency on the `Optimizer` product, login timeouts in Poland, CDN sync delays), none on Edge Storage."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bunny-storage.json",
      "live": {
        "slug": "bunny-storage",
        "probe": {
          "target": "https://storage.bunnycdn.com",
          "method": "get",
          "lastAt": "2026-10-10T03:53:23.02555054Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 56,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 65,
          "p95ms24h": 129,
          "samples24h": 249,
          "samples30d": 2274,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bunny.net",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:02.091768843Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@bunny.net/storage-sdk",
            "version": "0.3.2",
            "seenAt": "2026-10-09T16:44:13.59035199Z"
          }
        ],
        "githubStars": 46,
        "npmWeekly": 11587,
        "securityTxt": {
          "url": "https://bunny.net/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:28.157475732Z"
        },
        "llmsTxt": {
          "url": "https://bunny.net/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:34.059421269Z"
        },
        "domain": {
          "domain": "bunny.net",
          "registered": "1999-11-22",
          "source": "https://rdap.verisign.com/net/v1/domain/bunny.net",
          "checkedAt": "2026-10-04T13:04:45.921965958Z"
        },
        "pages": [
          {
            "url": "https://bunny.net/docs/storage/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:33:26.394404889Z",
            "changedAt": "2026-10-09T18:33:26.394404889Z",
            "fingerprint": "87da5f934412"
          },
          {
            "url": "https://bunny.net/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-09T18:33:29.005872254Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b61f7956435f"
          },
          {
            "url": "https://bunny.net/pricing/storage/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-09T18:33:30.399264806Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2c355b70647d"
          },
          {
            "url": "https://bunny.net/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-09T18:33:32.403456974Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f7f3e1cca715"
          },
          {
            "url": "https://bunny.net/tos/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:33:34.405950492Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "84163e980c6a"
          }
        ],
        "updatedAt": "2026-10-10T03:58:02.091768843Z"
      }
    },
    "answer": "DigitalOcean Spaces scores 63.2 (B) on agent readiness against Bunny Storage's 58.3 (C), and leads in 4 of 7 scored categories. Bunny Storage leads on payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "slug": "digitalocean-spaces",
      "name": "DigitalOcean Spaces",
      "vendor": "DigitalOcean, LLC",
      "vendorUrl": "https://www.digitalocean.com",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "DigitalOcean Spaces is S3-compatible object storage with a built-in CDN, sold as a $5 monthly subscription. Agents use it through AWS S3 SDKs with a Spaces access key, and manage keys through the DigitalOcean API or MCP server.",
      "url": "https://www.anchorterminal.com/tools/digitalocean-spaces",
      "markdownUrl": "https://www.anchorterminal.com/tools/digitalocean-spaces.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/digitalocean-spaces.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/digitalocean-spaces.json",
      "license": "Proprietary service under the DigitalOcean Terms of Service Agreement. The MCP server is MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://nyc3.digitaloceanspaces.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@digitalocean/mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve Spaces access key and secret, signed as for AWS S3 (SigV4, or SigV2 for older clients). A person signs up in a browser and adds a payment method first. Keys are full access or limited to named buckets with Read or Read/Write/Delete, and are made in the control panel or through `/v2/spaces/keys` with a scoped DigitalOcean API token. The remote MCP server takes OAuth with a browser sign-in, or a bearer API token.",
      "pricing": "usage",
      "pricingNotes": "$5 a month for 250 GiB of storage and 1,024 GiB of outbound transfer across all buckets, then $0.02 a GiB-month and $0.01 a GiB. No request charges are listed. The CDN is included. Cold Storage is $0.007 a GiB-month plus $0.01 a GiB retrieved. A $5 sign-up credit lasts 90 days and needs a payment method, so there is no start without a card (https://docs.digitalocean.com/products/spaces/details/pricing/; https://docs.digitalocean.com/platform/billing/signup-credit/).",
      "priceSummary": "$5 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Spaces docs, the API reference index or the pricing pages. A Stablecoin Payment Addendum of 25 November 2025 covers account payments through Stripe, not per-request payment (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.digitalocean.com/products/spaces/",
      "llmsTxt": "https://docs.digitalocean.com/llms.txt",
      "openapi": "https://docs.digitalocean.com/reference/api/reference/openapi.json",
      "capabilities": [
        "storage.object",
        "storage.s3",
        "storage.presigned",
        "storage.share"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "s3-compatible",
        "cdn",
        "mcp",
        "oauth",
        "llms-txt",
        "openapi",
        "usage-priced",
        "status-page",
        "sla",
        "soc-2"
      ],
      "lastRelease": "2026-04-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.2,
        "grade": "B",
        "agentReady": false,
        "rank": 402,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 37,
          "payments": 20,
          "reliability": 77,
          "schema": 63,
          "security": 77,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Per-bucket access keys with read or read-write-delete grants, an 800 operations a second limit per bucket and a 99.9 per cent SLA are all published. The MCP server manages keys and CDN endpoints only, not objects, and the S3 reference documents no error codes. A payment method is required before any bucket is created.",
        "bestFor": "Teams already on DigitalOcean that want object storage with a CDN and a flat $5 entry price for up to 250 GiB, with free transfer to Droplets in the same region.",
        "strengths": [
          "Spaces access keys can be limited to named buckets with read or read-write-delete grants, and are created through `/v2/spaces/keys` or the control panel",
          "Limits are published with numbers, 800 operations a second per new bucket, with exponential backoff advised on `503 Slow Down`",
          "The Spaces SLA of 2 December 2025 gives 99.9 per cent monthly uptime per bucket, with credits of 10, 25 and 100 per cent",
          "Every docs page has a Markdown twin, indexed in `llms.txt`, and the S3 reference lists each supported operation with its minimum permission level",
          "All ten Spaces tools in the MCP server (MIT licence) carry read-only, idempotent or destructive hints and a risk class, checked by tests"
        ],
        "weaknesses": [
          "The Spaces MCP server has ten tools for access keys and CDN endpoints. None reads, writes, lists or shares an object",
          "The access guide and the limits page say keys cannot be created through the API, while the API reference documents `POST /v2/spaces/keys`",
          "The limits page lists `list-objects-v2` pagination as unsupported, and the compatibility page says to use `ListObjectsV2` for new applications",
          "No error codes are documented in the S3 reference. Unsupported calls return `NotImplemented`, and no Object Lock was found",
          "The $5 sign-up credit needs a payment method first, and a subscription costs $5 a month once the first bucket exists",
          "The Acceptable Use Policy of 20 March 2026 bars scraping of service content and any probing or testing without written consent, which matters before any probe is run"
        ],
        "agentNotes": [
          "Set the endpoint to `https://\u003cregion\u003e.digitaloceanspaces.com` and, in AWS SDKs other than Python's, set `region` to `us-east-1` when creating a bucket",
          "Ask for a limited access key with a Read or Read/Write/Delete grant on one bucket. A full access key can create, configure and delete every bucket",
          "Do the object work through the S3 API. The MCP server and `doctl` cannot upload, list, move or delete files",
          "Retry with exponential backoff on `503 Slow Down`, and keep below 800 operations a second per bucket",
          "Fetch presigned links from the origin host, not the CDN. The docs say presigned requests through the CDN are not cached and can double the bandwidth charge",
          "Avoid many tiny objects. Each bills as at least 4 KiB on Standard and 128 KiB on Cold Storage, which also has a 30-day minimum"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.2
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 37,
          "payments": 20,
          "reliability": 77,
          "schema": 63,
          "security": 77,
          "transparency": 63
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "import boto3\nsession = boto3.session.Session()\nclient = session.client('s3',\n                        region_name='nyc3',\n                        endpoint_url='https://nyc3.digitaloceanspaces.com',\n                        aws_access_key_id='YOUR_SPACES_KEY',\n                        aws_secret_access_key='YOUR_SPACES_SECRET')\nclient.upload_file('localfile.txt', 'my-bucket', 'uploaded.txt')",
        "config": {
          "mcpServers": {
            "spaces": {
              "url": "https://spaces.mcp.digitalocean.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/digitalocean-spaces"
      },
      "sameCompany": [
        "digitalocean-mcp"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Spaces subscription",
          "unit": "month",
          "usd": 5,
          "note": "Includes 250 GiB of storage and 1,024 GiB of outbound transfer across all buckets"
        },
        {
          "item": "Standard storage beyond 250 GiB",
          "unit": "gb-month",
          "usd": 0.02,
          "note": "Per GiB"
        },
        {
          "item": "Cold Storage",
          "unit": "gb-month",
          "usd": 0.007,
          "note": "Per GiB, 30-day minimum, plus $0.01 a GiB retrieved"
        },
        {
          "item": "Outbound transfer beyond 1,024 GiB",
          "unit": "gb",
          "usd": 0.01,
          "note": "Per GiB. Inbound transfer is free"
        }
      ],
      "provenance": {
        "legalEntity": "DigitalOcean, LLC",
        "domain": "digitalocean.com",
        "domainRegistered": "2000-04-12",
        "endpointOnVendorDomain": false,
        "terms": "https://www.digitalocean.com/legal/terms-of-service-agreement",
        "privacy": "https://www.digitalocean.com/legal/privacy-policy",
        "statusPage": "https://status.digitalocean.com",
        "changelog": "https://docs.digitalocean.com/release-notes/spaces/",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Terms of Service Agreement, last updated 22 August 2026, names DigitalOcean, LLC, 105 Edgeview Drive, Ste. 425, Broomfield, CO 80021.",
          "The privacy policy, last updated 1 January 2025, says it does not apply to content customers process in the services. The Data Processing Agreement of 6 February 2026 at https://www.digitalocean.com/legal/data-processing-agreement covers that content.",
          "Storage endpoints are on digitaloceanspaces.com. The DigitalOcean API and the MCP server are on digitalocean.com.",
          "security.txt at https://www.digitalocean.com/.well-known/security.txt gives an Intigriti programme and security@digitalocean.com as contacts and Expires 2028-04-05.",
          "RDAP for digitalocean.com gives a registration date of 2000-04-12.",
          "status.digitalocean.com disallows /api/ and /embed/ in robots.txt. We read /history.rss, which holds 25 entries from 24 July to 5 October 2026.",
          "The Acceptable Use Policy of 20 March 2026 forbids harvesting or scraping content of the services and probing or testing DigitalOcean systems without written consent."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/digitalocean-spaces.json",
      "live": {
        "slug": "digitalocean-spaces",
        "probe": {
          "target": "https://nyc3.digitaloceanspaces.com",
          "method": "get",
          "lastAt": "2026-10-10T03:53:25.723801682Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 242,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 251,
          "p95ms24h": 312,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.digitalocean.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:14.464052528Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@digitalocean/mcp",
            "version": "1.3.0",
            "seenAt": "2026-10-09T16:49:55.367691357Z"
          }
        ],
        "npmWeekly": 6361,
        "pages": [
          {
            "url": "https://docs.digitalocean.com/release-notes/spaces/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:37:15.694494826Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f985fd3f520e"
          },
          {
            "url": "https://docs.digitalocean.com/products/spaces/details/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:37:13.39335158Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4009725f24fb"
          }
        ],
        "updatedAt": "2026-10-10T03:58:14.464052528Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "bunny.net",
        "b": "DigitalOcean, LLC",
        "name": "Vendor"
      },
      {
        "a": "https://storage.bunnycdn.com",
        "b": "https://nyc3.digitaloceanspaces.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under the DigitalOcean Terms of Service Agreement. The MCP server is MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-14",
        "b": "2026-04-08",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-08-22",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-01-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "46 stars, 10k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "DigitalOcean Spaces scores 63.2 (B) on agent readiness against Bunny Storage's 58.3 (C), and leads in 4 of 7 scored categories. Bunny Storage leads on payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Bunny Storage or DigitalOcean Spaces?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Bunny Storage and DigitalOcean Spaces need an API key?"
      },
      {
        "answer": "Yes. Bunny Storage has a hosted endpoint at https://storage.bunnycdn.com and DigitalOcean Spaces at https://nyc3.digitaloceanspaces.com.",
        "question": "Can an agent call Bunny Storage and DigitalOcean Spaces without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 63 against 37"
        ],
        "also": null,
        "goodFor": "An agent that publishes files to be served through a CDN at the lowest price and doesn't need fine-grained credentials.",
        "slug": "bunny-storage",
        "watchFor": "Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 73 against 57",
          "Security \u0026 auth, 77 against 45",
          "Transparency \u0026 trust, 74 against 60"
        ],
        "also": null,
        "goodFor": "Teams already on DigitalOcean that want object storage with a CDN and a flat $5 entry price for up to 250 GiB, with free transfer to Droplets in the same region.",
        "slug": "digitalocean-spaces",
        "watchFor": "The Spaces MCP server has ten tools for access keys and CDN endpoints. None reads, writes, lists or shares an object"
      }
    ],
    "job": {
      "capability": "storage.object",
      "name": "Object storage"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/box-api-vs-digitalocean-spaces.json",
        "title": "Box API + MCP vs DigitalOcean Spaces",
        "url": "https://www.anchorterminal.com/compare/box-api-vs-digitalocean-spaces"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-dropbox-api.json",
        "title": "DigitalOcean Spaces vs Dropbox API + MCP",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-dropbox-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-fast-io.json",
        "title": "DigitalOcean Spaces vs Fastio",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-fast-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-google-drive-api.json",
        "title": "DigitalOcean Spaces vs Google Drive API + MCP",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-google-drive-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-onedrive-sharepoint.json",
        "title": "DigitalOcean Spaces vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-onedrive-sharepoint"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage.json",
        "title": "Amazon S3 vs Bunny Storage",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-digitalocean-spaces.json",
        "title": "Amazon S3 vs DigitalOcean Spaces",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-digitalocean-spaces"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-bunny-storage.json",
        "title": "Azure Blob Storage vs Bunny Storage",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-bunny-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-digitalocean-spaces.json",
        "title": "Azure Blob Storage vs DigitalOcean Spaces",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-digitalocean-spaces"
      },
      {
        "json": "https://www.anchorterminal.com/compare/backblaze-b2-vs-bunny-storage.json",
        "title": "Backblaze B2 vs Bunny Storage",
        "url": "https://www.anchorterminal.com/compare/backblaze-b2-vs-bunny-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/backblaze-b2-vs-digitalocean-spaces.json",
        "title": "Backblaze B2 vs DigitalOcean Spaces",
        "url": "https://www.anchorterminal.com/compare/backblaze-b2-vs-digitalocean-spaces"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2.json",
        "title": "Bunny Storage vs Cloudflare R2",
        "url": "https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bunny-storage-vs-tigris.json",
        "title": "Bunny Storage vs Tigris",
        "url": "https://www.anchorterminal.com/compare/bunny-storage-vs-tigris"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bunny-storage-vs-wasabi-hot-cloud-storage.json",
        "title": "Bunny Storage vs Wasabi Hot Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/bunny-storage-vs-wasabi-hot-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces.json",
        "title": "Cloudflare R2 vs DigitalOcean Spaces",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-tigris.json",
        "title": "DigitalOcean Spaces vs Tigris",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-tigris"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-wasabi-hot-cloud-storage.json",
        "title": "DigitalOcean Spaces vs Wasabi Hot Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-wasabi-hot-cloud-storage"
      }
    ],
    "scores": [
      {
        "bunny-storage": 75,
        "by": 2,
        "digitalocean-spaces": 77,
        "edge": "digitalocean-spaces",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bunny-storage": 64,
        "by": 1,
        "digitalocean-spaces": 63,
        "edge": "bunny-storage",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "bunny-storage": 57,
        "by": 16,
        "digitalocean-spaces": 73,
        "edge": "digitalocean-spaces",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "bunny-storage": 45,
        "by": 32,
        "digitalocean-spaces": 77,
        "edge": "digitalocean-spaces",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "bunny-storage": 40,
        "by": 20,
        "digitalocean-spaces": 20,
        "edge": "bunny-storage",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bunny-storage": 63,
        "by": 26,
        "digitalocean-spaces": 37,
        "edge": "bunny-storage",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "bunny-storage": 60,
        "by": 14,
        "digitalocean-spaces": 74,
        "edge": "digitalocean-spaces",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "DigitalOcean Spaces scores 63.2 (B) on agent readiness against Bunny Storage's 58.3 (C), and leads in 4 of 7 scored categories. Bunny Storage leads on payments \u0026 pricing and maintenance \u0026 community. Both do object storage.",
    "verdicts": {
      "bunny-storage": "$0.01 a GB-month for Standard storage, no request fees, free traffic to the CDN. Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log.",
      "digitalocean-spaces": "Per-bucket access keys with read or read-write-delete grants, an 800 operations a second limit per bucket and a 99.9 per cent SLA are all published. The MCP server manages keys and CDN endpoints only, not objects, and the S3 reference documents no error codes. A payment method is required before any bucket is created."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces",
    "json": "https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.md",
    "slim": "https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.min.md"
  },
  "markdown": "DigitalOcean Spaces scores 63.2 (B) on agent readiness against Bunny Storage's 58.3 (C), and leads in 4 of 7 scored categories. Bunny Storage leads on payments \u0026 pricing and maintenance \u0026 community. Both do object storage.\n\n- Bunny Storage: grade C, 58.3/100, rank #582 of 950. Markdown https://www.anchorterminal.com/tools/bunny-storage.md · JSON https://www.anchorterminal.com/api/v1/tools/bunny-storage.json\n- DigitalOcean Spaces: grade B, 63.2/100, rank #402 of 950. Markdown https://www.anchorterminal.com/tools/digitalocean-spaces.md · JSON https://www.anchorterminal.com/api/v1/tools/digitalocean-spaces.json\n- Best file storage and sharing APIs for AI agents: https://www.anchorterminal.com/best/file-storage/index.md\n- All 75 storage comparisons: https://www.anchorterminal.com/compare/file-storage/index.md\n\n## Which one, for what\n\n### Bunny Storage (C)\n\nGood for: An agent that publishes files to be served through a CDN at the lowest price and doesn't need fine-grained credentials.\n\nAhead on:\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 63 against 37\n\nWatch for: Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log\n\n### DigitalOcean Spaces (B)\n\nGood for: Teams already on DigitalOcean that want object storage with a CDN and a flat $5 entry price for up to 250 GiB, with free transfer to Droplets in the same region.\n\nAhead on:\n- Agent ergonomics, 73 against 57\n- Security \u0026 auth, 77 against 45\n- Transparency \u0026 trust, 74 against 60\n\nWatch for: The Spaces MCP server has ten tools for access keys and CDN endpoints. None reads, writes, lists or shares an object\n\n\n## Score by category\n\n| Category | Weight | Bunny Storage | DigitalOcean Spaces | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 77 | DigitalOcean Spaces +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 64 | 63 | Bunny Storage +1 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 73 | DigitalOcean Spaces +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 77 | DigitalOcean Spaces +32 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Bunny Storage +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 63 | 37 | Bunny Storage +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 74 | DigitalOcean Spaces +14 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **58.3 · C** | **63.2 · B** | |\n\n## Facts side by side\n\n| Fact | Bunny Storage | DigitalOcean Spaces |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | bunny.net | DigitalOcean, LLC |\n| Hosted endpoint | `https://storage.bunnycdn.com` | `https://nyc3.digitaloceanspaces.com` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | none | Proprietary service under the DigitalOcean Terms of Service Agreement. The MCP server is MIT |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-08-14 | 2026-04-08 |\n| Terms last updated | no date given | 2026-08-22 |\n| Privacy policy last updated | no date given | 2025-01-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 46 stars, 10k npm/wk | none |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Bunny Storage.** $0.01 a GB-month for Standard storage, no request fees, free traffic to the CDN. Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log.\n\n**DigitalOcean Spaces.** Per-bucket access keys with read or read-write-delete grants, an 800 operations a second limit per bucket and a 99.9 per cent SLA are all published. The MCP server manages keys and CDN endpoints only, not objects, and the S3 reference documents no error codes. A payment method is required before any bucket is created.\n\n## Before you call either\n\n### Bunny Storage\n\n1. Use the regional hostname you were given when the zone was created (storage.bunnycdn.com is Frankfurt). Other regions return a 401\n2. Send the body as raw bytes with --data-binary. Base64 or form encoding gets a 401\n3. Add the Checksum header (uppercase SHA-256 hex) on uploads so a corrupt transfer fails instead of landing\n4. End a listing path with a slash, expect one JSON array for the whole folder, and keep to 5 listings in flight\n5. On a SlowDown 503 from the S3 endpoint wait the Retry-After seconds, then back off exponentially\n\n### DigitalOcean Spaces\n\n1. Set the endpoint to `https://\u003cregion\u003e.digitaloceanspaces.com` and, in AWS SDKs other than Python's, set `region` to `us-east-1` when creating a bucket\n2. Ask for a limited access key with a Read or Read/Write/Delete grant on one bucket. A full access key can create, configure and delete every bucket\n3. Do the object work through the S3 API. The MCP server and `doctl` cannot upload, list, move or delete files\n4. Retry with exponential backoff on `503 Slow Down`, and keep below 800 operations a second per bucket\n5. Fetch presigned links from the origin host, not the CDN. The docs say presigned requests through the CDN are not cached and can double the bandwidth charge\n6. Avoid many tiny objects. Each bills as at least 4 KiB on Standard and 128 KiB on Cold Storage, which also has a 30-day minimum\n\n## Questions\n\n### Which is better for AI agents, Bunny Storage or DigitalOcean Spaces?\n\nDigitalOcean Spaces scores 63.2 (B) on agent readiness against Bunny Storage's 58.3 (C), and leads in 4 of 7 scored categories. Bunny Storage leads on payments \u0026 pricing and maintenance \u0026 community.\n\n### Do Bunny Storage and DigitalOcean Spaces need an API key?\n\nBoth need an API key.\n\n### Can an agent call Bunny Storage and DigitalOcean Spaces without installing anything?\n\nYes. Bunny Storage has a hosted endpoint at https://storage.bunnycdn.com and DigitalOcean Spaces at https://nyc3.digitaloceanspaces.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bunny-storage\", \"b\": \"digitalocean-spaces\"}`. From a terminal: `anchor compare bunny-storage digitalocean-spaces`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bunny-storage.json and https://www.anchorterminal.com/api/v1/tools/digitalocean-spaces.json\n\n## Other comparisons with Bunny Storage or DigitalOcean Spaces\n\n- [Box API + MCP vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/box-api-vs-digitalocean-spaces.md)\n- [DigitalOcean Spaces vs Dropbox API + MCP](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-dropbox-api.md)\n- [DigitalOcean Spaces vs Fastio](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-fast-io.md)\n- [DigitalOcean Spaces vs Google Drive API + MCP](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-google-drive-api.md)\n- [DigitalOcean Spaces vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-onedrive-sharepoint.md)\n- [Amazon S3 vs Bunny Storage](https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage.md)\n- [Amazon S3 vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/amazon-s3-vs-digitalocean-spaces.md)\n- [Azure Blob Storage vs Bunny Storage](https://www.anchorterminal.com/compare/azure-blob-storage-vs-bunny-storage.md)\n- [Azure Blob Storage vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/azure-blob-storage-vs-digitalocean-spaces.md)\n- [Backblaze B2 vs Bunny Storage](https://www.anchorterminal.com/compare/backblaze-b2-vs-bunny-storage.md)\n- [Backblaze B2 vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/backblaze-b2-vs-digitalocean-spaces.md)\n- [Bunny Storage vs Cloudflare R2](https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2.md)\n- [Bunny Storage vs Tigris](https://www.anchorterminal.com/compare/bunny-storage-vs-tigris.md)\n- [Bunny Storage vs Wasabi Hot Cloud Storage](https://www.anchorterminal.com/compare/bunny-storage-vs-wasabi-hot-cloud-storage.md)\n- [Cloudflare R2 vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces.md)\n- [DigitalOcean Spaces vs Tigris](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-tigris.md)\n- [DigitalOcean Spaces vs Wasabi Hot Cloud Storage](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-wasabi-hot-cloud-storage.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Bunny Storage vs DigitalOcean Spaces",
        "url": ""
      }
    ],
    "description": "DigitalOcean Spaces scores 63.2 (B) to Bunny Storage's 58.3 (C) for object storage. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Bunny Storage C 58.3",
      "DigitalOcean Spaces B 63.2",
      "scores"
    ],
    "h1": "Bunny Storage vs DigitalOcean Spaces",
    "image": "https://www.anchorterminal.com/assets/og/compare-bunny-storage-vs-digitalocean-spaces.png",
    "path": "/compare/bunny-storage-vs-digitalocean-spaces",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bunny Storage vs DigitalOcean Spaces for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 680
  },
  "version": 1
}
