{
  "data": {
    "a": {
      "slug": "google-sheets-api",
      "name": "Google Sheets API",
      "vendor": "Google",
      "vendorUrl": "https://developers.google.com/workspace/sheets",
      "kind": "http-api",
      "category": "spreadsheets",
      "summary": "REST API from Google for reading and writing Google Sheets spreadsheets, covering cell values, ranges, formulas, formatting, tables and comments. Access is by OAuth 2.0, and a six-tool MCP server is in Developer Preview.",
      "url": "https://www.anchorterminal.com/tools/google-sheets-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/google-sheets-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/google-sheets-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/google-sheets-api.json",
      "repo": "https://github.com/googleapis/google-api-nodejs-client",
      "license": "Proprietary service under the Google APIs Terms of Service. The client libraries are Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://sheets.googleapis.com/v4",
      "packages": [
        {
          "registry": "npm",
          "name": "@googleapis/sheets"
        },
        {
          "registry": "pypi",
          "name": "google-api-python-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0, set up by a person in a Google Cloud project with a consent screen. No partner or sales approval. drive.file is non-sensitive and covers only files the user opens with the app. spreadsheets and spreadsheets.readonly are sensitive and need extra verification for a public app, and drive and drive.readonly are restricted. Scopes apply to a whole spreadsheet file, not one sheet. Service accounts work, and their calls count as one user for quota. An API key reads only files shared with anyone who has the link. The MCP server also needs sheetsmcp.googleapis.com enabled, your own OAuth client and Developer Preview Programme membership.",
      "pricing": "free",
      "pricingNotes": "Standard use of the Sheets API has no additional cost, and a free Google account can start without a card or contract. Quotas are 300 reads and 300 writes a minute per project and 60 each per user, with no daily limit. Google says exceeding the quota request limits is planned to incur charges to the Cloud billing account later in 2026, with no price published and 90 days' notice promised. There is no separate sandbox; a test spreadsheet in any account does that job (https://developers.google.com/workspace/sheets/api/limits; https://developers.google.com/workspace/tools-safety).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Sheets API docs, the limits page or the discovery document (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": 12262,
        "npmWeekly": 1859932,
        "pypiWeekly": 31750331,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.google.com/workspace/sheets/api/guides/concepts",
      "capabilities": [
        "sheets.read",
        "sheets.write",
        "sheets.formulas",
        "sheets.tables"
      ],
      "tags": [
        "hosted",
        "official",
        "free-tier",
        "mcp",
        "oauth",
        "typescript",
        "python",
        "enterprise",
        "status-page"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 33,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 83,
          "security": 80,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Batch updates apply atomically and count as one request, and the drive.file scope limits an app to files the user picks. Quotas are 300 reads and 300 writes a minute per project, reads are by range with no row filter or paging, and a person must complete OAuth consent first.",
        "bestFor": "Agents reading and writing cells, formulas and formatting in spreadsheets people already keep in Google Sheets.",
        "strengths": [
          "spreadsheets.batchUpdate takes 74 request kinds, applies them atomically and counts as one request against quota",
          "Public discovery document for v4 (revision 20260930, 17 methods, 273 schemas) and Markdown copies of doc pages at .md.txt URLs",
          "drive.file is a non-sensitive scope that limits an app to the files a user opens with it, and spreadsheets.readonly exists for reading",
          "No Sheets incident on the Workspace status dashboard since 12 November 2025, read on 8 October 2026",
          "Standard use costs nothing, with no daily request cap inside the per-minute quotas"
        ],
        "weaknesses": [
          "Quotas are 300 reads and 300 writes a minute per project and 60 each per user per project",
          "No row filter, query or paging on reads. An agent asks for A1 ranges and trims with a fields mask",
          "No idempotency key, so a values.append retried after the 180-second timeout can add the rows twice",
          "The MCP server is Developer Preview, and its update_spreadsheet tool carries destructiveHint false although it can delete sheets, rows and ranges",
          "Scopes apply to a whole spreadsheet file, not one sheet, and overage charges planned for later in 2026 have no published price"
        ],
        "agentNotes": [
          "Ask for drive.file where the user picks the files. spreadsheets and spreadsheets.readonly are sensitive scopes and need extra verification for a public app",
          "Send valueInputOption=USER_ENTERED to write formulas. With RAW the string =1+2 is stored as text",
          "Put related changes in one spreadsheets.batchUpdate. It counts as one write request and none of it applies if any request is invalid",
          "Pass ranges and a fields mask on spreadsheets.get and leave includeGridData off for large files",
          "Back off exponentially on 429 and 503, and keep to one request a second per spreadsheet. After a timeout on values.append, read the range before retrying"
        ],
        "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": 76.3
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 83,
          "security": 80,
          "transparency": 65
        },
        "provenanceScore": 94
      },
      "connect": {
        "install": "npm install @googleapis/sheets",
        "http": "curl \"https://sheets.googleapis.com/v4/spreadsheets/$SPREADSHEET_ID/values/Sheet1!A1:D10\" \\\n  -H \"Authorization: Bearer $GOOGLE_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "sheets": {
              "url": "https://sheetsmcp.googleapis.com/mcp/v1"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/sheets.read",
        "tool": "https://letme.dev/google-sheets-api"
      },
      "sameCompany": [
        "gemini-api",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-adk",
        "google-secret-manager",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "google-drive-api",
        "gemini-cli",
        "google-ads-api",
        "google-forms",
        "gmail-api"
      ],
      "area": "business",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "domainNote": "The endpoint is on googleapis.com, Google's API domain. google.com was registered in 1997.",
        "endpointOnVendorDomain": true,
        "terms": "https://developers.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://www.google.com/appsstatus/dashboard/",
        "changelog": "https://developers.google.com/workspace/sheets/release-notes",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Google APIs Terms of Service (last modified 9 November 2021) name Google LLC, 1600 Amphitheatre Parkway, Mountain View.",
          "RDAP for google.com gives a registration date of 1997-09-15.",
          "www.google.com/.well-known/security.txt expires on 1 April 2030 and names g.co/vulnz, security@google.com and the vulnerability reward programme.",
          "Google publishes a discovery document for the API, not an OpenAPI spec.",
          "The MCP server is part of the Workspace Developer Preview Programme and can change.",
          "The Google privacy policy read on 8 October 2026 is the version effective 1 October 2026."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/google-sheets-api.json",
      "live": {
        "slug": "google-sheets-api",
        "probe": {
          "target": "https://sheets.googleapis.com/v4",
          "method": "get",
          "lastAt": "2026-10-09T01:57:59.84171909Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 164,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 171,
          "p95ms24h": 673,
          "samples24h": 114,
          "samples30d": 114,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/google-api-nodejs-client",
            "version": "agentidentity-v3.2.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:14:25.225453746Z"
          },
          {
            "registry": "npm",
            "name": "@googleapis/sheets",
            "version": "18.1.1",
            "seenAt": "2026-10-08T16:14:21.513613578Z"
          },
          {
            "registry": "pypi",
            "name": "google-api-python-client",
            "version": "2.201.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-08T16:14:25.103740958Z"
          }
        ],
        "githubStars": 12263,
        "npmWeekly": 1859932,
        "pypiWeekly": 31750331,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-10-08T15:38:39.75078566Z"
        },
        "pages": [
          {
            "url": "https://developers.google.com/workspace/sheets/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:57.991043636Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e2880ec22d35"
          }
        ],
        "updatedAt": "2026-10-09T01:57:59.84171909Z"
      }
    },
    "answer": "Google Sheets API scores 76.3 (BB) on agent readiness against Teable's 61 (C), and leads in every scored category.",
    "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:58:12.133293915Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 631,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 530,
          "p95ms24h": 721,
          "samples24h": 71,
          "samples30d": 71,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "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:58:12.133293915Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Google",
        "b": "Teable AI, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://sheets.googleapis.com/v4",
        "b": "https://app.teable.ai/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Google APIs Terms of Service. The client libraries are Apache-2.0",
        "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": "6",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2021-11-09",
        "b": "2026-05-25",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-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": "not found in the text",
        "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": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "12k stars, 1.9M npm/wk, 31.8M PyPI/wk",
        "b": "22k stars, 179 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Google Sheets API scores 76.3 (BB) on agent readiness against Teable's 61 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Google Sheets API or Teable?"
      },
      {
        "answer": "Google Sheets API uses an OAuth sign-in. Teable takes an API key or an OAuth sign-in.",
        "question": "Do Google Sheets API and Teable need an API key?"
      },
      {
        "answer": "Yes. Google Sheets API has a hosted endpoint at https://sheets.googleapis.com/v4 and Teable at https://app.teable.ai/api.",
        "question": "Can an agent call Google Sheets API and Teable without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Google Sheets 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 Google Sheets API and Teable open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 90 against 72",
          "Schema \u0026 documentation, 83 against 75",
          "Agent ergonomics, 74 against 65",
          "Security \u0026 auth, 80 against 62",
          "Payments \u0026 pricing, 35 against 30",
          "Maintenance \u0026 community, 85 against 76",
          "Transparency \u0026 trust, 80 against 64"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No incidents deducted, where Teable loses 3 points for them"
        ],
        "goodFor": "Agents reading and writing cells, formulas and formatting in spreadsheets people already keep in Google Sheets.",
        "slug": "google-sheets-api",
        "watchFor": "Quotas are 300 reads and 300 writes a minute per project and 60 each per user per project"
      },
      {
        "aheadOn": null,
        "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-google-sheets-api.json",
        "title": "Airtable vs Google Sheets API",
        "url": "https://www.anchorterminal.com/compare/airtable-vs-google-sheets-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.json",
        "title": "Baserow vs Google Sheets API",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coda-vs-google-sheets-api.json",
        "title": "Coda (Superhuman Docs) vs Google Sheets API",
        "url": "https://www.anchorterminal.com/compare/coda-vs-google-sheets-api"
      },
      {
        "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-grist.json",
        "title": "Google Sheets API vs Grist",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-grist"
      },
      {
        "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-nocodb.json",
        "title": "Google Sheets API vs NocoDB",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-nocodb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-seatable.json",
        "title": "Google Sheets API vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-smartsheet.json",
        "title": "Google Sheets API vs Smartsheet API + MCP",
        "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-smartsheet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.json",
        "title": "Microsoft Excel (Microsoft Graph workbook API) vs Teable",
        "url": "https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable"
      },
      {
        "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": 18,
        "edge": "google-sheets-api",
        "google-sheets-api": 90,
        "key": "reliability",
        "name": "Reliability",
        "teable": 72,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "google-sheets-api",
        "google-sheets-api": 83,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "teable": 75,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "google-sheets-api",
        "google-sheets-api": 74,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "teable": 65,
        "weight": 13
      },
      {
        "by": 18,
        "edge": "google-sheets-api",
        "google-sheets-api": 80,
        "key": "security",
        "name": "Security \u0026 auth",
        "teable": 62,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "google-sheets-api",
        "google-sheets-api": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "teable": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "google-sheets-api",
        "google-sheets-api": 85,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "teable": 76,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "google-sheets-api",
        "google-sheets-api": 80,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "teable": 64,
        "weight": 7
      }
    ],
    "summary": "Google Sheets API scores 76.3 (BB) on agent readiness against Teable's 61 (C), and leads in every scored category. Both do sheets read.",
    "verdicts": {
      "google-sheets-api": "Batch updates apply atomically and count as one request, and the drive.file scope limits an app to files the user picks. Quotas are 300 reads and 300 writes a minute per project, reads are by range with no row filter or paging, and a person must complete OAuth consent first.",
      "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/google-sheets-api-vs-teable",
    "json": "https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.md",
    "slim": "https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.min.md"
  },
  "markdown": "Google Sheets API scores 76.3 (BB) on agent readiness against Teable's 61 (C), and leads in every scored category. Both do sheets read.\n\n- Google Sheets API: grade BB, 76.3/100, rank #33 of 722. Markdown https://www.anchorterminal.com/tools/google-sheets-api.md · JSON https://www.anchorterminal.com/api/v1/tools/google-sheets-api.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### Google Sheets API (BB)\n\nGood for: Agents reading and writing cells, formulas and formatting in spreadsheets people already keep in Google Sheets.\n\nAhead on:\n- Reliability, 90 against 72\n- Schema \u0026 documentation, 83 against 75\n- Agent ergonomics, 74 against 65\n- Security \u0026 auth, 80 against 62\n- Payments \u0026 pricing, 35 against 30\n- Maintenance \u0026 community, 85 against 76\n- Transparency \u0026 trust, 80 against 64\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No incidents deducted, where Teable loses 3 points for them\n\nWatch for: Quotas are 300 reads and 300 writes a minute per project and 60 each per user per project\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\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 | Google Sheets API | Teable | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 72 | Google Sheets API +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 75 | Google Sheets API +8 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 65 | Google Sheets API +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 80 | 62 | Google Sheets API +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 30 | Google Sheets API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 76 | Google Sheets API +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 64 | Google Sheets API +16 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **76.3 · BB** | **61 · C** | |\n\n## Facts side by side\n\n| Fact | Google Sheets API | Teable |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Google | Teable AI, Inc. |\n| Hosted endpoint | `https://sheets.googleapis.com/v4` | `https://app.teable.ai/api` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the Google APIs Terms of Service. The client libraries are Apache-2.0 | 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| Tools exposed | 6 | none |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-07 | 2026-10-06 |\n| Terms last updated | 2021-11-09 | 2026-05-25 |\n| Privacy policy last updated | 2026-10-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 | not found in the text | 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 | yes |\n| Popularity | 12k stars, 1.9M npm/wk, 31.8M PyPI/wk | 22k stars, 179 npm/wk |\n\n## Verdicts\n\n**Google Sheets API.** Batch updates apply atomically and count as one request, and the drive.file scope limits an app to files the user picks. Quotas are 300 reads and 300 writes a minute per project, reads are by range with no row filter or paging, and a person must complete OAuth consent first.\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### Google Sheets API\n\n1. Ask for drive.file where the user picks the files. spreadsheets and spreadsheets.readonly are sensitive scopes and need extra verification for a public app\n2. Send valueInputOption=USER_ENTERED to write formulas. With RAW the string =1+2 is stored as text\n3. Put related changes in one spreadsheets.batchUpdate. It counts as one write request and none of it applies if any request is invalid\n4. Pass ranges and a fields mask on spreadsheets.get and leave includeGridData off for large files\n5. Back off exponentially on 429 and 503, and keep to one request a second per spreadsheet. After a timeout on values.append, read the range before retrying\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, Google Sheets API or Teable?\n\nGoogle Sheets API scores 76.3 (BB) on agent readiness against Teable's 61 (C), and leads in every scored category.\n\n### Do Google Sheets API and Teable need an API key?\n\nGoogle Sheets API uses an OAuth sign-in. Teable takes an API key or an OAuth sign-in.\n\n### Can an agent call Google Sheets API and Teable without installing anything?\n\nYes. Google Sheets API has a hosted endpoint at https://sheets.googleapis.com/v4 and Teable at https://app.teable.ai/api.\n\n### Are Google Sheets API and Teable open source?\n\nNo open-source release is listed for Google Sheets 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/google-sheets-api-vs-teable.json, and with the fewest tokens: https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"google-sheets-api\", \"b\": \"teable\"}`. From a terminal: `anchor compare google-sheets-api teable`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/google-sheets-api.json and https://www.anchorterminal.com/api/v1/tools/teable.json\n\n## Other comparisons with Google Sheets API or Teable\n\n- [Airtable vs Google Sheets API](https://www.anchorterminal.com/compare/airtable-vs-google-sheets-api.md)\n- [Baserow vs Google Sheets API](https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.md)\n- [Coda (Superhuman Docs) vs Google Sheets API](https://www.anchorterminal.com/compare/coda-vs-google-sheets-api.md)\n- [Coda (Superhuman Docs) vs Teable](https://www.anchorterminal.com/compare/coda-vs-teable.md)\n- [Google Sheets API vs Grist](https://www.anchorterminal.com/compare/google-sheets-api-vs-grist.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 NocoDB](https://www.anchorterminal.com/compare/google-sheets-api-vs-nocodb.md)\n- [Google Sheets API vs SeaTable](https://www.anchorterminal.com/compare/google-sheets-api-vs-seatable.md)\n- [Google Sheets API vs Smartsheet API + MCP](https://www.anchorterminal.com/compare/google-sheets-api-vs-smartsheet.md)\n- [Microsoft Excel (Microsoft Graph workbook API) vs Teable](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.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": "Google Sheets API vs Teable",
        "url": ""
      }
    ],
    "description": "Google Sheets API scores 76.3 (BB) on agent readiness against Teable's 61 (C), and leads in every scored category. Both do sheets read. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Google Sheets API BB 76.3",
      "Teable C 61",
      "scores"
    ],
    "h1": "Google Sheets API vs Teable",
    "image": "https://www.anchorterminal.com/assets/og/compare-google-sheets-api-vs-teable.png",
    "path": "/compare/google-sheets-api-vs-teable",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Google Sheets API vs Teable for AI agents, BB 76.3 vs C 61",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/google-sheets-api-vs-teable"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 780
  },
  "version": 1
}
