{
  "data": {
    "a": {
      "slug": "baserow",
      "name": "Baserow",
      "vendor": "Baserow B.V.",
      "vendorUrl": "https://baserow.io",
      "kind": "http-api",
      "category": "spreadsheets",
      "summary": "Baserow is an open-source database of typed rows in tables, sold as a hosted cloud and as software to self-host. Agents reach it through a REST API with database tokens and a built-in MCP server.",
      "url": "https://www.anchorterminal.com/tools/baserow",
      "markdownUrl": "https://www.anchorterminal.com/tools/baserow.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/baserow.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/baserow.json",
      "repo": "https://github.com/baserow/baserow",
      "license": "MIT for the core, including the REST API and the MCP server. Code under premium/ and enterprise/ is source-available under Baserow's own licences and needs a paid subscription in production. Docs are CC BY-SA 4.0",
      "transports": [
        "http",
        "sse"
      ],
      "remoteUrl": "https://api.baserow.io",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve. A signed-in user creates a database token in the workspace settings, choosing the tables it can reach and whether it may create, read, update or delete rows. Tokens don't expire and can be regenerated or deleted. They cover rows only, so changing tables or fields needs a JWT from `/api/user/token-auth/` with the account's email and password, which carries the user's full access. The MCP server has no token header or OAuth. Each endpoint is a URL holding a 32-character key that carries the creating user's access across one workspace, and deleting the endpoint revokes it. On Enterprise licences only workspace admins and builders can create database tokens.",
      "pricing": "freemium",
      "pricingNotes": "Free cloud plan with 3,000 rows and 2 GB of storage per workspace, so an agent can start without a contract. Premium is $10 a user a month billed yearly ($12 monthly) and Advanced $18 ($22 monthly), Enterprise through sales. API calls aren't priced, the MCP server is on every plan, and there's no separate sandbox. The self-hosted core is free with no row or request limits (checked 2026-10-08).",
      "priceSummary": "$10 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI description, the MCP docs or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 7,
      "popularity": {
        "githubStars": 6098,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://baserow.io/user-docs/database-api",
      "llmsTxt": "https://baserow.io/llms.txt",
      "openapi": "https://api.baserow.io/api/schema.json",
      "capabilities": [
        "sheets.records",
        "sheets.read",
        "sheets.write",
        "sheets.tables",
        "sheets.formulas"
      ],
      "tags": [
        "official",
        "hosted",
        "self-hosted",
        "open-source",
        "mcp",
        "free-tier",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.6,
        "grade": "B",
        "agentReady": false,
        "rank": 306,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 72,
          "payments": 40,
          "reliability": 65,
          "schema": 77,
          "security": 54,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Database tokens are limited to chosen tables and to create, read, update or delete, and the REST API has a public OpenAPI description with batch calls of 200 rows. The MCP server authenticates with a key in its URL, runs over SSE only and has no read-only mode. Cloud requests are capped at 10 at a time.",
        "bestFor": "Teams that want Airtable-style typed tables they can also self-host, with row-level reads and writes by an agent through table-scoped tokens or a small MCP tool set.",
        "strengths": [
          "Database tokens are limited to one workspace, to chosen tables and to create, read, update or delete, and can be regenerated or deleted",
          "Public OpenAPI 3.0.3 description at api.baserow.io/api/schema.json with 424 operations and an enum of error codes on each response",
          "The MCP server exposes 7 tools with typed inputs, and its descriptions tell the caller to read the table schema before writing",
          "List rows takes `include`, `exclude`, `size`, `filters`, `search`, `order_by` and `view_id`, so responses can be sized",
          "The core, including the REST API and the MCP server, is MIT-licensed and can be self-hosted with no row or request limits"
        ],
        "weaknesses": [
          "The MCP endpoint's key sits in the URL path, and the docs say it grants full access to modify data in the workspace",
          "The MCP server speaks only the older SSE transport, with no OAuth, no read-only mode and no tool annotations",
          "Table and field changes over REST need a JWT obtained with the account's email and password, since database tokens cover rows only",
          "No SLA, security.txt, sub-processor list or published DPA text was found, and the privacy policy carries no date or retention periods",
          "No official client library was found, and Baserow isn't in the official MCP registry under its own namespace"
        ],
        "agentNotes": [
          "Create a database token with only the tables and operations needed. It can't change tables or fields, which need a JWT from `/api/user/token-auth/`",
          "Send `Authorization: Token YOUR_DATABASE_TOKEN`, and add `user_field_names=true` or rows come back keyed as `field_123`",
          "Use the `/batch/` endpoints for up to 200 rows a call, and keep to 10 requests in flight on Baserow Cloud",
          "Treat the MCP URL as a password. Keep it out of logs and version control, and delete the endpoint to revoke it",
          "Over MCP, call `get_table_schema` before `create_rows` or `update_rows`, and page `list_table_rows` with `page` and `size`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.6
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 72,
          "payments": 40,
          "reliability": 65,
          "schema": 77,
          "security": 54,
          "transparency": 49
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl \\\n-X GET \\\n-H \"Authorization: Token YOUR_DATABASE_TOKEN\" \\\n\"https://api.baserow.io/api/database/fields/table/TABLE_ID/\"",
        "config": {
          "mcpServers": {
            "Baserow MCP": {
              "url": "YOUR_MCP_URL_HERE"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/sheets.records",
        "tool": "https://letme.dev/baserow"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Premium (cloud)",
          "unit": "seat-month",
          "usd": 10,
          "note": "billed yearly, $12 billed monthly, 50,000 rows per workspace"
        },
        {
          "item": "Advanced (cloud)",
          "unit": "seat-month",
          "usd": 18,
          "note": "billed yearly, $22 billed monthly, 250,000 rows per workspace"
        }
      ],
      "provenance": {
        "legalEntity": "Baserow B.V.",
        "domain": "baserow.io",
        "domainRegistered": "2019-01-19",
        "endpointOnVendorDomain": true,
        "terms": "https://baserow.io/terms-and-conditions",
        "privacy": "https://baserow.io/privacy-policy",
        "statusPage": "https://status.baserow.org",
        "changelog": "https://github.com/baserow/baserow/blob/develop/changelog.md",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The General Terms and Conditions name Baserow B.V., a Dutch private company with its registered office at Keurenplein 4, Amsterdam, trade register number 81129254. The page carries no date.",
          "The privacy policy is the only one found. It is written for visitors to baserow.io, mentions account registration, carries no date and names no retention periods. The terms incorporate a Data Processing Agreement by reference, and no public copy was found.",
          "The REST API and the MCP server answer at api.baserow.io, a baserow.io subdomain. The status page is on a separate domain, status.baserow.org, hosted by Better Stack.",
          "baserow.io/.well-known/security.txt and api.baserow.io/.well-known/security.txt return 404. SECURITY.md in the repository gives an email address for vulnerability reports.",
          "RDAP for baserow.io gives a registration date of 2019-01-19."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/baserow.json",
      "live": {
        "slug": "baserow",
        "probe": {
          "target": "https://api.baserow.io",
          "method": "get",
          "lastAt": "2026-10-08T19:52:45.792220514Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 114,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 99,
          "p95ms24h": 143,
          "samples24h": 27,
          "samples30d": 27,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 27,
              "ok": 27
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.baserow.org",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:38:16.274385747Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/baserow/baserow/develop/changelog.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:01.724744684Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a6db4300826"
          },
          {
            "url": "https://baserow.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:15:31.424595879Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9e86e4bd4127"
          },
          {
            "url": "https://baserow.io/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:15:33.545863734Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1d9e20c33e8e"
          }
        ],
        "updatedAt": "2026-10-08T19:52:45.792220514Z"
      }
    },
    "answer": "Google Sheets API scores 76.3 (BB) on agent readiness against Baserow's 63.6 (B), and leads in 6 of 7 scored categories. Baserow leads on payments \u0026 pricing.",
    "b": {
      "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-08T19:52:51.87032687Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 276,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 184,
          "p95ms24h": 666,
          "samples24h": 50,
          "samples30d": 50,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            }
          ]
        },
        "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-08T19:52:51.87032687Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Baserow B.V.",
        "b": "Google",
        "name": "Vendor"
      },
      {
        "a": "https://api.baserow.io",
        "b": "https://sheets.googleapis.com/v4",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, SSE (legacy)",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT for the core, including the REST API and the MCP server. Code under premium/ and enterprise/ is source-available under Baserow's own licences and needs a paid subscription in production. Docs are CC BY-SA 4.0",
        "b": "Proprietary service under the Google APIs Terms of Service. The client libraries are Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "7",
        "b": "6",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2021-11-09",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "6.1k stars",
        "b": "12k stars, 1.9M npm/wk, 31.8M PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Google Sheets API scores 76.3 (BB) on agent readiness against Baserow's 63.6 (B), and leads in 6 of 7 scored categories. Baserow leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Baserow or Google Sheets API?"
      },
      {
        "answer": "Baserow needs an API key. Google Sheets API uses an OAuth sign-in.",
        "question": "Do Baserow and Google Sheets API need an API key?"
      },
      {
        "answer": "Yes. Baserow has a hosted endpoint at https://api.baserow.io and Google Sheets API at https://sheets.googleapis.com/v4.",
        "question": "Can an agent call Baserow and Google Sheets API without installing anything?"
      },
      {
        "answer": "Baserow is open source (MIT for the core, including the REST API and the MCP server. Code under premium/ and enterprise/ is source-available under Baserow's own licences and needs a paid subscription in production. Docs are CC BY-SA 4.0). No open-source release is listed for Google Sheets API.",
        "question": "Are Baserow and Google Sheets API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 40 against 35"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Teams that want Airtable-style typed tables they can also self-host, with row-level reads and writes by an agent through table-scoped tokens or a small MCP tool set.",
        "slug": "baserow",
        "watchFor": "The MCP endpoint's key sits in the URL path, and the docs say it grants full access to modify data in the workspace"
      },
      {
        "aheadOn": [
          "Reliability, 90 against 65",
          "Schema \u0026 documentation, 83 against 77",
          "Security \u0026 auth, 80 against 54",
          "Maintenance \u0026 community, 85 against 72",
          "Transparency \u0026 trust, 80 against 65"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "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"
      }
    ],
    "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-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-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/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/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/airtable-vs-baserow.json",
        "title": "Airtable vs Baserow",
        "url": "https://www.anchorterminal.com/compare/airtable-vs-baserow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-coda.json",
        "title": "Baserow vs Coda (Superhuman Docs)",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-coda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-grist.json",
        "title": "Baserow vs Grist",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-grist"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-nocodb.json",
        "title": "Baserow vs NocoDB",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-nocodb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-seatable.json",
        "title": "Baserow vs SeaTable",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-seatable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-smartsheet.json",
        "title": "Baserow vs Smartsheet API + MCP",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-smartsheet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserow-vs-teable.json",
        "title": "Baserow vs Teable",
        "url": "https://www.anchorterminal.com/compare/baserow-vs-teable"
      }
    ],
    "scores": [
      {
        "baserow": 65,
        "by": 25,
        "edge": "google-sheets-api",
        "google-sheets-api": 90,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "baserow": 77,
        "by": 6,
        "edge": "google-sheets-api",
        "google-sheets-api": 83,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "baserow": 72,
        "by": 2,
        "edge": "google-sheets-api",
        "google-sheets-api": 74,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "baserow": 54,
        "by": 26,
        "edge": "google-sheets-api",
        "google-sheets-api": 80,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "baserow": 40,
        "by": 5,
        "edge": "baserow",
        "google-sheets-api": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "baserow": 72,
        "by": 13,
        "edge": "google-sheets-api",
        "google-sheets-api": 85,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "baserow": 65,
        "by": 15,
        "edge": "google-sheets-api",
        "google-sheets-api": 80,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Google Sheets API scores 76.3 (BB) on agent readiness against Baserow's 63.6 (B), and leads in 6 of 7 scored categories. Baserow leads on payments \u0026 pricing. Both do sheets read.",
    "verdicts": {
      "baserow": "Database tokens are limited to chosen tables and to create, read, update or delete, and the REST API has a public OpenAPI description with batch calls of 200 rows. The MCP server authenticates with a key in its URL, runs over SSE only and has no read-only mode. Cloud requests are capped at 10 at a time.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api",
    "json": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.md",
    "slim": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.min.md"
  },
  "markdown": "Google Sheets API scores 76.3 (BB) on agent readiness against Baserow's 63.6 (B), and leads in 6 of 7 scored categories. Baserow leads on payments \u0026 pricing. Both do sheets read.\n\n- Baserow: grade B, 63.6/100, rank #306 of 722. Markdown https://www.anchorterminal.com/tools/baserow.md · JSON https://www.anchorterminal.com/api/v1/tools/baserow.json\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\n## Which one, for what\n\n### Baserow (B)\n\nGood for: Teams that want Airtable-style typed tables they can also self-host, with row-level reads and writes by an agent through table-scoped tokens or a small MCP tool set.\n\nAhead on:\n- Payments \u0026 pricing, 40 against 35\n\nAlso in its favour:\n- Open source\n\nWatch for: The MCP endpoint's key sits in the URL path, and the docs say it grants full access to modify data in the workspace\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 65\n- Schema \u0026 documentation, 83 against 77\n- Security \u0026 auth, 80 against 54\n- Maintenance \u0026 community, 85 against 72\n- Transparency \u0026 trust, 80 against 65\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Quotas are 300 reads and 300 writes a minute per project and 60 each per user per project\n\n\n## Score by category\n\n| Category | Weight | Baserow | Google Sheets API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 90 | Google Sheets API +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 83 | Google Sheets API +6 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 74 | Google Sheets API +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 80 | Google Sheets API +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 35 | Baserow +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 85 | Google Sheets API +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 80 | Google Sheets API +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.6 · B** | **76.3 · BB** | |\n\n## Facts side by side\n\n| Fact | Baserow | Google Sheets API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Baserow B.V. | Google |\n| Hosted endpoint | `https://api.baserow.io` | `https://sheets.googleapis.com/v4` |\n| Transports | HTTP, SSE (legacy) | HTTP, Streamable HTTP |\n| Auth | API key | OAuth |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | MIT for the core, including the REST API and the MCP server. Code under premium/ and enterprise/ is source-available under Baserow's own licences and needs a paid subscription in production. Docs are CC BY-SA 4.0 | Proprietary service under the Google APIs Terms of Service. The client libraries are Apache-2.0 |\n| Tools exposed | 7 | 6 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-09-29 | 2026-10-07 |\n| Terms last updated | no date given | 2021-11-09 |\n| Privacy policy last updated | no date given | 2026-10-01 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 6.1k stars | 12k stars, 1.9M npm/wk, 31.8M PyPI/wk |\n\n## Verdicts\n\n**Baserow.** Database tokens are limited to chosen tables and to create, read, update or delete, and the REST API has a public OpenAPI description with batch calls of 200 rows. The MCP server authenticates with a key in its URL, runs over SSE only and has no read-only mode. Cloud requests are capped at 10 at a time.\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## Before you call either\n\n### Baserow\n\n1. Create a database token with only the tables and operations needed. It can't change tables or fields, which need a JWT from `/api/user/token-auth/`\n2. Send `Authorization: Token YOUR_DATABASE_TOKEN`, and add `user_field_names=true` or rows come back keyed as `field_123`\n3. Use the `/batch/` endpoints for up to 200 rows a call, and keep to 10 requests in flight on Baserow Cloud\n4. Treat the MCP URL as a password. Keep it out of logs and version control, and delete the endpoint to revoke it\n5. Over MCP, call `get_table_schema` before `create_rows` or `update_rows`, and page `list_table_rows` with `page` and `size`\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## Questions\n\n### Which is better for AI agents, Baserow or Google Sheets API?\n\nGoogle Sheets API scores 76.3 (BB) on agent readiness against Baserow's 63.6 (B), and leads in 6 of 7 scored categories. Baserow leads on payments \u0026 pricing.\n\n### Do Baserow and Google Sheets API need an API key?\n\nBaserow needs an API key. Google Sheets API uses an OAuth sign-in.\n\n### Can an agent call Baserow and Google Sheets API without installing anything?\n\nYes. Baserow has a hosted endpoint at https://api.baserow.io and Google Sheets API at https://sheets.googleapis.com/v4.\n\n### Are Baserow and Google Sheets API open source?\n\nBaserow is open source (MIT for the core, including the REST API and the MCP server. Code under premium/ and enterprise/ is source-available under Baserow's own licences and needs a paid subscription in production. Docs are CC BY-SA 4.0). No open-source release is listed for Google Sheets API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"baserow\", \"b\": \"google-sheets-api\"}`. From a terminal: `anchor compare baserow google-sheets-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/baserow.json and https://www.anchorterminal.com/api/v1/tools/google-sheets-api.json\n\n## Other comparisons with Baserow or Google Sheets API\n\n- [Airtable vs Google Sheets API](https://www.anchorterminal.com/compare/airtable-vs-google-sheets-api.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 Google Sheets API](https://www.anchorterminal.com/compare/coda-vs-google-sheets-api.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- [Google Sheets API vs Teable](https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.md)\n- [Airtable vs Baserow](https://www.anchorterminal.com/compare/airtable-vs-baserow.md)\n- [Baserow vs Coda (Superhuman Docs)](https://www.anchorterminal.com/compare/baserow-vs-coda.md)\n- [Baserow vs Grist](https://www.anchorterminal.com/compare/baserow-vs-grist.md)\n- [Baserow vs NocoDB](https://www.anchorterminal.com/compare/baserow-vs-nocodb.md)\n- [Baserow vs SeaTable](https://www.anchorterminal.com/compare/baserow-vs-seatable.md)\n- [Baserow vs Smartsheet API + MCP](https://www.anchorterminal.com/compare/baserow-vs-smartsheet.md)\n- [Baserow vs Teable](https://www.anchorterminal.com/compare/baserow-vs-teable.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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": "Baserow vs Google Sheets API",
        "url": ""
      }
    ],
    "description": "Google Sheets API scores 76.3 (BB) on agent readiness against Baserow's 63.6 (B), and leads in 6 of 7 scored categories. Baserow leads on payments \u0026 pricing. Both do sheets read. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Baserow B 63.6",
      "Google Sheets API BB 76.3",
      "scores"
    ],
    "h1": "Baserow vs Google Sheets API",
    "image": "https://www.anchorterminal.com/assets/og/compare-baserow-vs-google-sheets-api.png",
    "path": "/compare/baserow-vs-google-sheets-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Baserow vs Google Sheets API for AI agents, B 63.6 vs BB 76.3",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/baserow-vs-google-sheets-api"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 730
  },
  "version": 1
}
