{
  "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",
      "dns": "bunny-storage.grade.anchorterminal.com",
      "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-10-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.6,
        "grade": "B",
        "agentReady": false,
        "rank": 549,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 75,
          "payments": 40,
          "reliability": 85,
          "schema": 67,
          "security": 45,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "$0.01 a GB-month for Standard storage, no request fees and free traffic to the CDN, with documented 429 and SlowDown handling. Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log, and S3 is still public preview.",
        "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",
          "Rate-limit responses documented per limit, 429 on HTTP and SlowDown with Retry-After on S3",
          "S3 bulk deletes and object metadata since 23 October 2026"
        ],
        "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",
          "The .NET and Java storage SDKs haven't changed since 2022"
        ],
        "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 429 from the HTTP API or a SlowDown 503 from S3 wait the Retry-After seconds where given, then back off exponentially"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.6
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 75,
          "payments": 40,
          "reliability": 85,
          "schema": 67,
          "security": 45,
          "transparency": 52
        },
        "provenanceScore": 69,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bunny-storage.json",
      "live": {
        "slug": "bunny-storage",
        "probe": {
          "target": "https://storage.bunnycdn.com",
          "method": "get",
          "lastAt": "2026-11-07T18:20:15.762263255Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 165,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.97,
          "p50ms24h": 67,
          "p95ms24h": 141,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "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": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 251
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bunny.net",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:20:37.608328268Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@bunny.net/storage-sdk",
            "version": "0.3.2",
            "seenAt": "2026-11-06T23:12:55.827973411Z"
          }
        ],
        "githubStars": 46,
        "npmWeekly": 9701,
        "securityTxt": {
          "url": "https://bunny.net/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:01.404258191Z"
        },
        "llmsTxt": {
          "url": "https://bunny.net/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:45.424199802Z"
        },
        "domain": {
          "domain": "bunny.net",
          "registered": "1999-11-22",
          "source": "https://rdap.verisign.com/net/v1/domain/bunny.net",
          "checkedAt": "2026-11-01T14:18:32.176154325Z"
        },
        "pages": [
          {
            "url": "https://bunny.net/docs/storage/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:00:35.661899345Z",
            "changedAt": "2026-11-06T13:23:21.642361578Z",
            "fingerprint": "2298c2fe1390"
          },
          {
            "url": "https://bunny.net/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:00:38.040480689Z",
            "changedAt": "2026-10-27T03:39:59.934015492Z",
            "fingerprint": "b716b21bab68"
          },
          {
            "url": "https://bunny.net/pricing/storage/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:00:39.665849329Z",
            "changedAt": "2026-10-27T03:40:01.591659301Z",
            "fingerprint": "828caca6087c"
          },
          {
            "url": "https://bunny.net/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:00:41.675872617Z",
            "changedAt": "2026-10-27T03:40:03.587091194Z",
            "fingerprint": "61bf1f57a6f1"
          },
          {
            "url": "https://bunny.net/tos/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:00:43.675043592Z",
            "changedAt": "2026-10-27T03:40:05.621244883Z",
            "fingerprint": "62faff18cca6"
          }
        ],
        "github": {
          "repo": "bunnyway/bunnycdn.net.storage",
          "checkedAt": "2026-11-02T08:37:19.370391393Z",
          "stars": 46,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2023-03-06T12:50:28Z",
          "openIssues": 17,
          "openPRs": 2,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "replies": {
            "sampled": 20,
            "unanswered": 16,
            "medianDays": 3.8
          }
        },
        "updatedAt": "2026-11-07T18:20:15.762263255Z"
      }
    },
    "answer": "Google Cloud Storage scores 76.7 (BB) on agent readiness against Bunny Storage's 62.6 (B), and leads in 5 of 7 scored categories. Bunny Storage leads on reliability and payments \u0026 pricing.",
    "b": {
      "slug": "google-cloud-storage",
      "name": "Google Cloud Storage",
      "vendor": "Google Cloud",
      "vendorUrl": "https://cloud.google.com/storage",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "Google Cloud Storage is Google Cloud's object store for buckets and objects, reached through JSON and XML REST APIs, a gRPC Storage Control API, the gcloud CLI, client libraries and a generally available remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/google-cloud-storage",
      "markdownUrl": "https://www.anchorterminal.com/tools/google-cloud-storage.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/google-cloud-storage.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/google-cloud-storage.json",
      "dns": "google-cloud-storage.grade.anchorterminal.com",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://storage.googleapis.com/storage/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@google-cloud/storage"
        },
        {
          "registry": "pypi",
          "name": "google-cloud-storage"
        }
      ],
      "auth": "oauth",
      "authNotes": "Google OAuth 2.0 access tokens for user or service-account identities, scoped by IAM roles on the project, bucket or managed folder, with HMAC keys for the XML API's S3-style access, and V4 signed URLs that carry a signature, not the secret. The MCP server uses the same Google authentication, with its own IAM permissions per MCP method.",
      "pricing": "usage",
      "pricingNotes": "Pay per GB-month stored, per 1,000 operations and per GB of egress, by location and class. Standard in a single region is $0.005 per 1,000 Class A and $0.0004 per 1,000 Class B operations; a dual-region example bills $0.022 per GB-month. Always Free gives 5 GB-months of Standard storage, 5,000 Class A and 50,000 Class B operations in three US regions. Failed 4xx and 5xx operations are generally not charged.",
      "priceSummary": "$0.005 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on Cloud Storage or its pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 9,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.cloud.google.com/storage/docs/apis",
      "openapi": "https://storage.googleapis.com/$discovery/rest?version=v1",
      "capabilities": [
        "storage.object",
        "storage.presigned",
        "storage.s3",
        "storage.share"
      ],
      "tags": [
        "hosted",
        "usage",
        "free-tier",
        "mcp",
        "remote-mcp",
        "oauth",
        "iam",
        "google-cloud",
        "object-storage",
        "signed-urls",
        "sla",
        "grpc"
      ],
      "lastRelease": "2026-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 41,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 88,
          "payments": 30,
          "reliability": 80,
          "schema": 81,
          "security": 85,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "IAM per bucket and MCP method, signed URLs, preconditions for safe retries and a 99.95 per cent multi-region SLA make it a well-governed object store for agents. The nine-tool MCP server has no read-only or destructive annotations, reads stop at 8 MiB, and a person must set up a project and billing first.",
        "bestFor": "Agents on Google Cloud that store and share files and datasets. amazon-s3, azure-blob-storage and cloudflare-r2 are the closest listings; teams outside Google Cloud with S3 tooling may prefer S3-compatible stores.",
        "strengths": [
          "Generally available MCP server since 20 April 2026, with IAM permissions per MCP method",
          "Preconditions and a documented retry strategy make writes safe to retry",
          "SLA of 99.95 per cent a month for multi-region Standard storage",
          "Signed URLs share objects without sharing credentials",
          "Cloud Audit Logs cover admin and data access"
        ],
        "weaknesses": [
          "MCP tools carry no read-only or destructive annotations and deletes need no confirmation",
          "read_object stops at 8 MiB through MCP",
          "A high-severity multi-product incident affected Cloud Storage on 20 August 2026",
          "Project and billing setup needs a person in a browser"
        ],
        "agentNotes": [
          "Grant the agent's service account only Storage Object Viewer or Creator on the bucket it needs",
          "Send ifGenerationMatch on writes and deletes so a retry can't overwrite a newer object",
          "Use a V4 signed URL to share an object rather than changing bucket access",
          "Read objects over 8 MiB through the JSON API with Range, not the MCP read_object tool",
          "Confirm with the user before delete_bucket or delete_object"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76.7
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 88,
          "payments": 30,
          "reliability": 80,
          "schema": 81,
          "security": 85,
          "transparency": 73
        },
        "provenanceScore": 97,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install google-cloud-storage",
        "http": "curl -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \"https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID\""
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/google-cloud-storage"
      },
      "sameCompany": [
        "gemini-api",
        "vertex-ai",
        "gemini-embedding",
        "vertex-ai-tuning",
        "cloud-run-gpus",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-cloud-tts",
        "gemini-live",
        "google-adk",
        "google-memory-bank",
        "google-secret-manager",
        "google-cloud-document-ai",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "firebase-cloud-messaging",
        "google-drive-api",
        "gemini-enterprise",
        "gemini-cli",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api",
        "gmail-api",
        "google-people-api"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Class A operation, Standard, regional",
          "unit": "1k-requests",
          "usd": 0.005,
          "note": "Flat namespace; $0.0065 with hierarchical namespace"
        },
        {
          "item": "Class B operation, Standard, regional",
          "unit": "1k-requests",
          "usd": 0.0004,
          "note": "Flat namespace; $0.0005 with hierarchical namespace"
        },
        {
          "item": "Standard storage, dual-region example",
          "unit": "gb-month",
          "usd": 0.022,
          "note": "Per the pricing page's Iowa and Oregon dual-region example; regional rates vary by location"
        }
      ],
      "provenance": {
        "legalEntity": "Google LLC (Google Cloud EMEA Limited and other regional entities by billing address)",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "endpointOnVendorDomain": true,
        "terms": "https://cloud.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://status.cloud.google.com",
        "changelog": "https://docs.cloud.google.com/storage/docs/release-notes",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "Legal entity, terms, privacy and security.txt follow the Google Cloud provenance in data/tools/google-secret-manager.json (checked 1 November 2026); not re-read for this listing.",
          "status.cloud.google.com/robots.txt allows all; its incidents.json was read on 6 November 2026.",
          "The API lives at storage.googleapis.com and the docs at docs.cloud.google.com, both Google domains."
        ],
        "score": 97
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/google-cloud-storage.json",
      "live": {
        "slug": "google-cloud-storage",
        "probe": {
          "target": "https://storage.googleapis.com/storage/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:27.576703196Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 120,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 44,
          "p95ms24h": 120,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@google-cloud/storage",
            "version": "8.4.0",
            "seenAt": "2026-11-06T23:29:10.718971869Z"
          },
          {
            "registry": "pypi",
            "name": "google-cloud-storage",
            "version": "3.17.1",
            "released": "2026-10-15",
            "seenAt": "2026-11-06T23:29:11.680918026Z"
          }
        ],
        "npmWeekly": 26901222,
        "pypiWeekly": 39461441,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-11-07T16:01:22.068349931Z"
        },
        "pages": [
          {
            "url": "https://docs.cloud.google.com/storage/docs/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:05:53.84257971Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2d3b4b4b1622"
          }
        ],
        "updatedAt": "2026-11-07T18:20:27.576703196Z"
      }
    },
    "edges": [
      {
        "by": 40,
        "category": "security",
        "leads": "google-cloud-storage",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Each zone has a read-write and a read-only password, also used as the S3 secret, with a read-only S3 password since 30 July 2026. No expiry or prefix scope, and revoking means resetting. The account API key has full access (20). Read-only passwords, and deleting the zone root needs allowRootDelete=true, but nothing finer (12). Returns stored bytes, with no guidance on treating them as untrusted (8). No audit log of storage or API key use found (3). bunny.net/.well-known/security.txt redirects to an HTML page on 4 November, and the docs name no disclosure policy, bounty or certification (2). 20+12+8+3+2 = 45.",
          "b": "IAM roles on project, bucket and managed folder, V4 signed URLs, and an IAM permission per MCP method (mcp.tools.call plus the storage permission, such as storage.objects.delete for delete_object) (30). Read-only roles such as Storage Object Viewer, grantable down to a managed folder, soft delete with a pausable hard-deletion window and retention locks, but no confirmation step on delete_bucket or delete_object (17). read_object returns stored content to the model with no untrusted-content guidance on the MCP page (5). Cloud Audit Logs with Admin Activity and Data Access entries (15). google.com security.txt is valid to 2030-04-01 with a VRP policy link, per the Secret Manager listing's 1 November check, and Google Cloud publishes security bulletins; Cloud Storage's place in the SOC 2 scope wasn't read today (18). 30 + 17 + 5 + 15 + 18 = 85."
        },
        "scores": {
          "a": 45,
          "b": 85
        }
      },
      {
        "by": 24,
        "category": "ergonomics",
        "leads": "google-cloud-storage",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "No MCP server. An HTTP listing returns the whole folder as one JSON array; S3 ListObjectsV2 can page and filter by prefix (12). The docs give no pagination for HTTP listings; S3 has continuation tokens and prefixes, in preview (10). The S3 error table and the limits page's rate-limit responses give codes an agent can act on, while the HTTP API still documents three (12). A PUT by path is safe to repeat, the Checksum header rejects corrupt uploads, S3 takes conditional requests, and `DeleteObjects` reports each key separately (14). One PUT with one header, and official SDKs for TypeScript, PHP, .NET and Java (13). 12+10+12+14+13 = 61.",
          "b": "Graded as an API with a nine-tool MCP server. The fields parameter selects partial responses, and Range reads fetch part of an object (22). maxResults and pageToken paging, prefix and delimiter filters and match globs (20). JSON errors with code, message and reason, and a documented retry table (16). Generation and metageneration preconditions make retries safe; the MCP reference gives no read-only or destructive annotations (14). Client libraries in many languages with retries on by default, but every call needs Google auth and a project (13). 22 + 20 + 16 + 14 + 13 = 85."
        },
        "scores": {
          "a": 61,
          "b": 85
        }
      },
      {
        "by": 24,
        "category": "transparency",
        "leads": "google-cloud-storage",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service, terms and privacy policy naming BunnyWay d.o.o. in Slovenia (15). Privacy policy updated 5 August 2026 and deletion after termination in the terms, per the 30 September check. No DPA read this run (18). No deprecation policy found; the changelog marks previews but sets no notice periods (5). Storage regions chosen per zone and an EEA routing filter for pull zones; we didn't read a sub-processor list (14).",
          "b": "Closed service under the Google Cloud terms; client libraries are Apache-2.0 (18). Google's privacy policy, the Cloud Data Processing Addendum and a sub-processor list last modified 19 October 2026 apply, per the Secret Manager listing's 1 November check (22). Dated notices in release notes and a deprecated read_text MCP tool that names its replacement; Google Cloud's deprecation policy wasn't re-read today (15). Sub-processors are listed with locations, and each bucket is created in a chosen location (18). 18 + 22 + 15 + 18 = 73."
        },
        "scores": {
          "a": 61,
          "b": 85
        }
      },
      {
        "by": 14,
        "category": "schema",
        "leads": "google-cloud-storage",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI for the storage data plane; the storage API reference is a Markdown page, and the core spec covers zone management, now including a Get Storage Zone Regions call (12). llms.txt with Markdown pages, re-read on 4 November (10). The HTTP API page says what each call does in a line or two (12). Path-based calls with a few headers, little to type (9). curl examples for each call. The HTTP API page still documents only 201, 400 and 401, but the S3 page now has an error table (412, 400 BadDigest, MetadataTooLarge, 501, 503 SlowDown and others) and the limits page gives the response for each rate limit (12). A dated changelog, with storage entries on 14 August and 23 October 2026; the storage API itself carries no version (12). 12+10+12+9+12+12 = 67.",
          "b": "The JSON API is described by a public Google API Discovery document, storage v1 revision 20261103 (25). docs.cloud.google.com/llms.txt and /storage/llms.txt return 404 (0). The reference explains each method and the docs say when to use XML, JSON or gRPC and that gsutil is legacy (14). Typed resources with enums for storage classes and predefined ACLs (14). Samples in every client library and an error reference with HTTP codes and reasons (13). API version v1 and dated release notes, the latest on 4 November 2026 (15). 25 + 0 + 14 + 14 + 13 + 15 = 81."
        },
        "scores": {
          "a": 67,
          "b": 81
        }
      },
      {
        "by": 13,
        "category": "maintenance",
        "leads": "google-cloud-storage",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Last storage API change on 23 October 2026, S3 bulk deletes with `DeleteObjects`, object metadata and a Get Storage Zone Regions API, 12 days before this check (30). In the 90 days from 6 August, storage changelog entries on 14 August and 23 October, `@bunny.net/storage-sdk` 0.3.2 (tag 23 September), and Bunny CLI releases that change its storage commands (0.14.0 on 20 August to 0.20.3 on 23 October), counted in full since the SDK and CLI releases change code, and the changelog entries and the SDK release alone make three (20). A dated public changelog; we didn't test support (10). Official storage SDKs for TypeScript (0.3.2, September 2026), PHP (3.4.0, July 2024), .NET (last commit February 2022) and Java (1.0.3, April 2022), so only one is current (8). The TypeScript SDK's repository runs CI and changesets; the .NET and Java libraries are untouched since 2022 (7). 30+20+10+8+7 = 75.",
          "b": "Release notes on 4 November 2026 (30). Entries on 30 October, 13 October, 30 September, 10 September and 3 September (20). A closed service with dated release notes and paid support; issue trackers for the client libraries are public (15). Official client libraries in many languages (15). Libraries ship with end-to-end checksums by default since 30 September (8). 30 + 20 + 15 + 15 + 8 = 88."
        },
        "scores": {
          "a": 75,
          "b": 88
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "bunny-storage",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Per-GB storage prices public without a login, re-read on the storage pricing page ($0.01 a GB-month Standard in one region) (20). A 14-day trial with no credit card, per the SLA page on 4 November (20). A person signs up in a browser (0). 0+20+20+0 = 40.",
          "b": "No x402, MPP or L402 (0). Per-operation and per-GB prices public without login, though the regional storage table draws by script (20). Always Free covers 5 GB-months and small operation counts in three US regions, but a Google Cloud billing account is needed; whether a card is required wasn't confirmed today (10). A person creates the project and billing account in a browser (0). 0 + 20 + 10 + 0 = 30."
        },
        "scores": {
          "a": 40,
          "b": 30
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "bunny.net",
        "b": "Google Cloud",
        "name": "Vendor"
      },
      {
        "a": "https://storage.bunnycdn.com",
        "b": "https://storage.googleapis.com/storage/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "9",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-23",
        "b": "2026-11-04",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-09-02",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "not found in the text",
        "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": "Google Cloud Storage scores 76.7 (BB) on agent readiness against Bunny Storage's 62.6 (B), and leads in 5 of 7 scored categories. Bunny Storage leads on reliability and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Bunny Storage or Google Cloud Storage?"
      },
      {
        "answer": "Bunny Storage needs an API key. Google Cloud Storage uses an OAuth sign-in.",
        "question": "Do Bunny Storage and Google Cloud Storage need an API key?"
      },
      {
        "answer": "Yes. Bunny Storage has a hosted endpoint at https://storage.bunnycdn.com and Google Cloud Storage at https://storage.googleapis.com/storage/mcp.",
        "question": "Can an agent call Bunny Storage and Google Cloud Storage without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 85 against 80",
          "Payments \u0026 pricing, 40 against 30"
        ],
        "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": [
          "Schema \u0026 documentation, 81 against 67",
          "Agent ergonomics, 85 against 61",
          "Security \u0026 auth, 85 against 45",
          "Maintenance \u0026 community, 88 against 75",
          "Transparency \u0026 trust, 85 against 61"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Agents on Google Cloud that store and share files and datasets. amazon-s3, azure-blob-storage and cloudflare-r2 are the closest listings; teams outside Google Cloud with S3 tooling may prefer S3-compatible stores.",
        "slug": "google-cloud-storage",
        "watchFor": "MCP tools carry no read-only or destructive annotations and deletes need no confirmation"
      }
    ],
    "history": {
      "bunny-storage": [
        {
          "causes": [
            "product",
            "evidence",
            "correction"
          ],
          "date": "2026-11-04",
          "delta": 4.2,
          "from": 58.4,
          "fromGrade": "C",
          "to": 62.6,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 58.3,
          "fromGrade": "C",
          "to": 58.4,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.4,
          "from": 58.7,
          "fromGrade": "C",
          "to": 58.3,
          "toGrade": "C"
        }
      ],
      "google-cloud-storage": null
    },
    "job": {
      "capability": "storage.object",
      "name": "Object storage"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/box-api-vs-google-cloud-storage.json",
        "title": "Box API + MCP vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/box-api-vs-google-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dropbox-api-vs-google-cloud-storage.json",
        "title": "Dropbox API + MCP vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/dropbox-api-vs-google-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fast-io-vs-google-cloud-storage.json",
        "title": "Fastio vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/fast-io-vs-google-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-google-drive-api.json",
        "title": "Google Cloud Storage vs Google Drive API + MCP",
        "url": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-google-drive-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-onlyoffice-mcp.json",
        "title": "Google Cloud Storage vs ONLYOFFICE Apps MCP Server",
        "url": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-onlyoffice-mcp"
      },
      {
        "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-google-cloud-storage.json",
        "title": "Amazon S3 vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-google-cloud-storage"
      },
      {
        "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-google-cloud-storage.json",
        "title": "Azure Blob Storage vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-google-cloud-storage"
      },
      {
        "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-google-cloud-storage.json",
        "title": "Backblaze B2 vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/backblaze-b2-vs-google-cloud-storage"
      },
      {
        "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-digitalocean-spaces.json",
        "title": "Bunny Storage vs DigitalOcean Spaces",
        "url": "https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces"
      },
      {
        "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-google-cloud-storage.json",
        "title": "Cloudflare R2 vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-google-cloud-storage.json",
        "title": "DigitalOcean Spaces vs Google Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/digitalocean-spaces-vs-google-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-tigris.json",
        "title": "Google Cloud Storage vs Tigris",
        "url": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-tigris"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-wasabi-hot-cloud-storage.json",
        "title": "Google Cloud Storage vs Wasabi Hot Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-wasabi-hot-cloud-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-onedrive-sharepoint.json",
        "title": "Google Cloud Storage vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/google-cloud-storage-vs-onedrive-sharepoint"
      }
    ],
    "panel": null,
    "scores": [
      {
        "bunny-storage": 85,
        "by": 5,
        "edge": "bunny-storage",
        "google-cloud-storage": 80,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bunny-storage": 67,
        "by": 14,
        "edge": "google-cloud-storage",
        "google-cloud-storage": 81,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "bunny-storage": 61,
        "by": 24,
        "edge": "google-cloud-storage",
        "google-cloud-storage": 85,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "bunny-storage": 45,
        "by": 40,
        "edge": "google-cloud-storage",
        "google-cloud-storage": 85,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "bunny-storage": 40,
        "by": 10,
        "edge": "bunny-storage",
        "google-cloud-storage": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bunny-storage": 75,
        "by": 13,
        "edge": "google-cloud-storage",
        "google-cloud-storage": 88,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "bunny-storage": 61,
        "by": 24,
        "edge": "google-cloud-storage",
        "google-cloud-storage": 85,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Google Cloud Storage scores 76.7 (BB) on agent readiness against Bunny Storage's 62.6 (B), and leads in 5 of 7 scored categories. Bunny Storage leads on reliability and payments \u0026 pricing. Both do object storage.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "bunny-storage": "$0.01 a GB-month for Standard storage, no request fees and free traffic to the CDN, with documented 429 and SlowDown handling. Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log, and S3 is still public preview.",
      "google-cloud-storage": "IAM per bucket and MCP method, signed URLs, preconditions for safe retries and a 99.95 per cent multi-region SLA make it a well-governed object store for agents. The nine-tool MCP server has no read-only or destructive annotations, reads stop at 8 MiB, and a person must set up a project and billing first."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage",
    "json": "https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage.min.md"
  },
  "markdown": "Google Cloud Storage scores 76.7 (BB) on agent readiness against Bunny Storage's 62.6 (B), and leads in 5 of 7 scored categories. Bunny Storage leads on reliability and payments \u0026 pricing. Both do object storage.\n\n- Bunny Storage: grade B, 62.6/100, rank #549 of 1486. Markdown https://www.anchorterminal.com/tools/bunny-storage.md · JSON https://www.anchorterminal.com/api/v1/tools/bunny-storage.json\n- Google Cloud Storage: grade BB, 76.7/100, rank #41 of 1486. Markdown https://www.anchorterminal.com/tools/google-cloud-storage.md · JSON https://www.anchorterminal.com/api/v1/tools/google-cloud-storage.json\n- Best file storage and sharing APIs for AI agents: https://www.anchorterminal.com/best/file-storage/index.md\n- All 104 storage comparisons: https://www.anchorterminal.com/compare/file-storage/index.md\n\n## Which one, for what\n\n### Bunny Storage (B)\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- Reliability, 85 against 80\n- Payments \u0026 pricing, 40 against 30\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### Google Cloud Storage (BB)\n\nGood for: Agents on Google Cloud that store and share files and datasets. amazon-s3, azure-blob-storage and cloudflare-r2 are the closest listings; teams outside Google Cloud with S3 tooling may prefer S3-compatible stores.\n\nAhead on:\n- Schema \u0026 documentation, 81 against 67\n- Agent ergonomics, 85 against 61\n- Security \u0026 auth, 85 against 45\n- Maintenance \u0026 community, 88 against 75\n- Transparency \u0026 trust, 85 against 61\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: MCP tools carry no read-only or destructive annotations and deletes need no confirmation\n\n\n## Why the edge\n\n### Security \u0026 auth: Google Cloud Storage +40\n\n- Bunny Storage (45): Each zone has a read-write and a read-only password, also used as the S3 secret, with a read-only S3 password since 30 July 2026. No expiry or prefix scope, and revoking means resetting. The account API key has full access (20). Read-only passwords, and deleting the zone root needs allowRootDelete=true, but nothing finer (12). Returns stored bytes, with no guidance on treating them as untrusted (8). No audit log of storage or API key use found (3). bunny.net/.well-known/security.txt redirects to an HTML page on 4 November, and the docs name no disclosure policy, bounty or certification (2). 20+12+8+3+2 = 45.\n- Google Cloud Storage (85): IAM roles on project, bucket and managed folder, V4 signed URLs, and an IAM permission per MCP method (mcp.tools.call plus the storage permission, such as storage.objects.delete for delete_object) (30). Read-only roles such as Storage Object Viewer, grantable down to a managed folder, soft delete with a pausable hard-deletion window and retention locks, but no confirmation step on delete_bucket or delete_object (17). read_object returns stored content to the model with no untrusted-content guidance on the MCP page (5). Cloud Audit Logs with Admin Activity and Data Access entries (15). google.com security.txt is valid to 2030-04-01 with a VRP policy link, per the Secret Manager listing's 1 November check, and Google Cloud publishes security bulletins; Cloud Storage's place in the SOC 2 scope wasn't read today (18). 30 + 17 + 5 + 15 + 18 = 85.\n\n### Agent ergonomics: Google Cloud Storage +24\n\n- Bunny Storage (61): No MCP server. An HTTP listing returns the whole folder as one JSON array; S3 ListObjectsV2 can page and filter by prefix (12). The docs give no pagination for HTTP listings; S3 has continuation tokens and prefixes, in preview (10). The S3 error table and the limits page's rate-limit responses give codes an agent can act on, while the HTTP API still documents three (12). A PUT by path is safe to repeat, the Checksum header rejects corrupt uploads, S3 takes conditional requests, and `DeleteObjects` reports each key separately (14). One PUT with one header, and official SDKs for TypeScript, PHP, .NET and Java (13). 12+10+12+14+13 = 61.\n- Google Cloud Storage (85): Graded as an API with a nine-tool MCP server. The fields parameter selects partial responses, and Range reads fetch part of an object (22). maxResults and pageToken paging, prefix and delimiter filters and match globs (20). JSON errors with code, message and reason, and a documented retry table (16). Generation and metageneration preconditions make retries safe; the MCP reference gives no read-only or destructive annotations (14). Client libraries in many languages with retries on by default, but every call needs Google auth and a project (13). 22 + 20 + 16 + 14 + 13 = 85.\n\n### Transparency \u0026 trust: Google Cloud Storage +24\n\n- Bunny Storage (61): Closed service, terms and privacy policy naming BunnyWay d.o.o. in Slovenia (15). Privacy policy updated 5 August 2026 and deletion after termination in the terms, per the 30 September check. No DPA read this run (18). No deprecation policy found; the changelog marks previews but sets no notice periods (5). Storage regions chosen per zone and an EEA routing filter for pull zones; we didn't read a sub-processor list (14).\n- Google Cloud Storage (85): Closed service under the Google Cloud terms; client libraries are Apache-2.0 (18). Google's privacy policy, the Cloud Data Processing Addendum and a sub-processor list last modified 19 October 2026 apply, per the Secret Manager listing's 1 November check (22). Dated notices in release notes and a deprecated read_text MCP tool that names its replacement; Google Cloud's deprecation policy wasn't re-read today (15). Sub-processors are listed with locations, and each bucket is created in a chosen location (18). 18 + 22 + 15 + 18 = 73.\n\n### Schema \u0026 documentation: Google Cloud Storage +14\n\n- Bunny Storage (67): No OpenAPI for the storage data plane; the storage API reference is a Markdown page, and the core spec covers zone management, now including a Get Storage Zone Regions call (12). llms.txt with Markdown pages, re-read on 4 November (10). The HTTP API page says what each call does in a line or two (12). Path-based calls with a few headers, little to type (9). curl examples for each call. The HTTP API page still documents only 201, 400 and 401, but the S3 page now has an error table (412, 400 BadDigest, MetadataTooLarge, 501, 503 SlowDown and others) and the limits page gives the response for each rate limit (12). A dated changelog, with storage entries on 14 August and 23 October 2026; the storage API itself carries no version (12). 12+10+12+9+12+12 = 67.\n- Google Cloud Storage (81): The JSON API is described by a public Google API Discovery document, storage v1 revision 20261103 (25). docs.cloud.google.com/llms.txt and /storage/llms.txt return 404 (0). The reference explains each method and the docs say when to use XML, JSON or gRPC and that gsutil is legacy (14). Typed resources with enums for storage classes and predefined ACLs (14). Samples in every client library and an error reference with HTTP codes and reasons (13). API version v1 and dated release notes, the latest on 4 November 2026 (15). 25 + 0 + 14 + 14 + 13 + 15 = 81.\n\n### Maintenance \u0026 community: Google Cloud Storage +13\n\n- Bunny Storage (75): Last storage API change on 23 October 2026, S3 bulk deletes with `DeleteObjects`, object metadata and a Get Storage Zone Regions API, 12 days before this check (30). In the 90 days from 6 August, storage changelog entries on 14 August and 23 October, `@bunny.net/storage-sdk` 0.3.2 (tag 23 September), and Bunny CLI releases that change its storage commands (0.14.0 on 20 August to 0.20.3 on 23 October), counted in full since the SDK and CLI releases change code, and the changelog entries and the SDK release alone make three (20). A dated public changelog; we didn't test support (10). Official storage SDKs for TypeScript (0.3.2, September 2026), PHP (3.4.0, July 2024), .NET (last commit February 2022) and Java (1.0.3, April 2022), so only one is current (8). The TypeScript SDK's repository runs CI and changesets; the .NET and Java libraries are untouched since 2022 (7). 30+20+10+8+7 = 75.\n- Google Cloud Storage (88): Release notes on 4 November 2026 (30). Entries on 30 October, 13 October, 30 September, 10 September and 3 September (20). A closed service with dated release notes and paid support; issue trackers for the client libraries are public (15). Official client libraries in many languages (15). Libraries ship with end-to-end checksums by default since 30 September (8). 30 + 20 + 15 + 15 + 8 = 88.\n\n### Payments \u0026 pricing: Bunny Storage +10\n\n- Bunny Storage (40): No x402, MPP or L402 (0). Per-GB storage prices public without a login, re-read on the storage pricing page ($0.01 a GB-month Standard in one region) (20). A 14-day trial with no credit card, per the SLA page on 4 November (20). A person signs up in a browser (0). 0+20+20+0 = 40.\n- Google Cloud Storage (30): No x402, MPP or L402 (0). Per-operation and per-GB prices public without login, though the regional storage table draws by script (20). Always Free covers 5 GB-months and small operation counts in three US regions, but a Google Cloud billing account is needed; whether a card is required wasn't confirmed today (10). A person creates the project and billing account in a browser (0). 0 + 20 + 10 + 0 = 30.\n\n## Score by category\n\n| Category | Weight | Bunny Storage | Google Cloud Storage | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 80 | Bunny Storage +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 67 | 81 | Google Cloud Storage +14 |\n| Agent ergonomics | 13% (16.2 this run) | 61 | 85 | Google Cloud Storage +24 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 85 | Google Cloud Storage +40 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Bunny Storage +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 88 | Google Cloud Storage +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 85 | Google Cloud Storage +24 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.6 · B** | **76.7 · BB** | |\n\n## Facts side by side\n\n| Fact | Bunny Storage | Google Cloud Storage |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | bunny.net | Google Cloud |\n| Hosted endpoint | `https://storage.bunnycdn.com` | `https://storage.googleapis.com/storage/mcp` |\n| Transports | HTTP | Streamable HTTP |\n| Auth | API key | OAuth |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Tools exposed | none | 9 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-23 | 2026-11-04 |\n| Terms last updated | no date given | 2026-09-02 |\n| Privacy policy last updated | no date given | 2026-10-01 |\n| Customer content may train models | not found in the text | yes |\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 | not found in the text |\n| Popularity | 46 stars, 10k npm/wk | none |\n| Agent reviews | 3/5 (2) | none |\n\n## How the scores have moved\n\n### Bunny Storage\n\n- +4.2 on 4 November 2026 (C to B): product, new evidence, correction\n- +0.1 on 27 October 2026: checklist\n- -0.4 on 8 October 2026: checklist\n\n### Google Cloud Storage\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Bunny Storage.** $0.01 a GB-month for Standard storage, no request fees and free traffic to the CDN, with documented 429 and SlowDown handling. Zone passwords are the only storage credential, read-write or read-only, with no expiry, prefix scope or usage log, and S3 is still public preview.\n\n**Google Cloud Storage.** IAM per bucket and MCP method, signed URLs, preconditions for safe retries and a 99.95 per cent multi-region SLA make it a well-governed object store for agents. The nine-tool MCP server has no read-only or destructive annotations, reads stop at 8 MiB, and a person must set up a project and billing first.\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 429 from the HTTP API or a SlowDown 503 from S3 wait the Retry-After seconds where given, then back off exponentially\n\n### Google Cloud Storage\n\n1. Grant the agent's service account only Storage Object Viewer or Creator on the bucket it needs\n2. Send ifGenerationMatch on writes and deletes so a retry can't overwrite a newer object\n3. Use a V4 signed URL to share an object rather than changing bucket access\n4. Read objects over 8 MiB through the JSON API with Range, not the MCP read_object tool\n5. Confirm with the user before delete_bucket or delete_object\n\n## Questions\n\n### Which is better for AI agents, Bunny Storage or Google Cloud Storage?\n\nGoogle Cloud Storage scores 76.7 (BB) on agent readiness against Bunny Storage's 62.6 (B), and leads in 5 of 7 scored categories. Bunny Storage leads on reliability and payments \u0026 pricing.\n\n### Do Bunny Storage and Google Cloud Storage need an API key?\n\nBunny Storage needs an API key. Google Cloud Storage uses an OAuth sign-in.\n\n### Can an agent call Bunny Storage and Google Cloud Storage without installing anything?\n\nYes. Bunny Storage has a hosted endpoint at https://storage.bunnycdn.com and Google Cloud Storage at https://storage.googleapis.com/storage/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bunny-storage\", \"b\": \"google-cloud-storage\"}`. From a terminal: `anchor compare bunny-storage google-cloud-storage`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bunny-storage.json and https://www.anchorterminal.com/api/v1/tools/google-cloud-storage.json\n\n## Other comparisons with Bunny Storage or Google Cloud Storage\n\n- [Box API + MCP vs Google Cloud Storage](https://www.anchorterminal.com/compare/box-api-vs-google-cloud-storage.md)\n- [Dropbox API + MCP vs Google Cloud Storage](https://www.anchorterminal.com/compare/dropbox-api-vs-google-cloud-storage.md)\n- [Fastio vs Google Cloud Storage](https://www.anchorterminal.com/compare/fast-io-vs-google-cloud-storage.md)\n- [Google Cloud Storage vs Google Drive API + MCP](https://www.anchorterminal.com/compare/google-cloud-storage-vs-google-drive-api.md)\n- [Google Cloud Storage vs ONLYOFFICE Apps MCP Server](https://www.anchorterminal.com/compare/google-cloud-storage-vs-onlyoffice-mcp.md)\n- [Amazon S3 vs Bunny Storage](https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage.md)\n- [Amazon S3 vs Google Cloud Storage](https://www.anchorterminal.com/compare/amazon-s3-vs-google-cloud-storage.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 Google Cloud Storage](https://www.anchorterminal.com/compare/azure-blob-storage-vs-google-cloud-storage.md)\n- [Backblaze B2 vs Bunny Storage](https://www.anchorterminal.com/compare/backblaze-b2-vs-bunny-storage.md)\n- [Backblaze B2 vs Google Cloud Storage](https://www.anchorterminal.com/compare/backblaze-b2-vs-google-cloud-storage.md)\n- [Bunny Storage vs Cloudflare R2](https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2.md)\n- [Bunny Storage vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.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 Google Cloud Storage](https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-cloud-storage.md)\n- [DigitalOcean Spaces vs Google Cloud Storage](https://www.anchorterminal.com/compare/digitalocean-spaces-vs-google-cloud-storage.md)\n- [Google Cloud Storage vs Tigris](https://www.anchorterminal.com/compare/google-cloud-storage-vs-tigris.md)\n- [Google Cloud Storage vs Wasabi Hot Cloud Storage](https://www.anchorterminal.com/compare/google-cloud-storage-vs-wasabi-hot-cloud-storage.md)\n- [Google Cloud Storage vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/google-cloud-storage-vs-onedrive-sharepoint.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Bunny Storage vs Google Cloud Storage",
        "url": ""
      }
    ],
    "description": "Google Cloud Storage scores 76.7 (BB) to Bunny Storage's 62.6 (B) for object storage. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Bunny Storage B 62.6",
      "Google Cloud Storage BB 76.7",
      "scores"
    ],
    "h1": "Bunny Storage vs Google Cloud Storage",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/bunny-storage-vs-google-cloud-storage",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bunny Storage vs Google Cloud Storage for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/bunny-storage-vs-google-cloud-storage"
  },
  "tokens": {
    "markdown": 4450,
    "slim": 2580
  },
  "version": 1
}
