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