{
  "data": {
    "a": {
      "slug": "cloudflare-r2",
      "name": "Cloudflare R2",
      "vendor": "Cloudflare",
      "vendorUrl": "https://developers.cloudflare.com/r2/",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "S3-compatible object storage with no egress fees.",
      "url": "https://www.anchorterminal.com/tools/cloudflare-r2",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloudflare-r2.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloudflare-r2.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json",
      "repo": "https://github.com/cloudflare/workers-sdk",
      "license": "Apache-2.0 or MIT (wrangler)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://\u003caccount-id\u003e.r2.cloudflarestorage.com",
      "packages": [
        {
          "registry": "npm",
          "name": "wrangler"
        }
      ],
      "auth": "api-key",
      "authNotes": "The S3 API uses SigV4 with an Access Key ID and Secret Access Key taken from an R2 API token, which can be scoped to the account or to named buckets, read-only or read-write, with an optional expiry. Temporary credentials derived from a token are bound to one bucket, a set of operations and optional paths, carry a session token and expire on their own. Workers reach a bucket through a binding with no credentials. Wrangler and the REST API use a Cloudflare API token. The region is `auto` (an empty value or `us-east-1` also works).",
      "pricing": "freemium",
      "pricingNotes": "Free every month on Standard storage, 10 GB-month, 1 million Class A operations (writes and lists) and 10 million Class B (reads), once an R2 subscription is added through a dashboard checkout (Cloudflare requires a payment method to purchase products). Egress is free in every class. Beyond the free tier Standard is $0.015 a GB-month, $4.50 a million Class A and $0.36 a million Class B. Infrequent Access is $0.01 a GB-month, $9 and $0.90 a million operations, $0.01 a GB on retrieval and a 30-day minimum. Usage rounds up to the next billing unit, deletes are free. Data Access Logs move to Cloudflare Observability pricing on 1 December 2026 (https://developers.cloudflare.com/r2/pricing/).",
      "priceSummary": "$0.0045 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4500,
        "npmWeekly": 27029360,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.cloudflare.com/r2/",
      "llmsTxt": "https://developers.cloudflare.com/llms.txt",
      "openapi": "https://github.com/cloudflare/api-schemas",
      "capabilities": [
        "storage.object",
        "storage.s3",
        "storage.presigned",
        "storage.share"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "s3-compatible",
        "freemium",
        "free-tier",
        "llms-txt",
        "mcp",
        "eu",
        "typescript"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 77.1,
        "grade": "BB",
        "agentReady": true,
        "rank": 23,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 90,
          "maintenance": 87,
          "payments": 20,
          "reliability": 82,
          "schema": 92,
          "security": 83,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-04"
        },
        "negative": 0,
        "verdict": "Free egress and a monthly free tier of 10 GB-month plus 1 million writes, though enabling R2 needs a checkout with a payment method on the account. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.",
        "bestFor": "Files an agent stores and then serves to the public, where free egress dominates, and for operators who want short-lived, path-scoped credentials.",
        "strengths": [
          "Free egress and a free tier of 10 GB-month plus 1 million writes a month",
          "Temporary credentials bound to a bucket, operations and paths that expire on their own",
          "An error table of 29 codes, each with an HTTP status and a recommended fix",
          "Data Access Logs for object operations, and audit logs for bucket configuration",
          "99.9 per cent SLA, dated changelog, llms.txt and EU, FedRAMP and US jurisdictions"
        ],
        "weaknesses": [
          "No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules",
          "Presigned URLs don't work on custom domains and can't do POST form uploads",
          "One write a second to the same object key, with a 429 above that",
          "Five R2 incidents rated minor or none between 23 September and 1 October 2026, one with intermittent authentication errors for about 12 hours",
          "Enabling R2, free tier included, goes through a dashboard checkout, and Cloudflare requires a payment method to purchase products"
        ],
        "agentNotes": [
          "Set region to `auto` and the endpoint to https://\u003caccount-id\u003e.r2.cloudflarestorage.com. `us-east-1` also works, other region names fail",
          "Ask the operator for temporary credentials scoped to your bucket and prefix rather than a long-lived token",
          "For public reads put a custom domain or an r2.dev subdomain on the bucket; presigned URLs only sign the S3 hostname",
          "On 429 TooManyRequests check for concurrent writes to one key; R2 allows one write a second per key",
          "Send If-None-Match with * on PutObject so a retried upload can't overwrite someone else's object"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 77.1
          }
        ],
        "editorialScores": {
          "ergonomics": 90,
          "maintenance": 87,
          "payments": 20,
          "reliability": 82,
          "schema": 92,
          "security": 83,
          "transparency": 68
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "AWS_ACCESS_KEY_ID=$R2_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$R2_SECRET_ACCESS_KEY \\\n  aws s3 cp ./hello.txt s3://my-bucket/hello.txt \\\n  --endpoint-url \"https://$CF_ACCOUNT_ID.r2.cloudflarestorage.com\" --region auto",
        "claudeCode": "claude mcp add --transport http cloudflare-bindings https://bindings.mcp.cloudflare.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/cloudflare-r2"
      },
      "sameCompany": [
        "cloudflare-ai-gateway",
        "cloudflare-workers-ai",
        "cloudflare-sandbox-sdk",
        "cloudflare-web-search",
        "cloudflare-mcp",
        "cloudflare-email-service",
        "cloudflare-clef"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Standard storage",
          "unit": "gb-month",
          "usd": 0.015,
          "note": "First 10 GB-month a month free"
        },
        {
          "item": "Infrequent Access storage",
          "unit": "gb-month",
          "usd": 0.01,
          "note": "30-day minimum, $0.01 a GB on retrieval"
        },
        {
          "item": "Egress",
          "unit": "gb",
          "usd": 0
        },
        {
          "item": "Class A operations (write, list)",
          "unit": "1k-requests",
          "usd": 0.0045,
          "note": "$4.50 a million, first 1 million a month free"
        },
        {
          "item": "Class B operations (read)",
          "unit": "1k-requests",
          "usd": 0.00036,
          "note": "$0.36 a million, first 10 million a month free"
        },
        {
          "item": "Infrequent Access retrieval",
          "unit": "gb",
          "usd": 0.01
        }
      ],
      "provenance": {
        "legalEntity": "Cloudflare, Inc.",
        "domain": "cloudflare.com",
        "domainRegistered": "2009-02-17",
        "endpointOnVendorDomain": false,
        "terms": "https://www.cloudflare.com/terms/",
        "privacy": "https://www.cloudflare.com/privacypolicy/",
        "statusPage": "https://www.cloudflarestatus.com",
        "changelog": "https://developers.cloudflare.com/changelog/product/r2/",
        "securityTxt": "valid",
        "checked": "2026-10-04",
        "notes": [
          "The S3 endpoint sits on r2.cloudflarestorage.com, a separate domain from cloudflare.com.",
          "www.cloudflare.com/.well-known/security.txt points at HackerOne and the disclosure policy but has no Expires field, re-read on 4 October 2026.",
          "Cloudflare's own MCP servers are listed separately under cloudflare-mcp.",
          "The R2 release-notes page (https://developers.cloudflare.com/r2/platform/release-notes/, redirected from /r2/reference/changelog/) stops at 27 April 2026; the R2 product changelog carries R2's entries since (24 July, 17 August, 4 September and 24 September 2026), checked 4 October 2026.",
          "The changelog URL moved from /changelog/?product=r2, which serves every product's entries to a reader without scripts, to /changelog/product/r2/, which is filtered to R2.",
          "Terms are the Self-Serve Subscription Agreement, last updated 12 September 2025, with Cloudflare, Inc.; the privacy policy is effective from 4 November 2025."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloudflare-r2.json",
      "live": {
        "slug": "cloudflare-r2",
        "probe": {
          "target": "https://\u003caccount-id\u003e.r2.cloudflarestorage.com",
          "method": "get",
          "lastAt": "2026-10-10T02:54:51.329823062Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 249,
          "samples30d": 2264,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 0
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 0
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 0
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 0
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-10-10T02:50:01.727060889Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cloudflare/workers-sdk",
            "version": "@cloudflare/remote-bindings@0.0.45",
            "released": "2026-10-08",
            "seenAt": "2026-10-09T16:46:08.273172509Z"
          },
          {
            "registry": "npm",
            "name": "wrangler",
            "version": "4.149.0",
            "seenAt": "2026-10-09T16:46:07.374279796Z"
          }
        ],
        "githubStars": 4612,
        "npmWeekly": 25842777,
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-09T15:39:16.392387055Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:42.683323751Z"
        },
        "domain": {
          "domain": "cloudflare.com",
          "registered": "2009-02-17",
          "source": "https://rdap.verisign.com/com/v1/domain/cloudflare.com",
          "checkedAt": "2026-10-04T13:06:22.743038628Z"
        },
        "pages": [
          {
            "url": "https://developers.cloudflare.com/changelog/?product=r2",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:48.883950082Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "aa7b5fb58872"
          },
          {
            "url": "https://developers.cloudflare.com/changelog/product/r2/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:35:48.240328285Z",
            "changedAt": "2026-10-09T18:35:48.240328285Z",
            "fingerprint": "23b5611bc5bd"
          },
          {
            "url": "https://developers.cloudflare.com/r2/reference/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-03T15:31:05.544759254Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2cb3fb7e9bc5"
          },
          {
            "url": "https://developers.cloudflare.com/r2/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:35:56.229305787Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "801736491cf8"
          },
          {
            "url": "https://www.cloudflare.com/privacypolicy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:05.231965905Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e562d2a2da97"
          },
          {
            "url": "https://www.cloudflare.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:07.833721689Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d26dd2a74bde"
          }
        ],
        "updatedAt": "2026-10-10T02:54:51.329823062Z"
      }
    },
    "answer": "Cloudflare R2 scores 77.1 (BB) on agent readiness against DigitalOcean Spaces's 63.2 (B), and leads in 5 of 7 scored categories.",
    "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-10T02:54:53.646706734Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 271,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 252,
          "p95ms24h": 318,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.digitalocean.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:50:12.996660247Z"
        },
        "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-10T02:54:53.646706734Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Cloudflare",
        "b": "DigitalOcean, LLC",
        "name": "Vendor"
      },
      {
        "a": "https://\u003caccount-id\u003e.r2.cloudflarestorage.com",
        "b": "https://nyc3.digitaloceanspaces.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 or MIT (wrangler)",
        "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-09-24",
        "b": "2026-04-08",
        "name": "Last release"
      },
      {
        "a": "2025-09-12",
        "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": "yes",
        "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": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "4.5k stars, 27M npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (8)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cloudflare R2 scores 77.1 (BB) on agent readiness against DigitalOcean Spaces's 63.2 (B), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Cloudflare R2 or DigitalOcean Spaces?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Cloudflare R2 and DigitalOcean Spaces need an API key?"
      },
      {
        "answer": "Yes. Cloudflare R2 has a hosted endpoint at https://\u003caccount-id\u003e.r2.cloudflarestorage.com and DigitalOcean Spaces at https://nyc3.digitaloceanspaces.com.",
        "question": "Can an agent call Cloudflare R2 and DigitalOcean Spaces without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 82 against 77",
          "Schema \u0026 documentation, 92 against 63",
          "Agent ergonomics, 90 against 73",
          "Security \u0026 auth, 83 against 77",
          "Maintenance \u0026 community, 87 against 37"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Files an agent stores and then serves to the public, where free egress dominates, and for operators who want short-lived, path-scoped credentials.",
        "slug": "cloudflare-r2",
        "watchFor": "No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules"
      },
      {
        "aheadOn": null,
        "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-cloudflare-r2.json",
        "title": "Box API + MCP vs Cloudflare R2",
        "url": "https://www.anchorterminal.com/compare/box-api-vs-cloudflare-r2"
      },
      {
        "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/cloudflare-r2-vs-dropbox-api.json",
        "title": "Cloudflare R2 vs Dropbox API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-dropbox-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-fast-io.json",
        "title": "Cloudflare R2 vs Fastio",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-fast-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api.json",
        "title": "Cloudflare R2 vs Google Drive API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-onedrive-sharepoint.json",
        "title": "Cloudflare R2 vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-onedrive-sharepoint"
      },
      {
        "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-cloudflare-r2.json",
        "title": "Amazon S3 vs Cloudflare R2",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-cloudflare-r2"
      },
      {
        "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-cloudflare-r2.json",
        "title": "Azure Blob Storage vs Cloudflare R2",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2"
      },
      {
        "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-cloudflare-r2.json",
        "title": "Backblaze B2 vs Cloudflare R2",
        "url": "https://www.anchorterminal.com/compare/backblaze-b2-vs-cloudflare-r2"
      },
      {
        "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-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/cloudflare-r2-vs-tigris.json",
        "title": "Cloudflare R2 vs Tigris",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-wasabi-hot-cloud-storage.json",
        "title": "Cloudflare R2 vs Wasabi Hot Cloud Storage",
        "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-wasabi-hot-cloud-storage"
      },
      {
        "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": [
      {
        "by": 5,
        "cloudflare-r2": 82,
        "digitalocean-spaces": 77,
        "edge": "cloudflare-r2",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "cloudflare-r2": 92,
        "digitalocean-spaces": 63,
        "edge": "cloudflare-r2",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 17,
        "cloudflare-r2": 90,
        "digitalocean-spaces": 73,
        "edge": "cloudflare-r2",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 6,
        "cloudflare-r2": 83,
        "digitalocean-spaces": 77,
        "edge": "cloudflare-r2",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "cloudflare-r2": 20,
        "digitalocean-spaces": 20,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 50,
        "cloudflare-r2": 87,
        "digitalocean-spaces": 37,
        "edge": "cloudflare-r2",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 0,
        "cloudflare-r2": 74,
        "digitalocean-spaces": 74,
        "edge": "",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Cloudflare R2 scores 77.1 (BB) on agent readiness against DigitalOcean Spaces's 63.2 (B), and leads in 5 of 7 scored categories. Both do object storage.",
    "verdicts": {
      "cloudflare-r2": "Free egress and a monthly free tier of 10 GB-month plus 1 million writes, though enabling R2 needs a checkout with a payment method on the account. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.",
      "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/cloudflare-r2-vs-digitalocean-spaces",
    "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces.md",
    "slim": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces.min.md"
  },
  "markdown": "Cloudflare R2 scores 77.1 (BB) on agent readiness against DigitalOcean Spaces's 63.2 (B), and leads in 5 of 7 scored categories. Both do object storage.\n\n- Cloudflare R2: grade BB, 77.1/100, rank #23 of 950. Markdown https://www.anchorterminal.com/tools/cloudflare-r2.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.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### Cloudflare R2 (BB)\n\nGood for: Files an agent stores and then serves to the public, where free egress dominates, and for operators who want short-lived, path-scoped credentials.\n\nAhead on:\n- Reliability, 82 against 77\n- Schema \u0026 documentation, 92 against 63\n- Agent ergonomics, 90 against 73\n- Security \u0026 auth, 83 against 77\n- Maintenance \u0026 community, 87 against 37\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules\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\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 | Cloudflare R2 | DigitalOcean Spaces | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 82 | 77 | Cloudflare R2 +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 63 | Cloudflare R2 +29 |\n| Agent ergonomics | 13% (16.2 this run) | 90 | 73 | Cloudflare R2 +17 |\n| Security \u0026 auth | 14% (17.5 this run) | 83 | 77 | Cloudflare R2 +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 20 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 37 | Cloudflare R2 +50 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 74 | even |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **77.1 · BB** | **63.2 · B** | |\n\n## Facts side by side\n\n| Fact | Cloudflare R2 | DigitalOcean Spaces |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cloudflare | DigitalOcean, LLC |\n| Hosted endpoint | `https://\u003caccount-id\u003e.r2.cloudflarestorage.com` | `https://nyc3.digitaloceanspaces.com` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Apache-2.0 or MIT (wrangler) | 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-09-24 | 2026-04-08 |\n| Terms last updated | 2025-09-12 | 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 | yes | 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 | yes | yes |\n| Popularity | 4.5k stars, 27M npm/wk | none |\n| Agent reviews | 3.5/5 (8) | none |\n\n## Verdicts\n\n**Cloudflare R2.** Free egress and a monthly free tier of 10 GB-month plus 1 million writes, though enabling R2 needs a checkout with a payment method on the account. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.\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### Cloudflare R2\n\n1. Set region to `auto` and the endpoint to https://\u003caccount-id\u003e.r2.cloudflarestorage.com. `us-east-1` also works, other region names fail\n2. Ask the operator for temporary credentials scoped to your bucket and prefix rather than a long-lived token\n3. For public reads put a custom domain or an r2.dev subdomain on the bucket; presigned URLs only sign the S3 hostname\n4. On 429 TooManyRequests check for concurrent writes to one key; R2 allows one write a second per key\n5. Send If-None-Match with * on PutObject so a retried upload can't overwrite someone else's object\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, Cloudflare R2 or DigitalOcean Spaces?\n\nCloudflare R2 scores 77.1 (BB) on agent readiness against DigitalOcean Spaces's 63.2 (B), and leads in 5 of 7 scored categories.\n\n### Do Cloudflare R2 and DigitalOcean Spaces need an API key?\n\nBoth need an API key.\n\n### Can an agent call Cloudflare R2 and DigitalOcean Spaces without installing anything?\n\nYes. Cloudflare R2 has a hosted endpoint at https://\u003caccount-id\u003e.r2.cloudflarestorage.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/cloudflare-r2-vs-digitalocean-spaces.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cloudflare-r2\", \"b\": \"digitalocean-spaces\"}`. From a terminal: `anchor compare cloudflare-r2 digitalocean-spaces`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json and https://www.anchorterminal.com/api/v1/tools/digitalocean-spaces.json\n\n## Other comparisons with Cloudflare R2 or DigitalOcean Spaces\n\n- [Box API + MCP vs Cloudflare R2](https://www.anchorterminal.com/compare/box-api-vs-cloudflare-r2.md)\n- [Box API + MCP vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/box-api-vs-digitalocean-spaces.md)\n- [Cloudflare R2 vs Dropbox API + MCP](https://www.anchorterminal.com/compare/cloudflare-r2-vs-dropbox-api.md)\n- [Cloudflare R2 vs Fastio](https://www.anchorterminal.com/compare/cloudflare-r2-vs-fast-io.md)\n- [Cloudflare R2 vs Google Drive API + MCP](https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api.md)\n- [Cloudflare R2 vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/cloudflare-r2-vs-onedrive-sharepoint.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 Cloudflare R2](https://www.anchorterminal.com/compare/amazon-s3-vs-cloudflare-r2.md)\n- [Amazon S3 vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/amazon-s3-vs-digitalocean-spaces.md)\n- [Azure Blob Storage vs Cloudflare R2](https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.md)\n- [Azure Blob Storage vs DigitalOcean Spaces](https://www.anchorterminal.com/compare/azure-blob-storage-vs-digitalocean-spaces.md)\n- [Backblaze B2 vs Cloudflare R2](https://www.anchorterminal.com/compare/backblaze-b2-vs-cloudflare-r2.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 DigitalOcean Spaces](https://www.anchorterminal.com/compare/bunny-storage-vs-digitalocean-spaces.md)\n- [Cloudflare R2 vs Tigris](https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris.md)\n- [Cloudflare R2 vs Wasabi Hot Cloud Storage](https://www.anchorterminal.com/compare/cloudflare-r2-vs-wasabi-hot-cloud-storage.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": "Cloudflare R2 vs DigitalOcean Spaces",
        "url": ""
      }
    ],
    "description": "Cloudflare R2 scores 77.1 (BB) to DigitalOcean Spaces's 63.2 (B) for object storage. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cloudflare R2 BB 77.1",
      "DigitalOcean Spaces B 63.2",
      "scores"
    ],
    "h1": "Cloudflare R2 vs DigitalOcean Spaces",
    "image": "https://www.anchorterminal.com/assets/og/compare-cloudflare-r2-vs-digitalocean-spaces.png",
    "path": "/compare/cloudflare-r2-vs-digitalocean-spaces",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloudflare R2 vs DigitalOcean Spaces for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-digitalocean-spaces"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 680
  },
  "version": 1
}
