{
  "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). 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 (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": 78.4,
        "grade": "A",
        "agentReady": true,
        "rank": 14,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 90,
          "maintenance": 87,
          "payments": 30,
          "reliability": 82,
          "schema": 92,
          "security": 83,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Free egress and a free tier of 10 GB-month plus 1 million writes a month. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.",
        "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 about 35 codes, each with an HTTP status and a recovery step",
          "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 minor R2 incidents between 18 and 30 September 2026, one with intermittent authentication errors for about 12 hours",
          "No MCP server reads or writes objects; the official servers manage buckets"
        ],
        "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": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 78.4
          }
        ],
        "editorialScores": {
          "ergonomics": 90,
          "maintenance": 87,
          "payments": 30,
          "reliability": 82,
          "schema": 92,
          "security": 83,
          "transparency": 64
        },
        "provenanceScore": 85
      },
      "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-mcp",
        "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-03",
        "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.",
          "Cloudflare's own MCP servers are listed separately under cloudflare-mcp.",
          "The R2 release-notes page (https://developers.cloudflare.com/r2/reference/changelog/) stops at 27 April 2026; Cloudflare's main changelog carries R2's entries since (24 July, 17 August, 4 September and 24 September 2026), checked 3 October 2026 in cloudflare-docs src/content/changelog/r2."
        ],
        "score": 85
      },
      "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-04T23:32:45.560972406Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 272,
          "samples30d": 895,
          "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": 267,
              "ok": 0
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "minor",
          "summary": "Minor Service Outage",
          "checkedAt": "2026-10-04T23:27:42.302945394Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cloudflare/workers-sdk",
            "version": "@cloudflare/deploy-helpers@0.19.2",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:23:57.690111662Z"
          },
          {
            "registry": "npm",
            "name": "wrangler",
            "version": "4.147.0",
            "seenAt": "2026-10-04T16:23:57.297714496Z"
          }
        ],
        "githubStars": 4603,
        "npmWeekly": 29923122,
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:15:51.95928161Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:29.099310034Z"
        },
        "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/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-04T15:42:54.864560039Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "801736491cf8"
          },
          {
            "url": "https://www.cloudflare.com/privacypolicy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:48.937404588Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e562d2a2da97"
          },
          {
            "url": "https://www.cloudflare.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:51.169054141Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d26dd2a74bde"
          }
        ],
        "updatedAt": "2026-10-04T23:32:45.560972406Z"
      }
    },
    "b": {
      "slug": "tigris",
      "name": "Tigris",
      "vendor": "Tigris Data",
      "vendorUrl": "https://www.tigrisdata.com",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "S3-compatible object storage that replicates objects towards where they're read, with no egress fees and one global endpoint (t3.storage.dev).",
      "url": "https://www.anchorterminal.com/tools/tigris",
      "markdownUrl": "https://www.anchorterminal.com/tools/tigris.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tigris.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tigris.json",
      "repo": "https://github.com/tigrisdata/tigris-mcp-server",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://t3.storage.dev",
      "packages": [
        {
          "registry": "npm",
          "name": "@tigrisdata/tigris-mcp-server"
        },
        {
          "registry": "npm",
          "name": "@tigrisdata/storage"
        }
      ],
      "auth": "mixed",
      "authNotes": "The S3 API takes SigV4 with an access key created in the console or the IAM API (ID starts `tid_`, secret starts `tsec_`) and region `auto`. Keys can be scoped per bucket with ReadOnly, ReadWrite or Editor roles and IAM policies, and revoked or rotated. AssumeRole, STS and temporary credentials aren't supported, so every key lives until revoked. The hosted MCP server signs in with OAuth; the stdio server reads AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_ENDPOINT_URL_S3, or an AWS CLI profile.",
      "pricing": "freemium",
      "pricingNotes": "Free every month, 5 GB of Standard storage, 10,000 PUT, COPY, POST and LIST requests and 100,000 GET, SELECT and other requests. Beyond that, Standard $0.02 a GB-month, Infrequent Access $0.01 (30-day minimum, $0.01 a GB retrieval), Archive and Archive Instant Retrieval $0.004 (90-day minimum, $0.03 a GB instant retrieval). Class A requests $0.005 per 1,000, Class B $0.0005 per 1,000, deletes free, object notifications $0.01 per 1,000 events. Egress is free in every tier and region. Storage is metered on the average daily peak over the month (https://www.tigrisdata.com/pricing/).",
      "priceSummary": "$0.005 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4,
        "npmWeekly": 20,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.tigrisdata.com/docs/",
      "llmsTxt": "https://www.tigrisdata.com/docs/llms.txt",
      "capabilities": [
        "storage.object",
        "storage.s3",
        "storage.presigned",
        "storage.share"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "s3-compatible",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "typescript",
        "llms-txt"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.6,
        "grade": "E",
        "agentReady": false,
        "rank": 404,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 77,
          "payments": 30,
          "reliability": 35,
          "schema": 50,
          "security": 51,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-21. @tigrisdata/iam 2.6.0 fixed policy create, update and read dropping the Condition and Sid fields, so IP-restricted or time-limited policies made with Tigris's own SDK or CLI had silently become unrestricted. Fixed and documented in the changelog, so we deduct less (-3). https://github.com/tigrisdata/storage/blob/main/packages/iam/CHANGELOG.md"
        ],
        "verdict": "No egress fees, and one endpoint (t3.storage.dev) with region auto for every location. 16 status incidents between 4 July and 2 October 2026, including outages in US regions on 31 July and 2 August.",
        "strengths": [
          "No egress fees, and one endpoint (t3.storage.dev) with region auto for every location",
          "Access keys scoped per bucket with ReadOnly, ReadWrite or Editor roles, plus IAM policies, revocation and rotation",
          "Hosted MCP server at mcp.storage.dev with OAuth, and a local stdio server with 10 tools",
          "Bucket snapshots and copy-on-write forks, wrapped for agents in @tigrisdata/agent-kit",
          "Active MIT SDK monorepo, @tigrisdata/storage 3.22.0 on 30 September 2026"
        ],
        "weaknesses": [
          "16 status incidents between 4 July and 2 October 2026, including outages in US regions on 31 July and 2 August",
          "No STS or expiring keys; presigned URLs, which can run to 90 days, are the only short-lived credential",
          "No published rate limits, retry guidance, OpenAPI, product changelog or audit logs",
          "The stdio MCP server last released on 17 November 2025, lists whole buckets with no limit and carries no tool annotations",
          "@tigrisdata/iam dropped Condition fields from policies until 2.6.0 on 21 September 2026"
        ],
        "agentNotes": [
          "Point the AWS SDK at https://t3.storage.dev with region `auto`; the stdio MCP README still shows the older fly.storage.tigris.dev endpoint",
          "Ask for an access key with a ReadOnly or ReadWrite role on one bucket rather than an org-wide key",
          "Keep presigned URLs short; Tigris accepts up to 90 days",
          "Don't call tigris_list_objects on a large bucket; it walks every object with no limit or prefix",
          "Use @tigrisdata/iam 2.6.0 or later before writing policies with conditions"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.6
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 77,
          "payments": 30,
          "reliability": 35,
          "schema": 50,
          "security": 51,
          "transparency": 52
        },
        "provenanceScore": 50
      },
      "connect": {
        "http": "AWS_ACCESS_KEY_ID=$TIGRIS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$TIGRIS_SECRET_ACCESS_KEY \\\n  aws s3 cp ./hello.txt s3://my-bucket/hello.txt \\\n  --endpoint-url https://t3.storage.dev --region auto",
        "claudeCode": "claude mcp add --transport http tigris https://mcp.storage.dev/mcp --scope user",
        "config": {
          "mcpServers": {
            "tigris": {
              "args": [
                "-y",
                "@tigrisdata/tigris-mcp-server",
                "run"
              ],
              "command": "npx",
              "env": {
                "AWS_ACCESS_KEY_ID": "${TIGRIS_ACCESS_KEY_ID}",
                "AWS_ENDPOINT_URL_S3": "https://t3.storage.dev",
                "AWS_SECRET_ACCESS_KEY": "${TIGRIS_SECRET_ACCESS_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/tigris"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Standard storage",
          "unit": "gb-month",
          "usd": 0.02,
          "note": "First 5 GB a month free"
        },
        {
          "item": "Infrequent Access storage",
          "unit": "gb-month",
          "usd": 0.01,
          "note": "30-day minimum, $0.01 a GB retrieval"
        },
        {
          "item": "Archive storage",
          "unit": "gb-month",
          "usd": 0.004,
          "note": "90-day minimum. Archive Instant Retrieval is the same rate plus $0.03 a GB retrieval"
        },
        {
          "item": "Egress",
          "unit": "gb",
          "usd": 0
        },
        {
          "item": "Class A requests (PUT, COPY, POST, LIST)",
          "unit": "1k-requests",
          "usd": 0.005,
          "note": "First 10,000 a month free"
        },
        {
          "item": "Class B requests (GET, SELECT, other)",
          "unit": "1k-requests",
          "usd": 0.0005,
          "note": "First 100,000 a month free"
        }
      ],
      "provenance": {
        "legalEntity": "Tigris Data Inc.",
        "domain": "tigrisdata.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "https://www.tigrisdata.com/docs/legal/service-terms/",
        "privacy": "https://www.tigrisdata.com/docs/legal/privacy-policy/",
        "statusPage": "https://status.tigrisdata.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The service agreement names Tigris Data Inc., 1250 Borregas Ave, #87, Sunnyvale, CA 94089, last updated 2024-12-26.",
          "The S3 endpoint is on storage.dev and the hosted MCP on mcp.storage.dev, not tigrisdata.com.",
          "www.tigrisdata.com/.well-known/security.txt returns 404.",
          "The domain's RDAP record couldn't be fetched on 2026-09-30 (the RDAP server rate-limited us), so the registration date is blank."
        ],
        "score": 50
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tigris.json",
      "live": {
        "slug": "tigris",
        "probe": {
          "target": "https://t3.storage.dev",
          "method": "get",
          "lastAt": "2026-10-04T23:32:55.477761956Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 135,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 153,
          "p95ms24h": 289,
          "samples24h": 272,
          "samples30d": 895,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tigrisdata.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:28:04.547469006Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "tigrisdata/tigris-mcp-server",
            "version": "v1.14.0",
            "released": "2025-11-17",
            "seenAt": "2026-10-04T16:41:54.881060386Z"
          },
          {
            "registry": "npm",
            "name": "@tigrisdata/storage",
            "version": "3.22.0",
            "seenAt": "2026-10-04T16:41:53.519245468Z"
          },
          {
            "registry": "npm",
            "name": "@tigrisdata/tigris-mcp-server",
            "version": "1.14.0",
            "seenAt": "2026-10-04T16:41:52.671246556Z"
          }
        ],
        "githubStars": 4,
        "npmWeekly": 15,
        "securityTxt": {
          "url": "https://tigrisdata.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:36.802389708Z"
        },
        "llmsTxt": {
          "url": "https://www.tigrisdata.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:17.942052226Z"
        },
        "domain": {
          "domain": "tigrisdata.com",
          "registered": "2021-09-28",
          "source": "https://rdap.verisign.com/com/v1/domain/tigrisdata.com",
          "checkedAt": "2026-10-04T13:06:26.738654248Z"
        },
        "pages": [
          {
            "url": "https://www.tigrisdata.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:30.927222957Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "31bb3b3a8224"
          },
          {
            "url": "https://www.tigrisdata.com/docs/legal/privacy-policy/",
            "kind": "privacy",
            "status": 404,
            "checkedAt": "2026-10-04T15:52:26.857408966Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://www.tigrisdata.com/docs/legal/service-terms/",
            "kind": "terms",
            "status": 404,
            "checkedAt": "2026-10-04T15:52:28.943575422Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-04T23:32:55.477761956Z"
      }
    },
    "summary": "Cloudflare R2 has a score of 78.4 (A) against Tigris's 44.6 (E). Both do storage object. The largest gap is reliability, 47 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris",
    "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris.md",
    "slim": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris.min.md"
  },
  "markdown": "Cloudflare R2 has a score of 78.4 (A) against Tigris's 44.6 (E). Both do storage object. The largest gap is reliability, 47 points.\n\n- Cloudflare R2: grade A, 78.4/100, rank #14 of 452. Markdown https://www.anchorterminal.com/tools/cloudflare-r2.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json\n- Tigris: grade E, 44.6/100, rank #404 of 452. Markdown https://www.anchorterminal.com/tools/tigris.md · JSON https://www.anchorterminal.com/api/v1/tools/tigris.json\n\n## Which one, for what\n\nPick Cloudflare R2 for reliability (+47), schema \u0026 documentation (+42), agent ergonomics (+37), security \u0026 auth (+32), maintenance \u0026 community (+10), transparency \u0026 trust (+24).\n\nPick Tigris for nothing in particular (no category where it leads by five points or more).\n\n## Score by category\n\n| Category | Weight | Cloudflare R2 | Tigris | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 82 | 35 | Cloudflare R2 +47 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 50 | Cloudflare R2 +42 |\n| Agent ergonomics | 13% (16.2 this run) | 90 | 53 | Cloudflare R2 +37 |\n| Security \u0026 auth | 14% (17.5 this run) | 83 | 51 | Cloudflare R2 +32 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 77 | Cloudflare R2 +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 51 | Cloudflare R2 +24 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **78.4 · A** | **44.6 · E** | |\n\n## Facts side by side\n\n| Fact | Cloudflare R2 | Tigris |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cloudflare | Tigris Data |\n| Hosted endpoint | `https://\u003caccount-id\u003e.r2.cloudflarestorage.com` | `https://t3.storage.dev` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 or MIT (wrangler) | MIT |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-24 | 2026-09-30 |\n| Popularity | 4.5k stars, 27M npm/wk | 4 stars, 20 npm/wk |\n| Agent reviews | 3.5/5 (8) | 3/5 (2) |\n\n## Verdicts\n\n**Cloudflare R2.** Free egress and a free tier of 10 GB-month plus 1 million writes a month. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.\n\n**Tigris.** No egress fees, and one endpoint (t3.storage.dev) with region auto for every location. 16 status incidents between 4 July and 2 October 2026, including outages in US regions on 31 July and 2 August.\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### Tigris\n\n1. Point the AWS SDK at https://t3.storage.dev with region `auto`; the stdio MCP README still shows the older fly.storage.tigris.dev endpoint\n2. Ask for an access key with a ReadOnly or ReadWrite role on one bucket rather than an org-wide key\n3. Keep presigned URLs short; Tigris accepts up to 90 days\n4. Don't call tigris_list_objects on a large bucket; it walks every object with no limit or prefix\n5. Use @tigrisdata/iam 2.6.0 or later before writing policies with conditions\n\n## Other comparisons with Cloudflare R2 or Tigris\n\n- [Box API + MCP vs Cloudflare R2](https://www.anchorterminal.com/compare/box-api-vs-cloudflare-r2.md)\n- [Box API + MCP vs Tigris](https://www.anchorterminal.com/compare/box-api-vs-tigris.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- [Dropbox API + MCP vs Tigris](https://www.anchorterminal.com/compare/dropbox-api-vs-tigris.md)\n- [Google Drive API + MCP vs Tigris](https://www.anchorterminal.com/compare/google-drive-api-vs-tigris.md)\n- [Amazon S3 vs Cloudflare R2](https://www.anchorterminal.com/compare/amazon-s3-vs-cloudflare-r2.md)\n- [Amazon S3 vs Tigris](https://www.anchorterminal.com/compare/amazon-s3-vs-tigris.md)\n- [Backblaze B2 vs Cloudflare R2](https://www.anchorterminal.com/compare/backblaze-b2-vs-cloudflare-r2.md)\n- [Backblaze B2 vs Tigris](https://www.anchorterminal.com/compare/backblaze-b2-vs-tigris.md)\n- [Bunny Storage vs Cloudflare R2](https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2.md)\n- [Bunny Storage vs Tigris](https://www.anchorterminal.com/compare/bunny-storage-vs-tigris.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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 Tigris",
        "url": ""
      }
    ],
    "description": "Cloudflare R2 has a score of 78.4 (A) against Tigris's 44.6 (E). Both do storage object. The largest gap is reliability, 47 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Cloudflare R2 A 78.4",
      "Tigris E 44.6",
      "scores"
    ],
    "h1": "Cloudflare R2 vs Tigris",
    "image": "https://www.anchorterminal.com/assets/og/compare-cloudflare-r2-vs-tigris.png",
    "path": "/compare/cloudflare-r2-vs-tigris",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloudflare R2 vs Tigris for AI agents, A 78.4 vs E 44.6",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
