{
  "data": {
    "a": {
      "slug": "microsoft-excel-graph",
      "name": "Microsoft Excel (Microsoft Graph workbook API)",
      "vendor": "Microsoft",
      "vendorUrl": "https://learn.microsoft.com/en-us/graph/excel-concept-overview",
      "kind": "http-api",
      "category": "spreadsheets",
      "summary": "Workbook endpoints of Microsoft Graph for Excel files stored in OneDrive for work or school and SharePoint. Calls read and write ranges, tables, charts and named items, and run Excel worksheet functions on a file in place.",
      "url": "https://www.anchorterminal.com/tools/microsoft-excel-graph",
      "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-excel-graph.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-excel-graph.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-excel-graph.json",
      "repo": "https://github.com/microsoftgraph/msgraph-sdk-javascript",
      "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. The workbook reference pages list delegated permissions only, with Files.ReadWrite as least privileged, and mark application permissions as not supported. The overview page names Files.Read for read actions. A delegated token reaches every file its user can open.",
      "pricing": "byo-plan",
      "pricingNotes": "Workbook calls carry no per-call charge. Microsoft's list of metered Graph APIs names only SharePoint and OneDrive `assignSensitivityLabel`, at $0.00185 a call (https://learn.microsoft.com/en-us/graph/metered-api-list). Files must sit in OneDrive for work or school or SharePoint, which need a Microsoft 365 licence. The Microsoft 365 plan price page refused our reader on 2026-10-08. A free Microsoft 365 E5 developer sandbox is limited to Visual Studio subscribers and members of named partner programmes (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 workbook documentation or the metered API list (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 835,
        "npmWeekly": 2882852,
        "pypiWeekly": 1578201,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/graph/api/resources/excel",
      "openapi": "https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/master/openapi/v1.0/openapi.yaml",
      "capabilities": [
        "sheets.read",
        "sheets.write",
        "sheets.tables",
        "sheets.formulas"
      ],
      "tags": [
        "hosted",
        "official",
        "oauth",
        "openapi",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2025-09-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.5,
        "grade": "C",
        "agentReady": false,
        "rank": 450,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 53,
          "payments": 15,
          "reliability": 62,
          "schema": 85,
          "security": 65,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "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 8 October 2026 and the repository lists no published advisory. Exploiting it needs an attacker-influenced URL passed to the client, and it affects agents that call the workbook API through that client (https://github.com/microsoftgraph/msgraph-sdk-javascript/commit/5438ae90f50ef15d3656f0cf9c5485deee351f19, https://registry.npmjs.org/@microsoft/microsoft-graph-client/latest)"
        ],
        "verdict": "Ranges, tables, charts and 366 worksheet function endpoints are reachable over REST with a public OpenAPI, and a non-persistent session lets an agent test changes without saving them. The reference pages list delegated permissions only, with Files.ReadWrite as the least privileged scope, and writes take no idempotency key.",
        "bestFor": "Agents working on .xlsx files that already live in a Microsoft 365 tenant, and for using Excel's calculation engine through function endpoints.",
        "strengths": [
          "Non-persistent sessions (`persistChanges: false`) keep changes in a temporary copy, so an agent can calculate or test edits without saving",
          "The OpenAPI for Graph v1.0 holds 1,442 workbook paths and 1,765 operations, 366 of the paths for worksheet functions",
          "Error handling guide gives a retry instruction for each of 22 required second-level error codes",
          "Throttling limits are published at 5,000 requests per 10 seconds per app and 1,500 per app per tenant, with `Retry-After` on throttled responses",
          "Microsoft's policy is at least 24 months' notice before a generally available Graph API is removed"
        ],
        "weaknesses": [
          "Reference pages list delegated permissions only and mark application permissions as not supported",
          "Files.ReadWrite is the least privileged permission on the reference pages, even for reading a range or listing rows",
          "No idempotency key on writes. The row-add page says to repeat the request on a 504",
          "Cell values, formulas and number formats are untyped JSON in the OpenAPI",
          "The last Workbooks and charts changelog entry is dated 19 September 2025, and the overview page is dated March 2024"
        ],
        "agentNotes": [
          "Create a session with POST /workbook/createSession and send `workbook-session-id` on every call. Persistent sessions expire after about 5 minutes idle",
          "Set `persistChanges` to false when you only need a calculation or a chart image, so nothing is saved to the file",
          "Send one request at a time per workbook and wait for each response. Microsoft warns that parallel writes cause throttling, timeouts and merge conflicts",
          "Add rows in one call with a two-dimensional `values` array, and check the table before repeating a row add that returned 504",
          "Read bounded addresses such as A1:D500. A whole-column range such as C:C returns null for values, and writes to it are refused"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.5
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 53,
          "payments": 15,
          "reliability": 62,
          "schema": 85,
          "security": 65,
          "transparency": 65
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/worksheets \\\n  -H \"Authorization: Bearer $MS_GRAPH_TOKEN\" \\\n  -H \"workbook-session-id: $SESSION_ID\""
      },
      "letme": {
        "capability": "https://letme.dev/sheets.read",
        "tool": "https://letme.dev/microsoft-excel-graph"
      },
      "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-devops-mcp",
        "microsoft-learn-mcp",
        "playwright-mcp",
        "azure-mcp",
        "azure-maps",
        "azure-translator",
        "microsoft-graph-calendar",
        "microsoft-teams",
        "dynamics-365-sales",
        "power-automate",
        "microsoft-advertising-api",
        "outlook-mail-graph"
      ],
      "area": "business",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "The endpoint is on graph.microsoft.com. 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-08",
        "notes": [
          "www.microsoft.com/.well-known/security.txt still carries Expires 2026-09-23T16:00:00.000Z when read on 2026-10-08.",
          "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."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-excel-graph.json",
      "live": {
        "slug": "microsoft-excel-graph",
        "probe": {
          "target": "https://graph.microsoft.com/v1.0",
          "method": "get",
          "lastAt": "2026-10-09T01:12:51.460846311Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 10,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 11,
          "p95ms24h": 54,
          "samples24h": 106,
          "samples30d": 106,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 13,
              "ok": 13
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cloud.microsoft",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T15:36:56.168932402Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "microsoftgraph/msgraph-sdk-javascript",
            "version": "3.0.7",
            "released": "2023-09-19",
            "seenAt": "2026-10-08T16:20:40.005701271Z"
          },
          {
            "registry": "npm",
            "name": "@microsoft/microsoft-graph-client",
            "version": "3.0.7",
            "seenAt": "2026-10-08T16:20:38.997085198Z"
          },
          {
            "registry": "pypi",
            "name": "msgraph-sdk",
            "version": "1.64.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:20:39.875494563Z"
          }
        ],
        "githubStars": 835,
        "npmWeekly": 2882852,
        "pypiWeekly": 1578201,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-23T16:00:00.000Z",
          "checkedAt": "2026-10-08T15:39:08.216544687Z"
        },
        "pages": [
          {
            "url": "https://developer.microsoft.com/en-us/graph/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:14.635541799Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7bb1f9551c94"
          }
        ],
        "updatedAt": "2026-10-09T01:12:51.460846311Z"
      }
    },
    "answer": "Teable scores 61 (C) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 3 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust.",
    "b": {
      "slug": "teable",
      "name": "Teable",
      "vendor": "Teable AI, Inc.",
      "vendorUrl": "https://teable.ai",
      "kind": "http-api",
      "category": "spreadsheets",
      "summary": "Teable is an open-source table product on PostgreSQL with records, views, formulas and automations, sold as a hosted cloud and as software to self-host. Agents reach it through a REST API with scoped tokens or OAuth, and an official CLI.",
      "url": "https://www.anchorterminal.com/tools/teable",
      "markdownUrl": "https://www.anchorterminal.com/tools/teable.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/teable.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/teable.json",
      "repo": "https://github.com/teableio/teable",
      "license": "AGPL-3.0 with additional brand terms for the backend and web app, MIT for the packages directory. Enterprise functions and the `@teable/cli` package (ISC on npm) are built in a private repository",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://app.teable.ai/api",
      "packages": [
        {
          "registry": "npm",
          "name": "@teable/openapi"
        },
        {
          "registry": "npm",
          "name": "@teable/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve, with no app review found. A signed-in user creates a personal access token in settings, choosing an expiry that can't be changed later, the scopes, and the spaces and projects it can reach. The token is shown once. OAuth 2.0 apps are also created in settings and support the authorisation code grant with a client secret, PKCE for public clients and the device authorisation grant. Access tokens last 10 minutes and refresh tokens 30 days with rotation. Scopes take the form `resource|action`, such as `record|read` or `table|create`. Users and app owners can revoke access.",
      "pricing": "freemium",
      "pricingNotes": "Free cloud plan with 1,000 rows and 1 GB of attachments per space, so an agent can start without a contract. Pro is $13 and Business $20 a seat a month billed yearly, and the page shows $24 and $36 beside them, which we read as the monthly-billed prices. API calls aren't priced and the Web API is on every plan at 10 requests a second. There's no separate sandbox. The self-hosted community edition is free under AGPL-3.0 (checked 2026-10-08).",
      "priceSummary": "$13 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI file or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 21869,
        "npmWeekly": 179,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://help.teable.ai/en/api-doc/overview",
      "llmsTxt": "https://help.teable.ai/llms.txt",
      "openapi": "https://help.teable.ai/swagger.json",
      "capabilities": [
        "sheets.read",
        "sheets.write",
        "sheets.records",
        "sheets.tables",
        "sheets.formulas"
      ],
      "tags": [
        "official",
        "hosted",
        "self-hosted",
        "open-source",
        "free-tier",
        "oauth",
        "pat",
        "openapi",
        "llms-txt",
        "cli",
        "agent-skill",
        "status-page",
        "iso27001"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61,
        "grade": "C",
        "agentReady": false,
        "rank": 379,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 76,
          "payments": 30,
          "reliability": 72,
          "schema": 75,
          "security": 62,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "2 September 2026. Record lists moved to cursor pagination and stopped returning totals by default, and the changelog entry for that day tells API clients to request totals or use the count endpoint. No earlier notice was found (-3). https://help.teable.ai/en/changelog"
        ],
        "verdict": "Personal access tokens and OAuth tokens carry per-action scopes, and tokens can be limited to chosen spaces and projects. The public OpenAPI file covers 841 operations. Error responses beyond 200 and 201 are missing from that file, no idempotency keys were found, and the cloud allows 10 requests a second on every plan.",
        "bestFor": "Teams that want Airtable-style typed tables on PostgreSQL that they can also self-host, with an agent reading and writing records through tokens limited by scope and project, or through the vendor's CLI and skill.",
        "strengths": [
          "OAuth 2.0 with client secret, PKCE and device flows, 10-minute access tokens, rotating refresh tokens and scopes per action such as `record|read`",
          "Personal access tokens take an expiry, a set of scopes and a list of spaces and projects they can reach, and are shown once",
          "Public OpenAPI 3.0 file at help.teable.ai/swagger.json with 712 paths and 841 operations, each description naming the token scopes it needs",
          "List records takes `projection`, `take`, `skip`, `cursor`, `filter`, `search`, `orderBy` and `viewId`, so responses can be sized",
          "The help centre serves every page as Markdown, with an llms.txt index and an llms-full.txt file"
        ],
        "weaknesses": [
          "The OpenAPI file documents only 200 and 201 responses for nearly every operation, and the error page lists HTTP statuses without a table of error codes",
          "No idempotency key or upsert call was found for record writes, and Retry-After is documented only for the notifications endpoint",
          "Teable Cloud allows 10 API requests a second on every plan, Free to Business, with no higher tier published",
          "Audit logs are documented for self-hosted Business plans and above, and no SLA, DPA or sub-processor list was found",
          "`@teable/openapi`, the JavaScript client the docs use in examples, was last published on 15 September 2025"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003ctoken\u003e` to `https://app.teable.ai/api`. A 403 with code `restricted_resource` usually means a missing scope or a project outside the token's list",
          "Page records with `take` of 100 at most. Personal keys created on Teable Cloud since 10 September 2026 are capped at 100 a request",
          "Ask for totals from `/api/table/{tableId}/aggregation/row-count`. Record lists stopped returning them by default on 2 September 2026",
          "Keep to 10 requests a second, back off on 429, and check before retrying a failed write because no idempotency key exists",
          "Pass `fieldKeyType=id` so renamed fields don't break writes, and leave `typecast` off unless values need converting"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 76,
          "payments": 30,
          "reliability": 72,
          "schema": 75,
          "security": 62,
          "transparency": 58
        },
        "provenanceScore": 70
      },
      "connect": {
        "install": "npx skills add https://github.com/teableio/agent-skills",
        "http": "curl -H 'Authorization: Bearer __token__' \\\n  'https://app.teable.ai/api/table/__tableId__/record'"
      },
      "letme": {
        "capability": "https://letme.dev/sheets.read",
        "tool": "https://letme.dev/teable"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Pro (cloud)",
          "unit": "seat-month",
          "usd": 13,
          "note": "billed yearly, 250,000 rows and 10 GB per space, 2,000 AI credits a seat"
        },
        {
          "item": "Business (cloud)",
          "unit": "seat-month",
          "usd": 20,
          "note": "billed yearly, 1,000,000 rows and 100 GB per space, SSO and authority matrix"
        },
        {
          "item": "Automation add-on, 10,000 runs",
          "unit": "month",
          "usd": 10,
          "note": "per space, billed yearly, $12 billed monthly, Pro plan or above"
        }
      ],
      "provenance": {
        "legalEntity": "Teable AI, Inc.",
        "domain": "teable.ai",
        "domainRegistered": "2025-03-25",
        "endpointOnVendorDomain": true,
        "terms": "https://teable.ai/terms-of-service",
        "privacy": "https://teable.ai/privacy",
        "statusPage": "https://status.teable.ai",
        "changelog": "https://help.teable.ai/en/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service, last revised 2026-05-25, name Teable AI, Inc. with an address at 1111B S Governors Ave STE 48501, Dover, DE 19904. The repository's LICENSE names Teable, Inc.",
          "The terms define their subject as the website at teable.ai. They are the only terms found, and they cover accounts, user content, AI usage and termination, so they are recorded as the governing document. No separate service agreement, API terms or DPA was found.",
          "The privacy policy, last updated 1 October 2026, covers the websites, applications and related services, and has a section on self-hosted deployments.",
          "The API answers at app.teable.ai, a subdomain of the vendor's domain.",
          "teable.ai/.well-known/security.txt returns 404. SECURITY.md in the repository asks for reports through GitHub's private vulnerability reporting.",
          "RDAP for teable.ai gives a registration date of 2025-03-25."
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/teable.json",
      "live": {
        "slug": "teable",
        "probe": {
          "target": "https://app.teable.ai/api",
          "method": "get",
          "lastAt": "2026-10-09T01:12:58.799154116Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 555,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 530,
          "p95ms24h": 721,
          "samples24h": 63,
          "samples30d": 63,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 13,
              "ok": 13
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.teable.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:39:15.867543558Z"
        },
        "updatedAt": "2026-10-09T01:12:58.799154116Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Microsoft",
        "b": "Teable AI, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://graph.microsoft.com/v1.0",
        "b": "https://app.teable.ai/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (SDKs)",
        "b": "AGPL-3.0 with additional brand terms for the backend and web app, MIT for the packages directory. Enterprise functions and the `@teable/cli` package (ISC on npm) are built in a private repository",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2025-09-19",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2025-10-01",
        "b": "2026-05-25",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "835 stars, 2.9M npm/wk, 1.6M PyPI/wk",
        "b": "22k stars, 179 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Teable scores 61 (C) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 3 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Microsoft Excel (Microsoft Graph workbook API) or Teable?"
      },
      {
        "answer": "Microsoft Excel (Microsoft Graph workbook API) uses an OAuth sign-in. Teable takes an API key or an OAuth sign-in.",
        "question": "Do Microsoft Excel (Microsoft Graph workbook API) and Teable need an API key?"
      },
      {
        "answer": "Yes. Microsoft Excel (Microsoft Graph workbook API) has a hosted endpoint at https://graph.microsoft.com/v1.0 and Teable at https://app.teable.ai/api.",
        "question": "Can an agent call Microsoft Excel (Microsoft Graph workbook API) and Teable without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Microsoft Excel (Microsoft Graph workbook API). Teable is open source (AGPL-3.0 with additional brand terms for the backend and web app, MIT for the packages directory. Enterprise functions and the `@teable/cli` package (ISC on npm) are built in a private repository).",
        "question": "Are Microsoft Excel (Microsoft Graph workbook API) and Teable open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 85 against 75",
          "Agent ergonomics, 73 against 65",
          "Transparency \u0026 trust, 75 against 64"
        ],
        "also": null,
        "goodFor": "Agents working on .xlsx files that already live in a Microsoft 365 tenant, and for using Excel's calculation engine through function endpoints.",
        "slug": "microsoft-excel-graph",
        "watchFor": "Reference pages list delegated permissions only and mark application permissions as not supported"
      },
      {
        "aheadOn": [
          "Reliability, 72 against 62",
          "Payments \u0026 pricing, 30 against 15",
          "Maintenance \u0026 community, 76 against 53"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Teams that want Airtable-style typed tables on PostgreSQL that they can also self-host, with an agent reading and writing records through tokens limited by scope and project, or through the vendor's CLI and skill.",
        "slug": "teable",
        "watchFor": "The OpenAPI file documents only 200 and 201 responses for nearly every operation, and the error page lists HTTP statuses without a table of error codes"
      }
    ],
    "job": {
      "capability": "sheets.read",
      "name": "Sheets read"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/airtable-vs-microsoft-excel-graph.json",
        "title": "Airtable vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/airtable-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-microsoft-excel-graph.json",
        "title": "Baserow vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coda-vs-microsoft-excel-graph.json",
        "title": "Coda (Superhuman Docs) vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/coda-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coda-vs-teable.json",
        "title": "Coda (Superhuman Docs) vs Teable",
        "url": "https://www.anchorterminal.com/compare/coda-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-microsoft-excel-graph.json",
        "title": "Google Sheets API vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.json",
        "title": "Google Sheets API vs Teable",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grist-vs-microsoft-excel-graph.json",
        "title": "Grist vs Microsoft Excel (Microsoft Graph workbook API)",
        "url": "https://www.anchorterminal.com/compare/grist-vs-microsoft-excel-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-nocodb.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs NocoDB",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-nocodb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-smartsheet.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs Smartsheet API + MCP",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-smartsheet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/smartsheet-vs-teable.json",
        "title": "Smartsheet API + MCP vs Teable",
        "url": "https://www.anchorterminal.com/compare/smartsheet-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtable-vs-teable.json",
        "title": "Airtable vs Teable",
        "url": "https://www.anchorterminal.com/compare/airtable-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-teable.json",
        "title": "Baserow vs Teable",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grist-vs-teable.json",
        "title": "Grist vs Teable",
        "url": "https://www.anchorterminal.com/compare/grist-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nocodb-vs-teable.json",
        "title": "NocoDB vs Teable",
        "url": "https://www.anchorterminal.com/compare/nocodb-vs-teable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/seatable-vs-teable.json",
        "title": "SeaTable vs Teable",
        "url": "https://www.anchorterminal.com/compare/seatable-vs-teable"
      }
    ],
    "scores": [
      {
        "by": 10,
        "edge": "teable",
        "key": "reliability",
        "microsoft-excel-graph": 62,
        "name": "Reliability",
        "teable": 72,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "microsoft-excel-graph",
        "key": "schema",
        "microsoft-excel-graph": 85,
        "name": "Schema \u0026 documentation",
        "teable": 75,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "microsoft-excel-graph",
        "key": "ergonomics",
        "microsoft-excel-graph": 73,
        "name": "Agent ergonomics",
        "teable": 65,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "microsoft-excel-graph",
        "key": "security",
        "microsoft-excel-graph": 65,
        "name": "Security \u0026 auth",
        "teable": 62,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "teable",
        "key": "payments",
        "microsoft-excel-graph": 15,
        "name": "Payments \u0026 pricing",
        "teable": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 23,
        "edge": "teable",
        "key": "maintenance",
        "microsoft-excel-graph": 53,
        "name": "Maintenance \u0026 community",
        "teable": 76,
        "weight": 7
      },
      {
        "by": 11,
        "edge": "microsoft-excel-graph",
        "key": "transparency",
        "microsoft-excel-graph": 75,
        "name": "Transparency \u0026 trust",
        "teable": 64,
        "weight": 7
      }
    ],
    "summary": "Teable scores 61 (C) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 3 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust. Both do sheets read.",
    "verdicts": {
      "microsoft-excel-graph": "Ranges, tables, charts and 366 worksheet function endpoints are reachable over REST with a public OpenAPI, and a non-persistent session lets an agent test changes without saving them. The reference pages list delegated permissions only, with Files.ReadWrite as the least privileged scope, and writes take no idempotency key.",
      "teable": "Personal access tokens and OAuth tokens carry per-action scopes, and tokens can be limited to chosen spaces and projects. The public OpenAPI file covers 841 operations. Error responses beyond 200 and 201 are missing from that file, no idempotency keys were found, and the cloud allows 10 requests a second on every plan."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable",
    "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.md",
    "slim": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.min.md"
  },
  "markdown": "Teable scores 61 (C) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 3 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust. Both do sheets read.\n\n- Microsoft Excel (Microsoft Graph workbook API): grade C, 58.5/100, rank #450 of 722. Markdown https://www.anchorterminal.com/tools/microsoft-excel-graph.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-excel-graph.json\n- Teable: grade C, 61/100, rank #379 of 722. Markdown https://www.anchorterminal.com/tools/teable.md · JSON https://www.anchorterminal.com/api/v1/tools/teable.json\n\n## Which one, for what\n\n### Microsoft Excel (Microsoft Graph workbook API) (C)\n\nGood for: Agents working on .xlsx files that already live in a Microsoft 365 tenant, and for using Excel's calculation engine through function endpoints.\n\nAhead on:\n- Schema \u0026 documentation, 85 against 75\n- Agent ergonomics, 73 against 65\n- Transparency \u0026 trust, 75 against 64\n\nWatch for: Reference pages list delegated permissions only and mark application permissions as not supported\n\n### Teable (C)\n\nGood for: Teams that want Airtable-style typed tables on PostgreSQL that they can also self-host, with an agent reading and writing records through tokens limited by scope and project, or through the vendor's CLI and skill.\n\nAhead on:\n- Reliability, 72 against 62\n- Payments \u0026 pricing, 30 against 15\n- Maintenance \u0026 community, 76 against 53\n\nAlso in its favour:\n- Open source\n\nWatch for: The OpenAPI file documents only 200 and 201 responses for nearly every operation, and the error page lists HTTP statuses without a table of error codes\n\n\n## Score by category\n\n| Category | Weight | Microsoft Excel (Microsoft Graph workbook API) | Teable | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 62 | 72 | Teable +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 75 | Microsoft Excel (Microsoft Graph workbook API) +10 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 65 | Microsoft Excel (Microsoft Graph workbook API) +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 65 | 62 | Microsoft Excel (Microsoft Graph workbook API) +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 30 | Teable +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 53 | 76 | Teable +23 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 64 | Microsoft Excel (Microsoft Graph workbook API) +11 |\n| Negative events | ≤15 | -4 | -3 | |\n| **Total** | | **58.5 · C** | **61 · C** | |\n\n## Facts side by side\n\n| Fact | Microsoft Excel (Microsoft Graph workbook API) | Teable |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Microsoft | Teable AI, Inc. |\n| Hosted endpoint | `https://graph.microsoft.com/v1.0` | `https://app.teable.ai/api` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Your plan | Freemium |\n| x402 | no | no |\n| Licence | MIT (SDKs) | AGPL-3.0 with additional brand terms for the backend and web app, MIT for the packages directory. Enterprise functions and the `@teable/cli` package (ISC on npm) are built in a private repository |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2025-09-19 | 2026-10-06 |\n| Terms last updated | 2025-10-01 | 2026-05-25 |\n| Privacy policy last updated | 2026-09-01 | 2026-10-01 |\n| Customer content may train models | yes | not found in the text |\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 | yes |\n| Popularity | 835 stars, 2.9M npm/wk, 1.6M PyPI/wk | 22k stars, 179 npm/wk |\n\n## Verdicts\n\n**Microsoft Excel (Microsoft Graph workbook API).** Ranges, tables, charts and 366 worksheet function endpoints are reachable over REST with a public OpenAPI, and a non-persistent session lets an agent test changes without saving them. The reference pages list delegated permissions only, with Files.ReadWrite as the least privileged scope, and writes take no idempotency key.\n\n**Teable.** Personal access tokens and OAuth tokens carry per-action scopes, and tokens can be limited to chosen spaces and projects. The public OpenAPI file covers 841 operations. Error responses beyond 200 and 201 are missing from that file, no idempotency keys were found, and the cloud allows 10 requests a second on every plan.\n\n## Before you call either\n\n### Microsoft Excel (Microsoft Graph workbook API)\n\n1. Create a session with POST /workbook/createSession and send `workbook-session-id` on every call. Persistent sessions expire after about 5 minutes idle\n2. Set `persistChanges` to false when you only need a calculation or a chart image, so nothing is saved to the file\n3. Send one request at a time per workbook and wait for each response. Microsoft warns that parallel writes cause throttling, timeouts and merge conflicts\n4. Add rows in one call with a two-dimensional `values` array, and check the table before repeating a row add that returned 504\n5. Read bounded addresses such as A1:D500. A whole-column range such as C:C returns null for values, and writes to it are refused\n\n### Teable\n\n1. Send `Authorization: Bearer \u003ctoken\u003e` to `https://app.teable.ai/api`. A 403 with code `restricted_resource` usually means a missing scope or a project outside the token's list\n2. Page records with `take` of 100 at most. Personal keys created on Teable Cloud since 10 September 2026 are capped at 100 a request\n3. Ask for totals from `/api/table/{tableId}/aggregation/row-count`. Record lists stopped returning them by default on 2 September 2026\n4. Keep to 10 requests a second, back off on 429, and check before retrying a failed write because no idempotency key exists\n5. Pass `fieldKeyType=id` so renamed fields don't break writes, and leave `typecast` off unless values need converting\n\n## Questions\n\n### Which is better for AI agents, Microsoft Excel (Microsoft Graph workbook API) or Teable?\n\nTeable scores 61 (C) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 3 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust.\n\n### Do Microsoft Excel (Microsoft Graph workbook API) and Teable need an API key?\n\nMicrosoft Excel (Microsoft Graph workbook API) uses an OAuth sign-in. Teable takes an API key or an OAuth sign-in.\n\n### Can an agent call Microsoft Excel (Microsoft Graph workbook API) and Teable without installing anything?\n\nYes. Microsoft Excel (Microsoft Graph workbook API) has a hosted endpoint at https://graph.microsoft.com/v1.0 and Teable at https://app.teable.ai/api.\n\n### Are Microsoft Excel (Microsoft Graph workbook API) and Teable open source?\n\nNo open-source release is listed for Microsoft Excel (Microsoft Graph workbook API). Teable is open source (AGPL-3.0 with additional brand terms for the backend and web app, MIT for the packages directory. Enterprise functions and the `@teable/cli` package (ISC on npm) are built in a private repository).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.json, and with the fewest tokens: https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"microsoft-excel-graph\", \"b\": \"teable\"}`. From a terminal: `anchor compare microsoft-excel-graph teable`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/microsoft-excel-graph.json and https://www.anchorterminal.com/api/v1/tools/teable.json\n\n## Other comparisons with Microsoft Excel (Microsoft Graph workbook API) or Teable\n\n- [Airtable vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/airtable-vs-microsoft-excel-graph.md)\n- [Baserow vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/baserow-vs-microsoft-excel-graph.md)\n- [Coda (Superhuman Docs) vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/coda-vs-microsoft-excel-graph.md)\n- [Coda (Superhuman Docs) vs Teable](https://www.anchorterminal.com/compare/coda-vs-teable.md)\n- [Google Sheets API vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/google-sheets-api-vs-microsoft-excel-graph.md)\n- [Google Sheets API vs Teable](https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.md)\n- [Grist vs Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/compare/grist-vs-microsoft-excel-graph.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs NocoDB](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-nocodb.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs SeaTable](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-seatable.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs Smartsheet API + MCP](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-smartsheet.md)\n- [Smartsheet API + MCP vs Teable](https://www.anchorterminal.com/compare/smartsheet-vs-teable.md)\n- [Airtable vs Teable](https://www.anchorterminal.com/compare/airtable-vs-teable.md)\n- [Baserow vs Teable](https://www.anchorterminal.com/compare/baserow-vs-teable.md)\n- [Grist vs Teable](https://www.anchorterminal.com/compare/grist-vs-teable.md)\n- [NocoDB vs Teable](https://www.anchorterminal.com/compare/nocodb-vs-teable.md)\n- [SeaTable vs Teable](https://www.anchorterminal.com/compare/seatable-vs-teable.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": "Microsoft Excel (Microsoft Graph workbook API) vs Teable",
        "url": ""
      }
    ],
    "description": "Teable scores 61 (C) on agent readiness against Microsoft Excel (Microsoft Graph workbook API)'s 58.5 (C), and leads in 3 of 7 scored categories. Microsoft Excel (Microsoft Graph workbook API) leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust. Both do…",
    "facts": [
      "Microsoft Excel (Microsoft Graph workbook API) C 58.5",
      "Teable C 61",
      "scores"
    ],
    "h1": "Microsoft Excel (Microsoft Graph workbook API) vs Teable",
    "image": "https://www.anchorterminal.com/assets/og/compare-microsoft-excel-graph-vs-teable.png",
    "path": "/compare/microsoft-excel-graph-vs-teable",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Microsoft Excel (Microsoft Graph workbook API) vs Teable for AI agents",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 730
  },
  "version": 1
}
