{
  "data": {
    "a": {
      "slug": "azure-blob-storage",
      "name": "Azure Blob Storage",
      "vendor": "Microsoft Corporation",
      "vendorUrl": "https://azure.microsoft.com/en-us/products/storage/blobs",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "Microsoft Azure's object storage for files, backups and application data. Agents call a REST API or the Azure SDKs on a storage account, signing in with Microsoft Entra ID, an account key or a shared access signature.",
      "url": "https://www.anchorterminal.com/tools/azure-blob-storage",
      "markdownUrl": "https://www.anchorterminal.com/tools/azure-blob-storage.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/azure-blob-storage.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/azure-blob-storage.json",
      "repo": "https://github.com/Azure/azure-rest-api-specs",
      "license": "Proprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://\u003caccount\u003e.blob.core.windows.net",
      "packages": [
        {
          "registry": "pypi",
          "name": "azure-storage-blob"
        },
        {
          "registry": "npm",
          "name": "@azure/storage-blob"
        }
      ],
      "auth": "mixed",
      "authNotes": "Three routes. Microsoft Entra ID OAuth 2.0 bearer tokens, authorised by Azure roles assigned on a container, account, resource group or subscription, which Microsoft recommends. Shared Key, an HMAC signature made with one of the account's access keys, which carry full access and are accepted until the owner sets `AllowSharedKeyAccess` to false. A shared access signature (SAS), a signed query string that grants chosen permissions on a resource until an expiry time. A user delegation SAS is signed with a key obtained through Entra ID and lasts at most seven days. Access is self-serve inside an Azure subscription (https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage, https://learn.microsoft.com/en-us/azure/storage/blobs/authorize-access-azure-active-directory).",
      "pricing": "usage",
      "pricingNotes": "Hot tier LRS storage is $0.0208 a GB-month for the first 50 TB in East US, cool $0.0152, cold $0.0036 and archive $0.00099. Hot write operations cost $0.05 per 10,000, list and create container operations $0.05, read and other operations $0.004. Cool and cold reads add a retrieval charge of $0.01 and $0.03 a GB. The pricing page draws its numbers by script and showed none, so these come from the Azure Retail Prices API (https://prices.azure.com/api/retail/prices?$filter=serviceName%20eq%20%27Storage%27%20and%20armRegionName%20eq%20%27eastus%27%20and%20productName%20eq%20%27General%20Block%20Blob%20v2%27). Internet egress is billed separately as bandwidth and its rate was not read. No free allowance for Blob Storage could be read, because the free services page lists its services by script. A new Azure account gets $200 of credit for 30 days and needs a phone number and a credit or debit card (https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account).",
      "priceSummary": "$0.005 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Blob Storage REST reference, the storage docs read or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 12530696,
        "pypiWeekly": 22597364,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-rest-api",
      "openapi": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-10-06/blob.json",
      "capabilities": [
        "storage.object",
        "storage.presigned",
        "storage.share",
        "infra.azure"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "usage-priced",
        "card-required",
        "openapi",
        "oauth",
        "python",
        "typescript",
        "enterprise",
        "sla",
        "eu"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 40,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 80,
          "payments": 20,
          "reliability": 88,
          "schema": 85,
          "security": 81,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Microsoft Entra ID roles can be scoped to one container, and a user delegation signature hands out a link that expires within seven days. Account keys with full access stay enabled until the owner turns them off, request logs are off until configured, and an Azure account needs a person, a phone number and a payment card.",
        "bestFor": "Agents and runtimes already on Azure, where a managed identity writes to one container with no stored key, and jobs that need tiers, immutability or geo-redundant copies.",
        "strengths": [
          "Microsoft Entra ID roles such as Storage Blob Data Reader can be assigned on one container, with no stored key for workloads on Azure",
          "A user delegation shared access signature is signed with Entra credentials, lasts at most seven days and can be limited by permission, IP address and protocol",
          "SLA of 99.9 per cent on the hot tier, 99.99 per cent for reads on RA-GRS accounts, in the 1 October 2026 SLA document",
          "Public OpenAPI 2.0 contract with 69 operations for service version 2026-10-06, and Learn pages returned as Markdown on request",
          "Conditional headers, leases, soft delete of 1 to 365 days and immutability policies protect against a wrong overwrite or delete"
        ],
        "weaknesses": [
          "Shared Key authorisation with the account's access keys is allowed until the owner sets `AllowSharedKeyAccess` to false",
          "Request logs are not collected until a diagnostic setting routes the StorageRead, StorageWrite and StorageDelete categories somewhere",
          "Requests and responses use headers and XML, and every authorised call must carry `x-ms-version`",
          "The pricing page draws its numbers by script, so an agent reading it sees no price. The Retail Prices API has them",
          "An Azure account needs a phone number and a credit or debit card, and no free Blob Storage allowance could be read"
        ],
        "agentNotes": [
          "Request an Entra ID token for https://storage.azure.com/ and send it as a Bearer header with `x-ms-version` and `x-ms-date`. Put Blob also needs `x-ms-blob-type: BlockBlob`",
          "Ask for a Storage Blob Data role on the one container. Role changes can take up to 10 minutes to apply",
          "To share a file, call Get User Delegation Key, then sign a SAS with `sp=r`, `spr=https` and a short expiry. Treat the URL as a secret",
          "Send `If-None-Match: *` on Put Blob so a retry can't overwrite a blob another call wrote",
          "On 503 ServerBusy back off exponentially. After 500 OperationTimedOut check the blob's state before retrying, since the write may have succeeded"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.7
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 80,
          "payments": 20,
          "reliability": 88,
          "schema": 85,
          "security": 81,
          "transparency": 73
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "pip install azure-storage-blob azure-identity   # or: npm i @azure/storage-blob @azure/identity",
        "http": "PUT https://myaccount.blob.core.windows.net/mycontainer/myblob\nx-ms-version: 2026-04-06\nx-ms-date: \u003cdate\u003e\nx-ms-blob-type: BlockBlob\nAuthorization: Bearer \u003cEntra ID access token for https://storage.azure.com/\u003e"
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/azure-blob-storage"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "azure-text-to-speech",
        "microsoft-agent-framework",
        "microsoft-execution-containers",
        "microsoft-entra-agent-id",
        "azure-key-vault",
        "azure-document-intelligence",
        "azure-devops-mcp",
        "microsoft-learn-mcp",
        "playwright-mcp",
        "azure-mcp",
        "azure-maps",
        "azure-translator",
        "microsoft-graph-calendar",
        "onedrive-sharepoint",
        "microsoft-teams",
        "dynamics-365-sales",
        "power-automate",
        "foundry-local",
        "microsoft-advertising-api",
        "microsoft-excel-graph",
        "outlook-mail-graph"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Hot LRS storage, first 50 TB",
          "unit": "gb-month",
          "usd": 0.0208,
          "note": "East US, general-purpose v2, from the Azure Retail Prices API"
        },
        {
          "item": "Cool LRS storage",
          "unit": "gb-month",
          "usd": 0.0152,
          "note": "East US"
        },
        {
          "item": "Hot LRS write operations",
          "unit": "1k-requests",
          "usd": 0.005,
          "note": "$0.05 per 10,000"
        },
        {
          "item": "Hot read operations",
          "unit": "1k-requests",
          "usd": 0.0004,
          "note": "$0.004 per 10,000"
        }
      ],
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "Accounts answer at \u003caccount\u003e.blob.core.windows.net, as Microsoft's REST reference gives it. RDAP shows windows.net registered on 1995-08-10. Docs are on learn.microsoft.com.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.microsoft.com/licensing/terms/product/ForOnlineServices/all",
        "privacy": "https://www.microsoft.com/en-us/privacy/privacystatement",
        "statusPage": "https://azure.status.microsoft/en-us/status",
        "changelog": "https://learn.microsoft.com/en-us/rest/api/storageservices/versioning-for-the-azure-storage-services",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The Product Terms for Online Services cover Microsoft Azure, carry an acceptable use policy and a competitive benchmarking clause, and point to the Data Protection Addendum. The page showed no effective date when read on 8 October 2026.",
          "Self-serve Azure accounts also accept the Microsoft Online Subscription Agreement (last updated March 2019, Microsoft Corporation, Washington law) at https://azure.microsoft.com/en-us/support/legal/subscription-agreement/, which incorporates the Online Services Terms and the SLAs.",
          "The privacy statement (last updated September 2026) names Microsoft Corporation, One Microsoft Way, Redmond, Washington 98052, and Microsoft Ireland Operations Limited. It lists Microsoft Azure among the enterprise online services covered by the Product Terms.",
          "The Data Protection Addendum read is the English edition of 22 May 2026, a Word file linked from https://www.microsoft.com/licensing/docs/view/Microsoft-Products-and-Services-Data-Protection-Addendum-DPA.",
          "https://www.microsoft.com/.well-known/security.txt shows Expires 2026-09-23T16:00:00.000Z. It points to the MSRC researcher portal, the bounty policy and the coordinated disclosure policy.",
          "RDAP gives 1991-05-02 for microsoft.com and 1995-08-10 for windows.net. The registry record does not name a registrant.",
          "The versioning page is dated 23 September 2026 and each service version has its own page of changes."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/azure-blob-storage.json",
      "live": {
        "slug": "azure-blob-storage",
        "probe": {
          "target": "https://\u003caccount\u003e.blob.core.windows.net",
          "method": "get",
          "lastAt": "2026-10-09T11:46:22.69203777Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 44,
          "samples30d": 44,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 44,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-09T07:40:20.163794763Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "DNS lookup failed"
            }
          ]
        },
        "updatedAt": "2026-10-09T11:46:22.69203777Z"
      }
    },
    "answer": "Cloudflare R2 scores 77.1 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 4 of 7 scored categories. Azure Blob Storage leads on reliability and transparency \u0026 trust.",
    "b": {
      "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": 22,
        "ranked": true,
        "rankOf": 842,
        "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-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-09T11:46:25.525101272Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 259,
          "samples30d": 2109,
          "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": 125,
              "ok": 0
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-10-09T11:38:35.416256426Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cloudflare/workers-sdk",
            "version": "create-cloudflare@2.73.3",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:05:53.116198992Z"
          },
          {
            "registry": "npm",
            "name": "wrangler",
            "version": "4.148.0",
            "seenAt": "2026-10-08T16:05:49.599580456Z"
          }
        ],
        "githubStars": 4610,
        "npmWeekly": 30217425,
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-08T15:39:03.720889469Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:15.776747945Z"
        },
        "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-08T18:17:36.0327094Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a98cde8bb0c"
          },
          {
            "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-08T18:17:40.046294648Z",
            "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-09T11:46:25.525101272Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Microsoft Corporation",
        "b": "Cloudflare",
        "name": "Vendor"
      },
      {
        "a": "https://\u003caccount\u003e.blob.core.windows.net",
        "b": "https://\u003caccount-id\u003e.r2.cloudflarestorage.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MIT",
        "b": "Apache-2.0 or MIT (wrangler)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-09-24",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-09-12",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "12.5M npm/wk, 22.6M PyPI/wk",
        "b": "4.5k stars, 27M npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (8)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cloudflare R2 scores 77.1 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 4 of 7 scored categories. Azure Blob Storage leads on reliability and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Azure Blob Storage or Cloudflare R2?"
      },
      {
        "answer": "Azure Blob Storage takes an API key or an OAuth sign-in. Cloudflare R2 needs an API key.",
        "question": "Do Azure Blob Storage and Cloudflare R2 need an API key?"
      },
      {
        "answer": "Yes. Azure Blob Storage has a hosted endpoint at https://\u003caccount\u003e.blob.core.windows.net and Cloudflare R2 at https://\u003caccount-id\u003e.r2.cloudflarestorage.com.",
        "question": "Can an agent call Azure Blob Storage and Cloudflare R2 without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 88 against 82",
          "Transparency \u0026 trust, 80 against 74"
        ],
        "also": null,
        "goodFor": "Agents and runtimes already on Azure, where a managed identity writes to one container with no stored key, and jobs that need tiers, immutability or geo-redundant copies.",
        "slug": "azure-blob-storage",
        "watchFor": "Shared Key authorisation with the account's access keys is allowed until the owner sets `AllowSharedKeyAccess` to false"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 92 against 85",
          "Agent ergonomics, 90 against 84",
          "Maintenance \u0026 community, 87 against 80"
        ],
        "also": null,
        "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"
      }
    ],
    "job": {
      "capability": "storage.object",
      "name": "Storage object"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-box-api.json",
        "title": "Azure Blob Storage vs Box API + MCP",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-box-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-dropbox-api.json",
        "title": "Azure Blob Storage vs Dropbox API + MCP",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-dropbox-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-google-drive-api.json",
        "title": "Azure Blob Storage vs Google Drive API + MCP",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-google-drive-api"
      },
      {
        "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/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-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/amazon-s3-vs-azure-blob-storage.json",
        "title": "Amazon S3 vs Azure Blob Storage",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage"
      },
      {
        "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/azure-blob-storage-vs-backblaze-b2.json",
        "title": "Azure Blob Storage vs Backblaze B2",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-backblaze-b2"
      },
      {
        "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-tigris.json",
        "title": "Azure Blob Storage vs Tigris",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-tigris"
      },
      {
        "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/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/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/azure-blob-storage-vs-onedrive-sharepoint.json",
        "title": "Azure Blob Storage vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-onedrive-sharepoint"
      }
    ],
    "scores": [
      {
        "azure-blob-storage": 88,
        "by": 6,
        "cloudflare-r2": 82,
        "edge": "azure-blob-storage",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "azure-blob-storage": 85,
        "by": 7,
        "cloudflare-r2": 92,
        "edge": "cloudflare-r2",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "azure-blob-storage": 84,
        "by": 6,
        "cloudflare-r2": 90,
        "edge": "cloudflare-r2",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "azure-blob-storage": 81,
        "by": 2,
        "cloudflare-r2": 83,
        "edge": "cloudflare-r2",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "azure-blob-storage": 20,
        "by": 0,
        "cloudflare-r2": 20,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "azure-blob-storage": 80,
        "by": 7,
        "cloudflare-r2": 87,
        "edge": "cloudflare-r2",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "azure-blob-storage": 80,
        "by": 6,
        "cloudflare-r2": 74,
        "edge": "azure-blob-storage",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Cloudflare R2 scores 77.1 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 4 of 7 scored categories. Azure Blob Storage leads on reliability and transparency \u0026 trust. Both do storage object.",
    "verdicts": {
      "azure-blob-storage": "Microsoft Entra ID roles can be scoped to one container, and a user delegation signature hands out a link that expires within seven days. Account keys with full access stay enabled until the owner turns them off, request logs are off until configured, and an Azure account needs a person, a phone number and a payment card.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2",
    "json": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.md",
    "slim": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.min.md"
  },
  "markdown": "Cloudflare R2 scores 77.1 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 4 of 7 scored categories. Azure Blob Storage leads on reliability and transparency \u0026 trust. Both do storage object.\n\n- Azure Blob Storage: grade BB, 75.7/100, rank #40 of 842. Markdown https://www.anchorterminal.com/tools/azure-blob-storage.md · JSON https://www.anchorterminal.com/api/v1/tools/azure-blob-storage.json\n- Cloudflare R2: grade BB, 77.1/100, rank #22 of 842. Markdown https://www.anchorterminal.com/tools/cloudflare-r2.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json\n\n## Which one, for what\n\n### Azure Blob Storage (BB)\n\nGood for: Agents and runtimes already on Azure, where a managed identity writes to one container with no stored key, and jobs that need tiers, immutability or geo-redundant copies.\n\nAhead on:\n- Reliability, 88 against 82\n- Transparency \u0026 trust, 80 against 74\n\nWatch for: Shared Key authorisation with the account's access keys is allowed until the owner sets `AllowSharedKeyAccess` to false\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- Schema \u0026 documentation, 92 against 85\n- Agent ergonomics, 90 against 84\n- Maintenance \u0026 community, 87 against 80\n\nWatch for: No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules\n\n\n## Score by category\n\n| Category | Weight | Azure Blob Storage | Cloudflare R2 | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 88 | 82 | Azure Blob Storage +6 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 92 | Cloudflare R2 +7 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 90 | Cloudflare R2 +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 81 | 83 | Cloudflare R2 +2 |\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) | 80 | 87 | Cloudflare R2 +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 74 | Azure Blob Storage +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75.7 · BB** | **77.1 · BB** | |\n\n## Facts side by side\n\n| Fact | Azure Blob Storage | Cloudflare R2 |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Microsoft Corporation | Cloudflare |\n| Hosted endpoint | `https://\u003caccount\u003e.blob.core.windows.net` | `https://\u003caccount-id\u003e.r2.cloudflarestorage.com` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MIT | Apache-2.0 or MIT (wrangler) |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-09-30 | 2026-09-24 |\n| Terms last updated | no date given | 2025-09-12 |\n| Privacy policy last updated | 2026-09-01 | no date given |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 12.5M npm/wk, 22.6M PyPI/wk | 4.5k stars, 27M npm/wk |\n| Agent reviews | none | 3.5/5 (8) |\n\n## Verdicts\n\n**Azure Blob Storage.** Microsoft Entra ID roles can be scoped to one container, and a user delegation signature hands out a link that expires within seven days. Account keys with full access stay enabled until the owner turns them off, request logs are off until configured, and an Azure account needs a person, a phone number and a payment card.\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## Before you call either\n\n### Azure Blob Storage\n\n1. Request an Entra ID token for https://storage.azure.com/ and send it as a Bearer header with `x-ms-version` and `x-ms-date`. Put Blob also needs `x-ms-blob-type: BlockBlob`\n2. Ask for a Storage Blob Data role on the one container. Role changes can take up to 10 minutes to apply\n3. To share a file, call Get User Delegation Key, then sign a SAS with `sp=r`, `spr=https` and a short expiry. Treat the URL as a secret\n4. Send `If-None-Match: *` on Put Blob so a retry can't overwrite a blob another call wrote\n5. On 503 ServerBusy back off exponentially. After 500 OperationTimedOut check the blob's state before retrying, since the write may have succeeded\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## Questions\n\n### Which is better for AI agents, Azure Blob Storage or Cloudflare R2?\n\nCloudflare R2 scores 77.1 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 4 of 7 scored categories. Azure Blob Storage leads on reliability and transparency \u0026 trust.\n\n### Do Azure Blob Storage and Cloudflare R2 need an API key?\n\nAzure Blob Storage takes an API key or an OAuth sign-in. Cloudflare R2 needs an API key.\n\n### Can an agent call Azure Blob Storage and Cloudflare R2 without installing anything?\n\nYes. Azure Blob Storage has a hosted endpoint at https://\u003caccount\u003e.blob.core.windows.net and Cloudflare R2 at https://\u003caccount-id\u003e.r2.cloudflarestorage.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.json, and with the fewest tokens: https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"azure-blob-storage\", \"b\": \"cloudflare-r2\"}`. From a terminal: `anchor compare azure-blob-storage cloudflare-r2`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/azure-blob-storage.json and https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json\n\n## Other comparisons with Azure Blob Storage or Cloudflare R2\n\n- [Azure Blob Storage vs Box API + MCP](https://www.anchorterminal.com/compare/azure-blob-storage-vs-box-api.md)\n- [Azure Blob Storage vs Dropbox API + MCP](https://www.anchorterminal.com/compare/azure-blob-storage-vs-dropbox-api.md)\n- [Azure Blob Storage vs Google Drive API + MCP](https://www.anchorterminal.com/compare/azure-blob-storage-vs-google-drive-api.md)\n- [Box API + MCP vs Cloudflare R2](https://www.anchorterminal.com/compare/box-api-vs-cloudflare-r2.md)\n- [Cloudflare R2 vs Dropbox API + MCP](https://www.anchorterminal.com/compare/cloudflare-r2-vs-dropbox-api.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- [Amazon S3 vs Azure Blob Storage](https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.md)\n- [Amazon S3 vs Cloudflare R2](https://www.anchorterminal.com/compare/amazon-s3-vs-cloudflare-r2.md)\n- [Azure Blob Storage vs Backblaze B2](https://www.anchorterminal.com/compare/azure-blob-storage-vs-backblaze-b2.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 Tigris](https://www.anchorterminal.com/compare/azure-blob-storage-vs-tigris.md)\n- [Backblaze B2 vs Cloudflare R2](https://www.anchorterminal.com/compare/backblaze-b2-vs-cloudflare-r2.md)\n- [Bunny Storage vs Cloudflare R2](https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2.md)\n- [Cloudflare R2 vs Tigris](https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris.md)\n- [Azure Blob Storage vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/azure-blob-storage-vs-onedrive-sharepoint.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "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": "Azure Blob Storage vs Cloudflare R2",
        "url": ""
      }
    ],
    "description": "Cloudflare R2 scores 77.1 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 4 of 7 scored categories. Azure Blob Storage leads on reliability and transparency \u0026 trust. Both do storage object. Category scores, facts, verdicts and agent notes side by…",
    "facts": [
      "Azure Blob Storage BB 75.7",
      "Cloudflare R2 BB 77.1",
      "scores"
    ],
    "h1": "Azure Blob Storage vs Cloudflare R2",
    "image": "https://www.anchorterminal.com/assets/og/compare-azure-blob-storage-vs-cloudflare-r2.png",
    "path": "/compare/azure-blob-storage-vs-cloudflare-r2",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Azure Blob Storage vs Cloudflare R2 for AI agents, BB 75.7 vs BB 77.1",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 730
  },
  "version": 1
}
