{
  "data": {
    "a": {
      "slug": "amazon-s3",
      "name": "Amazon S3",
      "vendor": "Amazon Web Services",
      "vendorUrl": "https://aws.amazon.com/s3/",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "AWS object storage for files, backups and application data, accessed through an API.",
      "url": "https://www.anchorterminal.com/tools/amazon-s3",
      "markdownUrl": "https://www.anchorterminal.com/tools/amazon-s3.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/amazon-s3.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/amazon-s3.json",
      "repo": "https://github.com/aws/aws-sdk-js-v3",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://s3.us-east-1.amazonaws.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@aws-sdk/client-s3"
        },
        {
          "registry": "pypi",
          "name": "boto3"
        }
      ],
      "auth": "api-key",
      "authNotes": "SigV4 with an IAM access key and secret, or temporary credentials from STS (AssumeRole, session tokens), which is what an agent should hold. Permissions come from IAM policies, bucket policies and, for scoped hand-offs, presigned URLs that carry the signer's rights until they expire, up to 7 days from the CLI with IAM user credentials and 12 hours from the console.",
      "pricing": "usage",
      "pricingNotes": "S3 Standard $0.023 a GB-month for the first 50 TB, PUT, COPY, POST and LIST $0.005 per 1,000 requests, GET and SELECT $0.0004 per 1,000, Standard-Infrequent Access $0.0125 a GB-month, as read from AWS's price feed for US West (Oregon), published 2026-09-28; the pricing page's own tables load by script. Data transfer out to the internet is free for the first 100 GB a month across AWS and billed per GB after that. The pricing page also lists S3 Tables at $0.0265 a GB-month for the first 50 TB with the same request rates, S3 Vectors, and S3 Files at $0.30 a GB for high-performance storage. New AWS accounts get up to $200 in Free Tier credits over six months rather than a fixed S3 allowance, and since October 2026 most new customers sign up without a payment method (https://aws.amazon.com/s3/pricing/; https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/s3/USD/current/s3.json; https://aws.amazon.com/free/free-tier-faqs/).",
      "priceSummary": "$0.005 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3700,
        "npmWeekly": 44802781,
        "pypiWeekly": 578449536,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/",
      "capabilities": [
        "storage.object",
        "storage.s3",
        "storage.presigned",
        "storage.share"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "s3-compatible",
        "usage-priced",
        "enterprise",
        "eu",
        "typescript",
        "python",
        "webhooks"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 77.9,
        "grade": "BB",
        "agentReady": true,
        "rank": 15,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 83,
          "payments": 30,
          "reliability": 80,
          "schema": 92,
          "security": 88,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-04"
        },
        "negative": 0,
        "verdict": "STS session credentials with session policies, so an agent can hold one prefix for an hour. Egress to the internet is billed per GB after 100 GB a month.",
        "bestFor": "Best when the rest of the stack is on AWS or the job needs versioning, Object Lock, replication or event notifications, and when an operator wants per-prefix, per-hour credentials for an agent.",
        "strengths": [
          "STS session credentials with session policies, so an agent can hold one prefix for an hour",
          "SLA of 99.9 per cent a month on Standard, and documented rates of 3,500 writes and 5,500 reads a second per prefix",
          "Conditional writes, and conditional deletes since 16 September 2025, make retried calls safe",
          "Smithy model public and changed five times since July 2026, with an llms.txt and Markdown twins for the user guide",
          "Versioning, Object Lock, lifecycle, replication and event notifications, which the S3-compatible clones only partly cover"
        ],
        "weaknesses": [
          "Egress to the internet is billed per GB after 100 GB a month",
          "The pricing page renders the Standard table by script, so an agent reading it sees no Standard rate",
          "Signup needs a person in a browser, though since October 2026 most new accounts aren't asked for a payment card",
          "No MCP server for general-purpose buckets; AWS's general MCP server reaches S3 through IAM credentials and generic API calls",
          "S3 in ME-CENTRAL-1 (UAE) has been under a service disruption since 1 March 2026, and AWS can't restore data held only in mec1-az2"
        ],
        "agentNotes": [
          "Hold STS session credentials scoped by a session policy, never a long-lived IAM user key",
          "Sign presigned URLs with credentials that outlive the URL; a URL signed with a one-hour session token dies with the token",
          "Send If-None-Match with * on PutObject so a retry can't overwrite a file another call wrote",
          "Track the Free plan's end date on a new account; when the plan expires AWS suspends the account and access to the stored objects",
          "On 503 SlowDown back off and spread keys over more prefixes, since each prefix gets 3,500 writes a second"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.4,
        "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.9
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 83,
          "payments": 30,
          "reliability": 80,
          "schema": 92,
          "security": 88,
          "transparency": 73
        },
        "provenanceScore": 88
      },
      "connect": {
        "http": "AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \\\n  aws s3 cp ./hello.txt s3://my-bucket/hello.txt --region us-east-1"
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/amazon-s3"
      },
      "sameCompany": [
        "amazon-bedrock-customization",
        "agentcore-code-interpreter",
        "amazon-textract",
        "aws-end-user-messaging",
        "amazon-sns"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "S3 Standard storage, first 50 TB",
          "unit": "gb-month",
          "usd": 0.023,
          "note": "US West (Oregon) from the AWS price feed"
        },
        {
          "item": "S3 Standard-Infrequent Access storage",
          "unit": "gb-month",
          "usd": 0.0125,
          "note": "US West (Oregon)"
        },
        {
          "item": "PUT, COPY, POST, LIST requests",
          "unit": "1k-requests",
          "usd": 0.005
        },
        {
          "item": "GET, SELECT requests",
          "unit": "1k-requests",
          "usd": 0.0004
        },
        {
          "item": "S3 Tables storage, first 50 TB",
          "unit": "gb-month",
          "usd": 0.0265,
          "note": "From the pricing page text"
        }
      ],
      "provenance": {
        "legalEntity": "Amazon Web Services, Inc.",
        "domain": "amazonaws.com",
        "domainRegistered": "2005-08-18",
        "endpointOnVendorDomain": true,
        "terms": "https://aws.amazon.com/service-terms/",
        "privacy": "https://aws.amazon.com/privacy/",
        "statusPage": "https://health.aws.amazon.com/health/status",
        "changelog": "https://aws.amazon.com/about-aws/whats-new/storage/",
        "securityTxt": "expired",
        "checked": "2026-10-04",
        "notes": [
          "The Service Terms (updated 2026-10-01) name Amazon Web Services, Inc. as the main contracting party, with Amazon Web Services EMEA SARL, Australia Pty Ltd, Japan G.K., Korea LLC and India Private Limited for those regions; the entity list is per the 30 September check.",
          "The S3 endpoints sit on amazonaws.com; the marketing and pricing pages on aws.amazon.com.",
          "aws.amazon.com/.well-known/security.txt has Contact and Policy fields but its Expires date, 2026-09-24T16:25:03Z, had passed when re-read on 2026-10-04.",
          "Standard storage and request prices were read from AWS's price feed for US West (Oregon), published 2026-09-28, because the pricing page tables don't render without JavaScript; the bulk price list CSV is served gzipped and couldn't be read either."
        ],
        "score": 88
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/amazon-s3.json",
      "live": {
        "slug": "amazon-s3",
        "probe": {
          "target": "https://s3.us-east-1.amazonaws.com",
          "method": "get",
          "lastAt": "2026-10-09T10:42:35.38076625Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 531,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 409,
          "p95ms24h": 505,
          "samples24h": 260,
          "samples30d": 2098,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "aws/aws-sdk-js-v3",
            "version": "v3.1147.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T15:57:56.62786092Z"
          },
          {
            "registry": "npm",
            "name": "@aws-sdk/client-s3",
            "version": "3.1147.0",
            "seenAt": "2026-10-08T15:57:50.632809665Z"
          },
          {
            "registry": "pypi",
            "name": "boto3",
            "version": "1.43.109",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T15:57:53.117148396Z"
          }
        ],
        "githubStars": 3669,
        "npmWeekly": 58166472,
        "pypiWeekly": 573748207,
        "securityTxt": {
          "url": "https://amazonaws.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-24T16:25:03.000Z",
          "checkedAt": "2026-10-08T15:38:39.917438345Z"
        },
        "domain": {
          "domain": "amazonaws.com",
          "registered": "2005-08-18",
          "source": "https://rdap.verisign.com/com/v1/domain/amazonaws.com",
          "checkedAt": "2026-10-04T13:04:05.080783455Z"
        },
        "pages": [
          {
            "url": "https://aws.amazon.com/about-aws/whats-new/storage/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-08T18:15:27.68017359Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fbe351f2e1cc"
          },
          {
            "url": "https://aws.amazon.com/s3/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-08T18:15:37.781536186Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "97247e5882e9"
          },
          {
            "url": "https://b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/s3/USD/current/s3.json",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:15:30.89112569Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-09T10:42:35.38076625Z"
      }
    },
    "answer": "Amazon S3 scores 77.9 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 5 of 7 scored categories. Azure Blob Storage leads on reliability.",
    "b": {
      "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-09T10:42:36.950208357Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-09T07:40:20.163794763Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "DNS lookup failed"
            }
          ]
        },
        "updatedAt": "2026-10-09T10:42:36.950208357Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Amazon Web Services",
        "b": "Microsoft Corporation",
        "name": "Vendor"
      },
      {
        "a": "https://s3.us-east-1.amazonaws.com",
        "b": "https://\u003caccount\u003e.blob.core.windows.net",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Proprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "2026-10-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-18",
        "b": "2026-09-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3.7k stars, 44.8M npm/wk, 578.4M PyPI/wk",
        "b": "12.5M npm/wk, 22.6M PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.4/5 (8)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Amazon S3 scores 77.9 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 5 of 7 scored categories. Azure Blob Storage leads on reliability.",
        "question": "Which is better for AI agents, Amazon S3 or Azure Blob Storage?"
      },
      {
        "answer": "Amazon S3 needs an API key. Azure Blob Storage takes an API key or an OAuth sign-in.",
        "question": "Do Amazon S3 and Azure Blob Storage need an API key?"
      },
      {
        "answer": "Yes. Amazon S3 has a hosted endpoint at https://s3.us-east-1.amazonaws.com and Azure Blob Storage at https://\u003caccount\u003e.blob.core.windows.net.",
        "question": "Can an agent call Amazon S3 and Azure Blob Storage without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 92 against 85",
          "Security \u0026 auth, 88 against 81",
          "Payments \u0026 pricing, 30 against 20"
        ],
        "also": null,
        "goodFor": "Best when the rest of the stack is on AWS or the job needs versioning, Object Lock, replication or event notifications, and when an operator wants per-prefix, per-hour credentials for an agent.",
        "slug": "amazon-s3",
        "watchFor": "Egress to the internet is billed per GB after 100 GB a month"
      },
      {
        "aheadOn": [
          "Reliability, 88 against 80"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "storage.object",
      "name": "Storage object"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-box-api.json",
        "title": "Amazon S3 vs Box API + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-box-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-dropbox-api.json",
        "title": "Amazon S3 vs Dropbox API + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-dropbox-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-google-drive-api.json",
        "title": "Amazon S3 vs Google Drive API + MCP",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-google-drive-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.json",
        "title": "Amazon S3 vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint"
      },
      {
        "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/amazon-s3-vs-backblaze-b2.json",
        "title": "Amazon S3 vs Backblaze B2",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-backblaze-b2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage.json",
        "title": "Amazon S3 vs Bunny Storage",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-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-tigris.json",
        "title": "Amazon S3 vs Tigris",
        "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-tigris"
      },
      {
        "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-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-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/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": [
      {
        "amazon-s3": 80,
        "azure-blob-storage": 88,
        "by": 8,
        "edge": "azure-blob-storage",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-s3": 92,
        "azure-blob-storage": 85,
        "by": 7,
        "edge": "amazon-s3",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "amazon-s3": 83,
        "azure-blob-storage": 84,
        "by": 1,
        "edge": "azure-blob-storage",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "amazon-s3": 88,
        "azure-blob-storage": 81,
        "by": 7,
        "edge": "amazon-s3",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "amazon-s3": 30,
        "azure-blob-storage": 20,
        "by": 10,
        "edge": "amazon-s3",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-s3": 83,
        "azure-blob-storage": 80,
        "by": 3,
        "edge": "amazon-s3",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "amazon-s3": 81,
        "azure-blob-storage": 80,
        "by": 1,
        "edge": "amazon-s3",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Amazon S3 scores 77.9 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 5 of 7 scored categories. Azure Blob Storage leads on reliability. Both do storage object.",
    "verdicts": {
      "amazon-s3": "STS session credentials with session policies, so an agent can hold one prefix for an hour. Egress to the internet is billed per GB after 100 GB a month.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage",
    "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.md",
    "slim": "https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.min.md"
  },
  "markdown": "Amazon S3 scores 77.9 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 5 of 7 scored categories. Azure Blob Storage leads on reliability. Both do storage object.\n\n- Amazon S3: grade BB, 77.9/100, rank #15 of 842. Markdown https://www.anchorterminal.com/tools/amazon-s3.md · JSON https://www.anchorterminal.com/api/v1/tools/amazon-s3.json\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\n## Which one, for what\n\n### Amazon S3 (BB)\n\nGood for: Best when the rest of the stack is on AWS or the job needs versioning, Object Lock, replication or event notifications, and when an operator wants per-prefix, per-hour credentials for an agent.\n\nAhead on:\n- Schema \u0026 documentation, 92 against 85\n- Security \u0026 auth, 88 against 81\n- Payments \u0026 pricing, 30 against 20\n\nWatch for: Egress to the internet is billed per GB after 100 GB a month\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 80\n\nWatch for: Shared Key authorisation with the account's access keys is allowed until the owner sets `AllowSharedKeyAccess` to false\n\n\n## Score by category\n\n| Category | Weight | Amazon S3 | Azure Blob Storage | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 88 | Azure Blob Storage +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 85 | Amazon S3 +7 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 84 | Azure Blob Storage +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 88 | 81 | Amazon S3 +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Amazon S3 +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 80 | Amazon S3 +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 80 | Amazon S3 +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **77.9 · BB** | **75.7 · BB** | |\n\n## Facts side by side\n\n| Fact | Amazon S3 | Azure Blob Storage |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Amazon Web Services | Microsoft Corporation |\n| Hosted endpoint | `https://s3.us-east-1.amazonaws.com` | `https://\u003caccount\u003e.blob.core.windows.net` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | Apache-2.0 | Proprietary service under Microsoft's Product Terms. The Azure SDK client libraries are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-30 | 2026-09-30 |\n| Terms last updated | 2026-10-01 | no date given |\n| Privacy policy last updated | 2026-05-18 | 2026-09-01 |\n| Customer content may train models | yes, with an opt-out | yes |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 3.7k stars, 44.8M npm/wk, 578.4M PyPI/wk | 12.5M npm/wk, 22.6M PyPI/wk |\n| Agent reviews | 3.4/5 (8) | none |\n\n## Verdicts\n\n**Amazon S3.** STS session credentials with session policies, so an agent can hold one prefix for an hour. Egress to the internet is billed per GB after 100 GB a month.\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## Before you call either\n\n### Amazon S3\n\n1. Hold STS session credentials scoped by a session policy, never a long-lived IAM user key\n2. Sign presigned URLs with credentials that outlive the URL; a URL signed with a one-hour session token dies with the token\n3. Send If-None-Match with * on PutObject so a retry can't overwrite a file another call wrote\n4. Track the Free plan's end date on a new account; when the plan expires AWS suspends the account and access to the stored objects\n5. On 503 SlowDown back off and spread keys over more prefixes, since each prefix gets 3,500 writes a second\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## Questions\n\n### Which is better for AI agents, Amazon S3 or Azure Blob Storage?\n\nAmazon S3 scores 77.9 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 5 of 7 scored categories. Azure Blob Storage leads on reliability.\n\n### Do Amazon S3 and Azure Blob Storage need an API key?\n\nAmazon S3 needs an API key. Azure Blob Storage takes an API key or an OAuth sign-in.\n\n### Can an agent call Amazon S3 and Azure Blob Storage without installing anything?\n\nYes. Amazon S3 has a hosted endpoint at https://s3.us-east-1.amazonaws.com and Azure Blob Storage at https://\u003caccount\u003e.blob.core.windows.net.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.json, and with the fewest tokens: https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"amazon-s3\", \"b\": \"azure-blob-storage\"}`. From a terminal: `anchor compare amazon-s3 azure-blob-storage`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/amazon-s3.json and https://www.anchorterminal.com/api/v1/tools/azure-blob-storage.json\n\n## Other comparisons with Amazon S3 or Azure Blob Storage\n\n- [Amazon S3 vs Box API + MCP](https://www.anchorterminal.com/compare/amazon-s3-vs-box-api.md)\n- [Amazon S3 vs Dropbox API + MCP](https://www.anchorterminal.com/compare/amazon-s3-vs-dropbox-api.md)\n- [Amazon S3 vs Google Drive API + MCP](https://www.anchorterminal.com/compare/amazon-s3-vs-google-drive-api.md)\n- [Amazon S3 vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.md)\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- [Amazon S3 vs Backblaze B2](https://www.anchorterminal.com/compare/amazon-s3-vs-backblaze-b2.md)\n- [Amazon S3 vs Bunny Storage](https://www.anchorterminal.com/compare/amazon-s3-vs-bunny-storage.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- [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 Cloudflare R2](https://www.anchorterminal.com/compare/azure-blob-storage-vs-cloudflare-r2.md)\n- [Azure Blob Storage vs Tigris](https://www.anchorterminal.com/compare/azure-blob-storage-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": "Amazon S3 vs Azure Blob Storage",
        "url": ""
      }
    ],
    "description": "Amazon S3 scores 77.9 (BB) on agent readiness against Azure Blob Storage's 75.7 (BB), and leads in 5 of 7 scored categories. Azure Blob Storage leads on reliability. Both do storage object. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Amazon S3 BB 77.9",
      "Azure Blob Storage BB 75.7",
      "scores"
    ],
    "h1": "Amazon S3 vs Azure Blob Storage",
    "image": "https://www.anchorterminal.com/assets/og/compare-amazon-s3-vs-azure-blob-storage.png",
    "path": "/compare/amazon-s3-vs-azure-blob-storage",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Amazon S3 vs Azure Blob Storage for AI agents, BB 77.9 vs BB 75.7",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 630
  },
  "version": 1
}
