{
  "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-09T11:46:21.274098399Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 415,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 410,
          "p95ms24h": 507,
          "samples24h": 259,
          "samples30d": 2109,
          "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": 125,
              "ok": 125
            }
          ]
        },
        "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-09T11:46:21.274098399Z"
      }
    },
    "answer": "Amazon S3 scores 77.9 (BB) on agent readiness against OneDrive and SharePoint files (Microsoft Graph)'s 65.3 (B), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "onedrive-sharepoint",
      "name": "OneDrive and SharePoint files (Microsoft Graph)",
      "vendor": "Microsoft",
      "vendorUrl": "https://learn.microsoft.com/en-us/graph/onedrive-concept-overview",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "Drive and driveItem endpoints of Microsoft Graph for files in OneDrive, OneDrive for work or school and SharePoint document libraries. Calls upload, download, list, search, share by link or invitation, and delete files and folders.",
      "url": "https://www.anchorterminal.com/tools/onedrive-sharepoint",
      "markdownUrl": "https://www.anchorterminal.com/tools/onedrive-sharepoint.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/onedrive-sharepoint.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/onedrive-sharepoint.json",
      "repo": "https://github.com/microsoftgraph/msgraph-sdk-python",
      "license": "MIT (SDKs)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://graph.microsoft.com/v1.0",
      "packages": [
        {
          "registry": "npm",
          "name": "@microsoft/microsoft-graph-client"
        },
        {
          "registry": "pypi",
          "name": "msgraph-sdk"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 tokens from Microsoft Entra ID, after a person registers an app. Registration is self-serve, with no partner or sales approval. Delegated permissions run from Files.Read to Files.ReadWrite.All and work for personal Microsoft accounts and work or school accounts. Application permissions (Files.Read.All, Files.ReadWrite.All, Sites.ReadWrite.All) need an administrator's consent. Selected scopes limit an app to chosen sites, lists, folders or files.",
      "pricing": "byo-plan",
      "pricingNotes": "File calls carry no per-call charge. Microsoft's list of metered Graph APIs names only `assignSensitivityLabel`, at $0.00185 a call (https://learn.microsoft.com/en-us/graph/metered-api-list). Storage comes from the account's own OneDrive or Microsoft 365 plan, 1 TB a user on the Business and E3 or E5 plans per the service description. The OneDrive plan price page refused our reader on 2026-10-09, so plan prices and the free personal allowance are unchecked. A free Microsoft 365 E5 developer sandbox is limited to Visual Studio subscribers and other qualifying members (https://learn.microsoft.com/en-us/office/developer-program/microsoft-365-developer-program-faq).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the files documentation or the metered API list (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 633,
        "npmWeekly": 2882852,
        "pypiWeekly": 1578201,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/graph/api/resources/onedrive",
      "openapi": "https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/master/openapi/v1.0/openapi.yaml",
      "capabilities": [
        "storage.drive",
        "storage.share",
        "storage.presigned"
      ],
      "tags": [
        "hosted",
        "official",
        "oauth",
        "openapi",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.3,
        "grade": "B",
        "agentReady": false,
        "rank": 296,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 75,
          "payments": 20,
          "reliability": 64,
          "schema": 89,
          "security": 73,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-06-16: a fix for a token leak through URL userinfo host confusion was merged into msgraph-sdk-javascript and the version set to 3.0.8, but npm still served 3.0.7 on 9 October 2026 and the repository's changelog doesn't mention it. Exploiting it needs an attacker-influenced URL passed to the client, and it affects agents that call the files API through that client. The Excel and Outlook listings took the same 4 points (https://github.com/microsoftgraph/msgraph-sdk-javascript/commit/5438ae90f50ef15d3656f0cf9c5485deee351f19, https://registry.npmjs.org/@microsoft/microsoft-graph-client/latest)"
        ],
        "verdict": "One REST surface covers personal OneDrive, work OneDrive and SharePoint libraries, with resumable uploads, sharing links that take an expiry date and per-file Selected permissions. The status page needs JavaScript, an app must be registered and consented to by a person, and the JavaScript client on npm lacks a token-leak fix merged in June 2026.",
        "bestFor": "Agents working on files that already live in a Microsoft 365 tenant or a personal OneDrive, where sharing has to follow the tenant's own policy.",
        "strengths": [
          "Upload sessions resume after a dropped connection, report `nextExpectedRanges`, and accept `If-Match` and `@microsoft.graph.conflictBehavior` (fail by default)",
          "`createLink` takes `expirationDateTime` and a scope of `anonymous`, `organization` or `users`, and returns the existing link when one of that type exists",
          "Selected scopes limit an application to chosen sites, lists, folders or files, each with a read, write, owner or fullcontrol role",
          "SharePoint publishes throttling numbers, with 1,250 to 6,250 resource units a minute per app per tenant and a stated cost of 1, 2 or 5 units a request",
          "DELETE moves an item to the recycle bin, and permanent removal is a separate `permanentDelete` call"
        ],
        "weaknesses": [
          "Link and scope types are plain strings in the OpenAPI, and path addressing such as `/root:/folder/file.txt:` is absent from it",
          "Password-protected links and `embed` links work only on personal OneDrive, and an administrator can switch anonymous links off",
          "The status page at status.cloud.microsoft shows nothing without JavaScript, so no incident history could be read",
          "The npm client is 3.0.7 from September 2023. A token-leak fix merged on 16 June 2026 set the version to 3.0.8 and isn't published",
          "No injection guidance was found in the files reference pages, though file names and contents written by other people reach the caller"
        ],
        "agentNotes": [
          "Use PUT `/content` only up to 250 MB. Above 10 MiB Microsoft advises `createUploadSession`, with fragments in multiples of 320 KiB and under 60 MiB each",
          "Send the bearer token on the `createUploadSession` POST only. The PUT calls to `uploadUrl` can return 401 if an `Authorization` header is included",
          "Set `expirationDateTime` and `scope` on `createLink`. Without a scope the tenant's default link type is created, which may be wider than intended",
          "Follow the 302 from GET `/content` straight away. Pre-authenticated download URLs can expire within minutes and need no `Authorization` header",
          "Wait for `Retry-After` on 429 and 503. Throttled requests still count against the limits, and continued overuse can get the app blocked"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.3
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 75,
          "payments": 20,
          "reliability": 64,
          "schema": 89,
          "security": 73,
          "transparency": 65
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl \"https://graph.microsoft.com/v1.0/me/drive/root/children?\\$select=id,name,size\u0026\\$top=50\" \\\n  -H \"Authorization: Bearer $MS_GRAPH_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/storage.drive",
        "tool": "https://letme.dev/onedrive-sharepoint"
      },
      "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",
        "azure-blob-storage",
        "microsoft-teams",
        "dynamics-365-sales",
        "power-automate",
        "foundry-local",
        "microsoft-advertising-api",
        "microsoft-excel-graph",
        "outlook-mail-graph"
      ],
      "area": "everyday",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "The endpoint is on graph.microsoft.com. Upload and download URLs are issued on other Microsoft hosts. microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": true,
        "terms": "https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use",
        "privacy": "https://privacy.microsoft.com/en-us/privacystatement",
        "statusPage": "https://status.cloud.microsoft",
        "changelog": "https://developer.microsoft.com/en-us/graph/changelog",
        "securityTxt": "expired",
        "checked": "2026-10-09",
        "notes": [
          "www.microsoft.com/.well-known/security.txt still carries Expires 2026-09-23T16:00:00.000Z when read on 2026-10-09.",
          "The Microsoft service health page at status.cloud.microsoft needs JavaScript to show anything.",
          "The Microsoft APIs terms of use name Microsoft Corporation and were last updated in October 2025.",
          "The Microsoft privacy statement was last updated in September 2026.",
          "RDAP for microsoft.com gives a registration date of 1991-05-02.",
          "The Graph changelog feed's newest entry is dated 3 August 2026. The What's new page, updated 8 October 2026, lists later changes."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/onedrive-sharepoint.json",
      "live": {
        "slug": "onedrive-sharepoint",
        "probe": {
          "target": "https://graph.microsoft.com/v1.0",
          "method": "get",
          "lastAt": "2026-10-09T11:46:35.887836294Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 5,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 5,
          "p95ms24h": 18,
          "samples24h": 44,
          "samples30d": 44,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 44,
              "ok": 44
            }
          ]
        },
        "updatedAt": "2026-10-09T11:46:35.887836294Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Amazon Web Services",
        "b": "Microsoft",
        "name": "Vendor"
      },
      {
        "a": "https://s3.us-east-1.amazonaws.com",
        "b": "https://graph.microsoft.com/v1.0",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Your plan",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "MIT (SDKs)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-30",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2026-10-01",
        "b": "2025-10-01",
        "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": "yes",
        "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": "633 stars, 2.9M npm/wk, 1.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 OneDrive and SharePoint files (Microsoft Graph)'s 65.3 (B), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Amazon S3 or OneDrive and SharePoint files (Microsoft Graph)?"
      },
      {
        "answer": "Amazon S3 needs an API key. OneDrive and SharePoint files (Microsoft Graph) uses an OAuth sign-in.",
        "question": "Do Amazon S3 and OneDrive and SharePoint files (Microsoft Graph) need an API key?"
      },
      {
        "answer": "Yes. Amazon S3 has a hosted endpoint at https://s3.us-east-1.amazonaws.com and OneDrive and SharePoint files (Microsoft Graph) at https://graph.microsoft.com/v1.0.",
        "question": "Can an agent call Amazon S3 and OneDrive and SharePoint files (Microsoft Graph) without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 64",
          "Security \u0026 auth, 88 against 73",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 83 against 75",
          "Transparency \u0026 trust, 81 against 75"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No incidents deducted, where OneDrive and SharePoint files (Microsoft Graph) loses 4 points for them"
        ],
        "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": null,
        "also": null,
        "goodFor": "Agents working on files that already live in a Microsoft 365 tenant or a personal OneDrive, where sharing has to follow the tenant's own policy.",
        "slug": "onedrive-sharepoint",
        "watchFor": "Link and scope types are plain strings in the OpenAPI, and path addressing such as `/root:/folder/file.txt:` is absent from it"
      }
    ],
    "job": {
      "capability": "storage.share",
      "name": "Storage share"
    },
    "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/backblaze-b2-vs-onedrive-sharepoint.json",
        "title": "Backblaze B2 vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/backblaze-b2-vs-onedrive-sharepoint"
      },
      {
        "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/onedrive-sharepoint-vs-tigris.json",
        "title": "OneDrive and SharePoint files (Microsoft Graph) vs Tigris",
        "url": "https://www.anchorterminal.com/compare/onedrive-sharepoint-vs-tigris"
      },
      {
        "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-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/box-api-vs-onedrive-sharepoint.json",
        "title": "Box API + MCP vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/box-api-vs-onedrive-sharepoint"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dropbox-api-vs-onedrive-sharepoint.json",
        "title": "Dropbox API + MCP vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/dropbox-api-vs-onedrive-sharepoint"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-drive-api-vs-onedrive-sharepoint.json",
        "title": "Google Drive API + MCP vs OneDrive and SharePoint files (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/google-drive-api-vs-onedrive-sharepoint"
      },
      {
        "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,
        "by": 16,
        "edge": "amazon-s3",
        "key": "reliability",
        "name": "Reliability",
        "onedrive-sharepoint": 64,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-s3": 92,
        "by": 3,
        "edge": "amazon-s3",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "onedrive-sharepoint": 89,
        "weight": 13
      },
      {
        "amazon-s3": 83,
        "by": 1,
        "edge": "onedrive-sharepoint",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "onedrive-sharepoint": 84,
        "weight": 13
      },
      {
        "amazon-s3": 88,
        "by": 15,
        "edge": "amazon-s3",
        "key": "security",
        "name": "Security \u0026 auth",
        "onedrive-sharepoint": 73,
        "weight": 14
      },
      {
        "amazon-s3": 30,
        "by": 10,
        "edge": "amazon-s3",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "onedrive-sharepoint": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-s3": 83,
        "by": 8,
        "edge": "amazon-s3",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "onedrive-sharepoint": 75,
        "weight": 7
      },
      {
        "amazon-s3": 81,
        "by": 6,
        "edge": "amazon-s3",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "onedrive-sharepoint": 75,
        "weight": 7
      }
    ],
    "summary": "Amazon S3 scores 77.9 (BB) on agent readiness against OneDrive and SharePoint files (Microsoft Graph)'s 65.3 (B), and leads in 6 of 7 scored categories. Both do storage share.",
    "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.",
      "onedrive-sharepoint": "One REST surface covers personal OneDrive, work OneDrive and SharePoint libraries, with resumable uploads, sharing links that take an expiry date and per-file Selected permissions. The status page needs JavaScript, an app must be registered and consented to by a person, and the JavaScript client on npm lacks a token-leak fix merged in June 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint",
    "json": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.md",
    "slim": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.min.md"
  },
  "markdown": "Amazon S3 scores 77.9 (BB) on agent readiness against OneDrive and SharePoint files (Microsoft Graph)'s 65.3 (B), and leads in 6 of 7 scored categories. Both do storage share.\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- OneDrive and SharePoint files (Microsoft Graph): grade B, 65.3/100, rank #296 of 842. Markdown https://www.anchorterminal.com/tools/onedrive-sharepoint.md · JSON https://www.anchorterminal.com/api/v1/tools/onedrive-sharepoint.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- Reliability, 80 against 64\n- Security \u0026 auth, 88 against 73\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 83 against 75\n- Transparency \u0026 trust, 81 against 75\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No incidents deducted, where OneDrive and SharePoint files (Microsoft Graph) loses 4 points for them\n\nWatch for: Egress to the internet is billed per GB after 100 GB a month\n\n### OneDrive and SharePoint files (Microsoft Graph) (B)\n\nGood for: Agents working on files that already live in a Microsoft 365 tenant or a personal OneDrive, where sharing has to follow the tenant's own policy.\n\nWatch for: Link and scope types are plain strings in the OpenAPI, and path addressing such as `/root:/folder/file.txt:` is absent from it\n\n\n## Score by category\n\n| Category | Weight | Amazon S3 | OneDrive and SharePoint files (Microsoft Graph) | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 64 | Amazon S3 +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 89 | Amazon S3 +3 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 84 | OneDrive and SharePoint files (Microsoft Graph) +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 88 | 73 | Amazon S3 +15 |\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 | 75 | Amazon S3 +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 75 | Amazon S3 +6 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **77.9 · BB** | **65.3 · B** | |\n\n## Facts side by side\n\n| Fact | Amazon S3 | OneDrive and SharePoint files (Microsoft Graph) |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Amazon Web Services | Microsoft |\n| Hosted endpoint | `https://s3.us-east-1.amazonaws.com` | `https://graph.microsoft.com/v1.0` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth |\n| Pricing | Pay per use | Your plan |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT (SDKs) |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-30 | 2026-10-06 |\n| Terms last updated | 2026-10-01 | 2025-10-01 |\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 | yes |\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 | 633 stars, 2.9M npm/wk, 1.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**OneDrive and SharePoint files (Microsoft Graph).** One REST surface covers personal OneDrive, work OneDrive and SharePoint libraries, with resumable uploads, sharing links that take an expiry date and per-file Selected permissions. The status page needs JavaScript, an app must be registered and consented to by a person, and the JavaScript client on npm lacks a token-leak fix merged in June 2026.\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### OneDrive and SharePoint files (Microsoft Graph)\n\n1. Use PUT `/content` only up to 250 MB. Above 10 MiB Microsoft advises `createUploadSession`, with fragments in multiples of 320 KiB and under 60 MiB each\n2. Send the bearer token on the `createUploadSession` POST only. The PUT calls to `uploadUrl` can return 401 if an `Authorization` header is included\n3. Set `expirationDateTime` and `scope` on `createLink`. Without a scope the tenant's default link type is created, which may be wider than intended\n4. Follow the 302 from GET `/content` straight away. Pre-authenticated download URLs can expire within minutes and need no `Authorization` header\n5. Wait for `Retry-After` on 429 and 503. Throttled requests still count against the limits, and continued overuse can get the app blocked\n\n## Questions\n\n### Which is better for AI agents, Amazon S3 or OneDrive and SharePoint files (Microsoft Graph)?\n\nAmazon S3 scores 77.9 (BB) on agent readiness against OneDrive and SharePoint files (Microsoft Graph)'s 65.3 (B), and leads in 6 of 7 scored categories.\n\n### Do Amazon S3 and OneDrive and SharePoint files (Microsoft Graph) need an API key?\n\nAmazon S3 needs an API key. OneDrive and SharePoint files (Microsoft Graph) uses an OAuth sign-in.\n\n### Can an agent call Amazon S3 and OneDrive and SharePoint files (Microsoft Graph) without installing anything?\n\nYes. Amazon S3 has a hosted endpoint at https://s3.us-east-1.amazonaws.com and OneDrive and SharePoint files (Microsoft Graph) at https://graph.microsoft.com/v1.0.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.json, and with the fewest tokens: https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"amazon-s3\", \"b\": \"onedrive-sharepoint\"}`. From a terminal: `anchor compare amazon-s3 onedrive-sharepoint`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/amazon-s3.json and https://www.anchorterminal.com/api/v1/tools/onedrive-sharepoint.json\n\n## Other comparisons with Amazon S3 or OneDrive and SharePoint files (Microsoft Graph)\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- [Backblaze B2 vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/backblaze-b2-vs-onedrive-sharepoint.md)\n- [Cloudflare R2 vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/cloudflare-r2-vs-onedrive-sharepoint.md)\n- [OneDrive and SharePoint files (Microsoft Graph) vs Tigris](https://www.anchorterminal.com/compare/onedrive-sharepoint-vs-tigris.md)\n- [Amazon S3 vs Azure Blob Storage](https://www.anchorterminal.com/compare/amazon-s3-vs-azure-blob-storage.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- [Box API + MCP vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/box-api-vs-onedrive-sharepoint.md)\n- [Dropbox API + MCP vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/dropbox-api-vs-onedrive-sharepoint.md)\n- [Google Drive API + MCP vs OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/compare/google-drive-api-vs-onedrive-sharepoint.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 OneDrive and SharePoint files (Microsoft Graph)",
        "url": ""
      }
    ],
    "description": "Amazon S3 scores 77.9 (BB) on agent readiness against OneDrive and SharePoint files (Microsoft Graph)'s 65.3 (B), and leads in 6 of 7 scored categories. Both do storage share. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Amazon S3 BB 77.9",
      "OneDrive and SharePoint files (Microsoft Graph) B 65.3",
      "scores"
    ],
    "h1": "Amazon S3 vs OneDrive and SharePoint files (Microsoft Graph)",
    "image": "https://www.anchorterminal.com/assets/og/compare-amazon-s3-vs-onedrive-sharepoint.png",
    "path": "/compare/amazon-s3-vs-onedrive-sharepoint",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Amazon S3 vs OneDrive and SharePoint files (Microsoft Graph)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/amazon-s3-vs-onedrive-sharepoint"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 680
  },
  "version": 1
}
