{
  "data": {
    "similar": [
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/nocodb.json",
        "name": "NocoDB",
        "score": 75.7,
        "shared": [
          "sheets.records",
          "sheets.read",
          "sheets.write",
          "sheets.tables",
          "sheets.formulas"
        ],
        "slug": "nocodb"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/airtable.json",
        "name": "Airtable",
        "score": 70.9,
        "shared": [
          "sheets.records",
          "sheets.read",
          "sheets.write",
          "sheets.tables",
          "sheets.formulas"
        ],
        "slug": "airtable"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/seatable.json",
        "name": "SeaTable",
        "score": 66.3,
        "shared": [
          "sheets.records",
          "sheets.read",
          "sheets.write",
          "sheets.tables",
          "sheets.formulas"
        ],
        "slug": "seatable"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/coda.json",
        "name": "Coda (Superhuman Docs)",
        "score": 64.8,
        "shared": [
          "sheets.read",
          "sheets.write",
          "sheets.tables",
          "sheets.records",
          "sheets.formulas"
        ],
        "slug": "coda"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/baserow.json",
        "name": "Baserow",
        "score": 63.6,
        "shared": [
          "sheets.records",
          "sheets.read",
          "sheets.write",
          "sheets.tables",
          "sheets.formulas"
        ],
        "slug": "baserow"
      },
      {
        "grade": "D",
        "json": "https://www.anchorterminal.com/tools/grist.json",
        "name": "Grist",
        "score": 50.1,
        "shared": [
          "sheets.records",
          "sheets.read",
          "sheets.write",
          "sheets.tables",
          "sheets.formulas"
        ],
        "slug": "grist"
      }
    ],
    "tool": {
      "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"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 72,
            "points": 14.4,
            "reason": "Graded on Teable Cloud's REST API, with the hosted lines. Status page at status.teable.ai with two monitors and a 90-day view, set up on 28 July 2026, so about 72 days of history exist (20). Its feed lists three incidents. On 27 August 2026 the app and API returned 503s for 5 minutes, on 27 and 28 August the AI gateway was slow for 98 minutes, and on 25 September a maintenance window on AI functions ran 22 minutes over. Only the first touched the API, and all are minor (20). The pricing page and docs give 10 API requests a second on every plan (15). The API answers 429 over the limit and the docs suggest caching and backoff, but Retry-After is documented only for the notifications endpoint and no idempotency key was found (7 of 15). No SLA found (0). The API is generally available with no beta label (10)."
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 75,
            "points": 12.19,
            "reason": "Public OpenAPI 3.0.0 file with 712 paths and 841 operations (25). llms.txt, llms-full.txt and a Markdown copy of every help page (10). All but one operation has a description, and each names the token scopes it needs. They are one or two sentences and don't say when not to use a call (13 of 20). Enums and required fields are used widely, but `filter` and `orderBy` are JSON passed as strings and record `fields` is an untyped object (9 of 15). The four record pages have curl, JavaScript, TypeScript and Python examples. The OpenAPI file documents only 200 and 201 responses apart from one 400, and the error page lists HTTP statuses without a code table (8 of 15). The file's version is fixed at 1.0.0 with no version in the path. A dated public changelog, updated most days, records API behaviour changes (10 of 15)."
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 65,
            "points": 10.56,
            "reason": "Record reads take `projection` to choose fields, `take` to cap rows and `cellFormat=text` for plain values (20 of 25). Paging by `take` and `skip` or a keyset `cursor`, with `filter`, `search`, `orderBy` and `viewId` (20). Errors are JSON with `message`, `status` and a `code` such as `restricted_resource`, and the docs tie 403 to a missing scope. No list of codes is published (12 of 20). No idempotency key or upsert call was found for records. Create, update and delete accept several records in one call, which cuts the writes to retry (5 of 20). Few required parameters and name-keyed fields by default. The only client library is `@teable/openapi` for JavaScript, with an official CLI beside it (8 of 15)."
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 62,
            "points": 10.85,
            "reason": "OAuth 2.0 with client secret, PKCE and device flows, 10-minute access tokens, rotating refresh tokens and per-action scopes. Personal access tokens need an expiry and take scopes and a list of spaces and projects (30). Read-only tokens are possible per project, and deleted items go to a trash. The API has no approval step for deletes, and the agent skill only instructs a read before each write (14 of 20). Records can hold text written by others and no prompt-injection guidance was found (0 of 15). Record history runs 2 weeks to 3 years by plan and login history 30 days, but the audit log is documented for self-hosted Business plans and above (6 of 15). SECURITY.md sets out private reporting and coordinated disclosure, and one advisory with a CVE was published on 26 August 2026 after its fix. ISO 27001 is the vendor's statement with no certificate linked. No security.txt or bug bounty (12 of 20)."
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 30,
            "points": 3.75,
            "reason": "Graded on the hosted cloud. No x402, MPP or L402 found (0). Plan prices are public, Pro at $13 and Business at $20 a seat a month billed yearly, with no per-call price (10). A Free plan with 1,000 rows per space. The pricing page mentions cards only for subscriptions, and we didn't complete a signup (20). Signup is a browser flow, and the security page says Cloudflare Turnstile guards registration, so an agent can't get access by itself (0)."
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 76,
            "points": 6.65,
            "reason": "The changelog's latest entry is 6 October 2026, 2 days before the check, and the public repository's newest release tag is 2 October (30). The changelog has entries on most days of the last 90 (20). The repository shows 88 open issues, the most recent updated on 1 October 2026, and a community forum exists. We didn't read reply times (12 of 25). `@teable/cli` 0.6.45 came out on 25 September 2026 with 23 versions in 90 days, but `@teable/openapi`, the client in the docs' examples, was last published on 15 September 2025 (7 of 15). The repository has unit, integration and lint workflows and a Renovate config. We didn't read the current CI result (7 of 10)."
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 64,
            "points": 5.6,
            "note": "editorial 58, provenance 70",
            "reason": "The backend and web app are AGPL-3.0 with added brand terms and the packages are MIT. Enterprise functions and the CLI come from a private repository, and the public one is synced from it (24 of 30). The privacy policy is dated 1 October 2026, gives 30 days for trash, server logs and backups, and names OpenAI and Vercel as AI processors. No DPA was found, and the terms define their subject as the website (18 of 30). No deprecation policy found. The 100-record cap came with a date and kept older keys at 1,000, while other API changes appear in the changelog on the day they ship (6 of 20). Hosting on AWS in Oregon is stated and two AI processors are named, with no full sub-processor list (10 of 20)."
          }
        ],
        "assessment": {
          "date": "2026-10-08",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "Record reads take `projection` to choose fields, `take` to cap rows and `cellFormat=text` for plain values (20 of 25). Paging by `take` and `skip` or a keyset `cursor`, with `filter`, `search`, `orderBy` and `viewId` (20). Errors are JSON with `message`, `status` and a `code` such as `restricted_resource`, and the docs tie 403 to a missing scope. No list of codes is published (12 of 20). No idempotency key or upsert call was found for records. Create, update and delete accept several records in one call, which cuts the writes to retry (5 of 20). Few required parameters and name-keyed fields by default. The only client library is `@teable/openapi` for JavaScript, with an official CLI beside it (8 of 15).",
            "maintenance": "The changelog's latest entry is 6 October 2026, 2 days before the check, and the public repository's newest release tag is 2 October (30). The changelog has entries on most days of the last 90 (20). The repository shows 88 open issues, the most recent updated on 1 October 2026, and a community forum exists. We didn't read reply times (12 of 25). `@teable/cli` 0.6.45 came out on 25 September 2026 with 23 versions in 90 days, but `@teable/openapi`, the client in the docs' examples, was last published on 15 September 2025 (7 of 15). The repository has unit, integration and lint workflows and a Renovate config. We didn't read the current CI result (7 of 10).",
            "payments": "Graded on the hosted cloud. No x402, MPP or L402 found (0). Plan prices are public, Pro at $13 and Business at $20 a seat a month billed yearly, with no per-call price (10). A Free plan with 1,000 rows per space. The pricing page mentions cards only for subscriptions, and we didn't complete a signup (20). Signup is a browser flow, and the security page says Cloudflare Turnstile guards registration, so an agent can't get access by itself (0).",
            "reliability": "Graded on Teable Cloud's REST API, with the hosted lines. Status page at status.teable.ai with two monitors and a 90-day view, set up on 28 July 2026, so about 72 days of history exist (20). Its feed lists three incidents. On 27 August 2026 the app and API returned 503s for 5 minutes, on 27 and 28 August the AI gateway was slow for 98 minutes, and on 25 September a maintenance window on AI functions ran 22 minutes over. Only the first touched the API, and all are minor (20). The pricing page and docs give 10 API requests a second on every plan (15). The API answers 429 over the limit and the docs suggest caching and backoff, but Retry-After is documented only for the notifications endpoint and no idempotency key was found (7 of 15). No SLA found (0). The API is generally available with no beta label (10).",
            "schema": "Public OpenAPI 3.0.0 file with 712 paths and 841 operations (25). llms.txt, llms-full.txt and a Markdown copy of every help page (10). All but one operation has a description, and each names the token scopes it needs. They are one or two sentences and don't say when not to use a call (13 of 20). Enums and required fields are used widely, but `filter` and `orderBy` are JSON passed as strings and record `fields` is an untyped object (9 of 15). The four record pages have curl, JavaScript, TypeScript and Python examples. The OpenAPI file documents only 200 and 201 responses apart from one 400, and the error page lists HTTP statuses without a code table (8 of 15). The file's version is fixed at 1.0.0 with no version in the path. A dated public changelog, updated most days, records API behaviour changes (10 of 15).",
            "security": "OAuth 2.0 with client secret, PKCE and device flows, 10-minute access tokens, rotating refresh tokens and per-action scopes. Personal access tokens need an expiry and take scopes and a list of spaces and projects (30). Read-only tokens are possible per project, and deleted items go to a trash. The API has no approval step for deletes, and the agent skill only instructs a read before each write (14 of 20). Records can hold text written by others and no prompt-injection guidance was found (0 of 15). Record history runs 2 weeks to 3 years by plan and login history 30 days, but the audit log is documented for self-hosted Business plans and above (6 of 15). SECURITY.md sets out private reporting and coordinated disclosure, and one advisory with a CVE was published on 26 August 2026 after its fix. ISO 27001 is the vendor's statement with no certificate linked. No security.txt or bug bounty (12 of 20).",
            "transparency": "The backend and web app are AGPL-3.0 with added brand terms and the packages are MIT. Enterprise functions and the CLI come from a private repository, and the public one is synced from it (24 of 30). The privacy policy is dated 1 October 2026, gives 30 days for trash, server logs and backups, and names OpenAI and Vercel as AI processors. No DPA was found, and the terms define their subject as the website (18 of 30). No deprecation policy found. The 100-record cap came with a date and kept older keys at 1,000, while other API changes appear in the changelog on the day they ship (6 of 20). Hosting on AWS in Oregon is stated and two AI processors are named, with no full sub-processor list (10 of 20)."
          },
          "sources": [
            {
              "what": "API overview",
              "url": "https://help.teable.ai/en/api-doc/overview",
              "seen": "2026-10-08"
            },
            {
              "what": "access token docs",
              "url": "https://help.teable.ai/en/api-doc/token",
              "seen": "2026-10-08"
            },
            {
              "what": "OAuth app docs",
              "url": "https://help.teable.ai/en/api-doc/oauth",
              "seen": "2026-10-08"
            },
            {
              "what": "error codes",
              "url": "https://help.teable.ai/en/api-doc/error-code",
              "seen": "2026-10-08"
            },
            {
              "what": "get records",
              "url": "https://help.teable.ai/en/api-doc/record/get",
              "seen": "2026-10-08"
            },
            {
              "what": "create records",
              "url": "https://help.teable.ai/en/api-doc/record/create",
              "seen": "2026-10-08"
            },
            {
              "what": "OpenAPI file",
              "url": "https://help.teable.ai/swagger.json",
              "seen": "2026-10-08"
            },
            {
              "what": "help centre llms.txt",
              "url": "https://help.teable.ai/llms.txt",
              "seen": "2026-10-08"
            },
            {
              "what": "full docs text (429 handling, webhook limits, agent skill)",
              "url": "https://help.teable.ai/llms-full.txt",
              "seen": "2026-10-08"
            },
            {
              "what": "agent skill page",
              "url": "https://help.teable.ai/en/basic/ai/teable-skill",
              "seen": "2026-10-08"
            },
            {
              "what": "security page",
              "url": "https://help.teable.ai/en/basic/security",
              "seen": "2026-10-08"
            },
            {
              "what": "audit log",
              "url": "https://help.teable.ai/en/basic/admin-panel/audit-log",
              "seen": "2026-10-08"
            },
            {
              "what": "changelog 2026",
              "url": "https://help.teable.ai/en/changelog",
              "seen": "2026-10-08"
            },
            {
              "what": "pricing",
              "url": "https://teable.ai/pricing",
              "seen": "2026-10-08"
            },
            {
              "what": "terms of service",
              "url": "https://teable.ai/terms-of-service",
              "seen": "2026-10-08"
            },
            {
              "what": "privacy policy",
              "url": "https://teable.ai/privacy",
              "seen": "2026-10-08"
            },
            {
              "what": "status page",
              "url": "https://status.teable.ai/",
              "seen": "2026-10-08"
            },
            {
              "what": "status feed",
              "url": "https://status.teable.ai/rss.xml",
              "seen": "2026-10-08"
            },
            {
              "what": "unauthenticated API response (403, restricted_resource)",
              "url": "https://app.teable.ai/api/table/tblx/record",
              "seen": "2026-10-08"
            },
            {
              "what": "repository (cloned 8 October 2026, newest tag release.2026-10-02)",
              "url": "https://github.com/teableio/teable",
              "seen": "2026-10-08"
            },
            {
              "what": "licence",
              "url": "https://github.com/teableio/teable/blob/develop/LICENSE",
              "seen": "2026-10-08"
            },
            {
              "what": "security policy",
              "url": "https://github.com/teableio/teable/blob/develop/SECURITY.md",
              "seen": "2026-10-08"
            },
            {
              "what": "security advisories",
              "url": "https://github.com/teableio/teable/security/advisories",
              "seen": "2026-10-08"
            },
            {
              "what": "advisory GHSA-h4hg-45pv-pv8j",
              "url": "https://github.com/teableio/teable/security/advisories/GHSA-h4hg-45pv-pv8j",
              "seen": "2026-10-08"
            },
            {
              "what": "open issues",
              "url": "https://github.com/teableio/teable/issues",
              "seen": "2026-10-08"
            },
            {
              "what": "agent skills repository",
              "url": "https://github.com/teableio/agent-skills",
              "seen": "2026-10-08"
            },
            {
              "what": "npm, @teable/cli",
              "url": "https://registry.npmjs.org/@teable%2Fcli",
              "seen": "2026-10-08"
            },
            {
              "what": "npm, @teable/openapi",
              "url": "https://registry.npmjs.org/@teable%2Fopenapi",
              "seen": "2026-10-08"
            },
            {
              "what": "npm weekly downloads, @teable/cli",
              "url": "https://api.npmjs.org/downloads/point/last-week/@teable/cli",
              "seen": "2026-10-08"
            },
            {
              "what": "official MCP registry search (no result)",
              "url": "https://registry.modelcontextprotocol.io/v0/servers?search=teable",
              "seen": "2026-10-08"
            },
            {
              "what": "security.txt (404)",
              "url": "https://teable.ai/.well-known/security.txt",
              "seen": "2026-10-08"
            },
            {
              "what": "RDAP for teable.ai",
              "url": "https://rdap.org/domain/teable.ai",
              "seen": "2026-10-08"
            }
          ],
          "openQuestions": [
            "unchecked: whether signup on Teable Cloud asks for a card or an email confirmation. We didn't create an account",
            "unchecked: reply times on GitHub issues and the current CI result. The GitHub API refused us, and the count of 88 open issues is read from the issues page",
            "unchecked: an ISO 27001 certificate. The security page states certification and no certificate or auditor was named on the pages read",
            "unchecked: the monthly-billed prices. The pricing page shows $24 and $36 beside the yearly prices of $13 and $20 with a label of 44 per cent saved, and we read them as the monthly prices",
            "unchecked: rate limiting in the source. The public repository has no API throttling code for the 10 requests a second, which appears to live in the enterprise edition",
            "No SLA, DPA, sub-processor list, security.txt, bug bounty, deprecation policy, idempotency key, MCP server or prompt-injection guidance was found in the reviewed pages",
            "The terms of service define their subject as the website at teable.ai and bar automated agents or scripts from sending requests to it, with no stated exception for API use. They are recorded in provenance because they are the only terms published and cover accounts and AI usage",
            "Advisory GHSA-h4hg-45pv-pv8j affected self-hosted instances on local storage, was fixed before publication and credited its reporters. No deduction was taken, a judgement call, because the graded surface is the cloud and the advisory says object-storage deployments are not reachable",
            "The status page has existed since 28 July 2026, so its history covers about 72 of the last 90 days",
            "An unauthenticated request to a record endpoint returned 403 with `restricted_resource`, not 401",
            "The lead was right on vendor, URL and interface. The legal entity is Teable AI, Inc., the API base is app.teable.ai, and an official CLI and agent skill exist that the lead didn't mention"
          ]
        },
        "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"
      },
      "notable": [
        "The API overview gives one base URL, https://app.teable.ai, bearer tokens, and two token kinds, personal access tokens and OAuth access tokens, both limited by scope (https://help.teable.ai/en/api-doc/overview)",
        "OAuth apps are created self-serve in settings and support client secret, PKCE and the device authorisation grant, which is off until the app owner enables it (https://help.teable.ai/en/api-doc/oauth)",
        "The pricing page lists the Web API on every plan with an API rate limit of 10 requests a second on Free, Pro and Business (https://teable.ai/pricing)",
        "Since 10 September 2026, personal API keys created on Teable Cloud return at most 100 records a request. Older keys, OAuth tokens and self-hosted instances still accept 1,000 (https://help.teable.ai/en/api-doc/record/get)",
        "The Teable agent skill installs with `npx skills add https://github.com/teableio/agent-skills` and drives the `teable` CLI, which signs in by OAuth with PKCE, a device code or a personal access token (https://github.com/teableio/agent-skills)",
        "Advisory GHSA-h4hg-45pv-pv8j (CVE-2026-104100, CVSS 8.8) describes a file write as root through the attachment endpoint on self-hosted instances using local storage. It was patched in the release of 20 July 2026 and published on 26 August 2026 (https://github.com/teableio/teable/security/advisories/GHSA-h4hg-45pv-pv8j)",
        "The terms of service bar automated agents or scripts from generating requests to the Site, defined as the website at teable.ai, with no stated exception for the API (https://teable.ai/terms-of-service)"
      ],
      "area": "business",
      "details": [
        {
          "label": "Surfaces graded",
          "value": "Teable Cloud's REST API at https://app.teable.ai/api. The same API runs on self-hosted instances. An official CLI, `@teable/cli`, and an agent skill in teableio/agent-skills wrap it. No MCP server was found"
        },
        {
          "label": "Free tier",
          "value": "Free cloud plan with 1,000 rows and 1 GB of attachments per space, 100 automation runs a month and 200 one-time AI credits. The Web API is on every plan"
        },
        {
          "label": "Rate limits",
          "value": "10 API requests a second on every cloud plan. Automation webhooks 50 a second per project and 2 per workflow. Token requests 30 per 15 minutes. Notifications 30 a minute per user and 600 a minute per app"
        },
        {
          "label": "Page size",
          "value": "`take` up to 100 records for personal keys created on Teable Cloud since 10 September 2026. Older keys, OAuth tokens and self-hosted instances accept up to 1,000. `skip` or `cursor` for the next page"
        },
        {
          "label": "Auth and scopes",
          "value": "Personal access tokens with an expiry, scopes and a list of spaces and projects. OAuth 2.0 apps with client secret, PKCE or device flow, created self-serve in settings. About 50 scopes of the form `resource|action`"
        },
        {
          "label": "Token lifetimes",
          "value": "OAuth access token 10 minutes, refresh token 30 days with rotation, authorisation code 5 minutes, device code 15 minutes"
        },
        {
          "label": "Errors",
          "value": "JSON body with `message`, `status` and `code`, for example `restricted_resource` on 403. Documented statuses are 400, 401, 403, 404, 500 and 503. 429 on rate limit"
        },
        {
          "label": "Field types",
          "value": "20 types can be created by API, among them formula, rollup, conditional rollup, link, attachment, user, single and multiple select and button"
        },
        {
          "label": "SDK and CLI",
          "value": "`@teable/openapi` 1.10.0 (MIT, JavaScript, published 15 September 2025). `@teable/cli` 0.6.45 (ISC, Node 22 or later, published 25 September 2026, 23 versions in 90 days)"
        },
        {
          "label": "Audit",
          "value": "Record history kept 2 weeks on Free, 1 year on Pro and 3 years on Business. Login history for 30 days. The Admin Panel audit log is for self-hosted Business plans and above"
        },
        {
          "label": "Hosting and certification",
          "value": "AWS US-West (Oregon), AES-256 at rest and TLS in transit, ISO 27001 certification stated by the vendor with no certificate linked"
        },
        {
          "label": "Status",
          "value": "status.teable.ai on Kener with two monitors, Teable Service and AI chat, and a 90-day view. The page was set up on 28 July 2026"
        },
        {
          "label": "Licence",
          "value": "AGPL-3.0 with brand terms for the two apps, MIT for packages. Enterprise functions and the CLI are built in a private repository"
        }
      ],
      "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,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Teable AI, Inc.",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "teable.ai, registered 2025-03-25 (1 year)",
            "points": 3,
            "max": 15,
            "state": "part"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "app.teable.ai",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Terms of service",
            "value": "read, states 6 of the 7 things a reader expects, and has 3 clauses that cost points",
            "points": 3.1,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 6 of the 8 things a reader expects",
            "points": 8.5,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "status.teable.ai",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "Changelog",
            "value": "published",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "https://teable.ai/terms-of-service",
            "state": "read",
            "readAt": "2026-10-08",
            "statedDate": "2026-05-25",
            "words": 7466,
            "points": 3.1,
            "max": 10,
            "expected": [
              {
                "key": "terms.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "Last revised on: 2026-05-25",
                "says": "Last updated 2026-05-25"
              },
              {
                "key": "terms.law",
                "label": "Names the governing law or courts",
                "found": true,
                "quote": "…claim or request for relief) shall be severed from the arbitration and may be litigated in the courts of Delaware or the U.S.",
                "says": "Disputes go to the courts of Delaware"
              },
              {
                "key": "terms.liability",
                "label": "States a limit on its liability",
                "found": true,
                "quote": "TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL COMPANY (OR OUR SUPPLIERS) BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOST PROFITS, LOST DATA, COSTS OF PROCUREMENT OF SUBSTITUTE PRODUCTS, OR ANY INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL OR PUNITIVE DAMAGES ARISING FROM OR RELATING TO THESE TER…",
                "says": "Rules out indirect and consequential losses, with no cap named in this sentence"
              },
              {
                "key": "terms.termination",
                "label": "Says how the agreement or account can be ended",
                "found": true,
                "quote": "Company may suspend or terminate your Account in accordance with Section 8."
              },
              {
                "key": "terms.changes",
                "label": "Says how changes to the terms are announced",
                "found": true,
                "quote": "…any provision in these Terms to the contrary, we agree that if Company makes any future material change to this Arbitration Agreement, you may reject that change within 30 days of such change becoming effective by writing Company at the following address: 1111B S Governors Ave STE 48501 Dover, DE 19904 US, or email to…",
                "says": "Gives 30 days of notice before a change"
              },
              {
                "key": "terms.use",
                "label": "Lists what users may not do",
                "found": true,
                "quote": "you may not access or use the Site or accept the Terms if you are not at least 18 years old."
              },
              {
                "key": "terms.sla",
                "label": "Refers to a service level or uptime commitment",
                "found": false
              }
            ],
            "toKnow": [
              {
                "key": "terms.automated",
                "label": "Restricts automated access",
                "found": true,
                "quote": "(vii) use software or automated agents or scripts to produce multiple accounts on the Site, or to generate automated searches, requests, or queries to (or to strip, scrape, or mine data from) the Site",
                "costsPoints": true
              },
              {
                "key": "terms.benchmark",
                "label": "Restricts benchmarking or competitive use",
                "found": true,
                "quote": "(c) you shall not access the Site in order to build a similar or competitive website, product, or service;",
                "costsPoints": true
              },
              {
                "key": "terms.nonotice",
                "label": "Says the terms or the service can change without notice",
                "found": true,
                "quote": "Company reserves the right, at any time, to modify, suspend, or discontinue the Site (in whole or in part) with or without notice to you.",
                "costsPoints": true
              },
              {
                "key": "terms.cutoff",
                "label": "Says access can be ended without notice or for any reason",
                "found": true,
                "quote": "We may suspend or terminate your rights to use the Site (including your Account) at any time for any reason at our sole discretion, including for any use of the Site in violation of these Terms."
              },
              {
                "key": "terms.arbitration",
                "label": "Requires arbitration or waives class actions",
                "found": true,
                "quote": "AMONG OTHER THINGS, SECTION 10.2 INCLUDES AN AGREEMENT TO ARBITRATE WHICH REQUIRES, WITH LIMITED EXCEPTIONS, THAT ALL DISPUTES BETWEEN YOU AND US SHALL BE RESOLVED BY BINDING AND FINAL ARBITRATION."
              }
            ],
            "notes": [
              {
                "date": "2026-10-08",
                "text": "Liability for any damages under the terms is limited to fifty US dollars, whatever the number of claims.",
                "quote": "WILL AT ALL TIMES BE LIMITED TO A MAXIMUM OF FIFTY US DOLLARS."
              },
              {
                "date": "2026-10-08",
                "text": "AI model access may not be relayed, proxied or resold to anyone other than the account holder and the end users of the application.",
                "quote": "You may not make Teable's AI model access available to any person or system other than yourself and the application's end users through resale, sublicensing, relaying, proxying, or any other means."
              },
              {
                "date": "2026-10-08",
                "text": "The company states it has no duty to back up user content and that the content may be deleted at any time without prior notice.",
                "quote": "Company is not obligated to backup any User Content, and your User Content may be deleted at any time without prior notice."
              }
            ]
          },
          {
            "kind": "privacy",
            "url": "https://teable.ai/privacy",
            "state": "read",
            "readAt": "2026-10-08",
            "statedDate": "2026-10-01",
            "words": 1704,
            "points": 8.5,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "Last updated: October 1, 2026",
                "says": "Last updated 2026-10-01"
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": true,
                "quote": "We collect information you provide when you register, manage your profile, contact us, or purchase a subscription."
              },
              {
                "key": "privacy.retention",
                "label": "Says how long data is kept",
                "found": true,
                "quote": "Server logs and database backups are retained for up to thirty days.",
                "says": "Names a period of thirty days"
              },
              {
                "key": "privacy.processors",
                "label": "Says who else receives the data",
                "found": true,
                "quote": "We share information with providers that help us operate the Service, including hosting, payment, email, analytics, and diagnostic services."
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": true,
                "quote": "Website advertising disclosures may qualify as \"sharing\" or a \"sale\" under some privacy laws."
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": true,
                "quote": "We respond as required by applicable law and do not discriminate against you for exercising your rights."
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": false
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": false
              }
            ],
            "notes": [
              {
                "date": "2026-10-08",
                "text": "Content used by AI functions, including project tables, records and files, is sent to OpenAI directly or through Vercel's AI Gateway, and both are contractually barred from training models on it.",
                "quote": "OpenAI and Vercel act as our processors and are contractually barred from training models on your content."
              },
              {
                "date": "2026-10-08",
                "text": "Self-hosted deployments connected to the internet may send a licence compliance attestation to Teable, which an administrator can switch off.",
                "quote": "Internet-connected deployments may send a limited license compliance attestation to Teable to validate licenses, detect copying or overuse, and verify authorized software distributions."
              }
            ]
          }
        ]
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/teable.json",
      "live": {
        "slug": "teable",
        "probe": {
          "target": "https://app.teable.ai/api",
          "method": "get",
          "lastAt": "2026-10-08T21:41:51.535000491Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 207,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 547,
          "p95ms24h": 1529,
          "samples24h": 26,
          "samples30d": 26,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 26,
              "ok": 26
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.teable.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:39:15.867543558Z"
        },
        "updatedAt": "2026-10-08T21:41:51.535000491Z"
      }
    },
    "verify": {
      "accepts": "a page on teable.ai or one of its subdomains, or the README of github.com/teableio/teable",
      "badgeUrl": "https://www.anchorterminal.com/badges/teable.svg",
      "body": {
        "slug": "teable",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/teable",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/teable\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/teable.svg\" alt=\"Teable on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![Teable on Anchor Terminal](https://www.anchorterminal.com/badges/teable.svg)](https://www.anchorterminal.com/tools/teable)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/teable\"\u003eTeable on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/teable",
    "json": "https://www.anchorterminal.com/tools/teable.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/teable.md",
    "slim": "https://www.anchorterminal.com/tools/teable.min.md"
  },
  "markdown": "## Overview\n\n**Grade C · 61/100 · rank #379 of 722 · #8 in Spreadsheets \u0026 operational tables · not agent-ready · confidence medium**\n\n\n## Assessment\n\nPersonal 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## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | Teable AI, Inc. (https://teable.ai) |\n| Kind | HTTP API |\n| Category | Spreadsheets \u0026 operational tables (https://www.anchorterminal.com/categories/spreadsheets) |\n| Transport | HTTP |\n| Endpoint | `https://app.teable.ai/api` |\n| Auth | OAuth or key · 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. |\n| Pricing | Freemium ($13 / seat-mo) · 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). |\n| x402 | No · No x402, MPP or L402 in the API docs, the OpenAPI file or the pricing page (checked 2026-10-08). |\n| Licence | 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| Packages | npm: `@teable/openapi`; npm: `@teable/cli` |\n| Source | https://github.com/teableio/teable |\n| Docs | https://help.teable.ai/en/api-doc/overview |\n| llms.txt | https://help.teable.ai/llms.txt |\n| Last release | 2026-10-06 |\n| GitHub stars | 21,869 (as of 2026-10-08) |\n| npm downloads / week | 179 |\n| Surfaces graded | Teable Cloud's REST API at https://app.teable.ai/api. The same API runs on self-hosted instances. An official CLI, `@teable/cli`, and an agent skill in teableio/agent-skills wrap it. No MCP server was found |\n| Free tier | Free cloud plan with 1,000 rows and 1 GB of attachments per space, 100 automation runs a month and 200 one-time AI credits. The Web API is on every plan |\n| Rate limits | 10 API requests a second on every cloud plan. Automation webhooks 50 a second per project and 2 per workflow. Token requests 30 per 15 minutes. Notifications 30 a minute per user and 600 a minute per app |\n| Page size | `take` up to 100 records for personal keys created on Teable Cloud since 10 September 2026. Older keys, OAuth tokens and self-hosted instances accept up to 1,000. `skip` or `cursor` for the next page |\n| Auth and scopes | Personal access tokens with an expiry, scopes and a list of spaces and projects. OAuth 2.0 apps with client secret, PKCE or device flow, created self-serve in settings. About 50 scopes of the form `resource\\|action` |\n| Token lifetimes | OAuth access token 10 minutes, refresh token 30 days with rotation, authorisation code 5 minutes, device code 15 minutes |\n| Errors | JSON body with `message`, `status` and `code`, for example `restricted_resource` on 403. Documented statuses are 400, 401, 403, 404, 500 and 503. 429 on rate limit |\n| Field types | 20 types can be created by API, among them formula, rollup, conditional rollup, link, attachment, user, single and multiple select and button |\n| SDK and CLI | `@teable/openapi` 1.10.0 (MIT, JavaScript, published 15 September 2025). `@teable/cli` 0.6.45 (ISC, Node 22 or later, published 25 September 2026, 23 versions in 90 days) |\n| Audit | Record history kept 2 weeks on Free, 1 year on Pro and 3 years on Business. Login history for 30 days. The Admin Panel audit log is for self-hosted Business plans and above |\n| Hosting and certification | AWS US-West (Oregon), AES-256 at rest and TLS in transit, ISO 27001 certification stated by the vendor with no certificate linked |\n| Status | status.teable.ai on Kener with two monitors, Teable Service and AI chat, and a 90-day view. The page was set up on 28 July 2026 |\n| Licence | AGPL-3.0 with brand terms for the two apps, MIT for packages. Enterprise functions and the CLI are built in a private repository |\n| Capabilities | sheets.read, sheets.write, sheets.records, sheets.tables, sheets.formulas |\n| Tags | official, hosted, self-hosted, open-source, free-tier, oauth, pat, openapi, llms-txt, cli, agent-skill, status-page, iso27001 |\n| JSON | https://www.anchorterminal.com/api/v1/tools/teable.json |\n\n## Score breakdown (methodology v0.4, October 2026 research run)\n\nAssessed 2026-10-08 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 72 | 14.4 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 75 | 12.2 |\n| Agent ergonomics | 13% | 16.2 | 65 | 10.6 |\n| Security \u0026 auth | 14% | 17.5 | 62 | 10.8 |\n| Payments \u0026 pricing | 10% | 12.5 | 30 | 3.8 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 76 | 6.7 |\n| Transparency \u0026 trust (editorial 58, provenance 70) | 7% | 8.8 | 64 | 5.6 |\n| Negative events | up to −15 | up to −15 | 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  | -3 |\n| **Total** | | | | **61 → C** |\n\n### Why each score\n\n- Reliability 72: Graded on Teable Cloud's REST API, with the hosted lines. Status page at status.teable.ai with two monitors and a 90-day view, set up on 28 July 2026, so about 72 days of history exist (20). Its feed lists three incidents. On 27 August 2026 the app and API returned 503s for 5 minutes, on 27 and 28 August the AI gateway was slow for 98 minutes, and on 25 September a maintenance window on AI functions ran 22 minutes over. Only the first touched the API, and all are minor (20). The pricing page and docs give 10 API requests a second on every plan (15). The API answers 429 over the limit and the docs suggest caching and backoff, but Retry-After is documented only for the notifications endpoint and no idempotency key was found (7 of 15). No SLA found (0). The API is generally available with no beta label (10).\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 75: Public OpenAPI 3.0.0 file with 712 paths and 841 operations (25). llms.txt, llms-full.txt and a Markdown copy of every help page (10). All but one operation has a description, and each names the token scopes it needs. They are one or two sentences and don't say when not to use a call (13 of 20). Enums and required fields are used widely, but `filter` and `orderBy` are JSON passed as strings and record `fields` is an untyped object (9 of 15). The four record pages have curl, JavaScript, TypeScript and Python examples. The OpenAPI file documents only 200 and 201 responses apart from one 400, and the error page lists HTTP statuses without a code table (8 of 15). The file's version is fixed at 1.0.0 with no version in the path. A dated public changelog, updated most days, records API behaviour changes (10 of 15).\n- Agent ergonomics 65: Record reads take `projection` to choose fields, `take` to cap rows and `cellFormat=text` for plain values (20 of 25). Paging by `take` and `skip` or a keyset `cursor`, with `filter`, `search`, `orderBy` and `viewId` (20). Errors are JSON with `message`, `status` and a `code` such as `restricted_resource`, and the docs tie 403 to a missing scope. No list of codes is published (12 of 20). No idempotency key or upsert call was found for records. Create, update and delete accept several records in one call, which cuts the writes to retry (5 of 20). Few required parameters and name-keyed fields by default. The only client library is `@teable/openapi` for JavaScript, with an official CLI beside it (8 of 15).\n- Security \u0026 auth 62: OAuth 2.0 with client secret, PKCE and device flows, 10-minute access tokens, rotating refresh tokens and per-action scopes. Personal access tokens need an expiry and take scopes and a list of spaces and projects (30). Read-only tokens are possible per project, and deleted items go to a trash. The API has no approval step for deletes, and the agent skill only instructs a read before each write (14 of 20). Records can hold text written by others and no prompt-injection guidance was found (0 of 15). Record history runs 2 weeks to 3 years by plan and login history 30 days, but the audit log is documented for self-hosted Business plans and above (6 of 15). SECURITY.md sets out private reporting and coordinated disclosure, and one advisory with a CVE was published on 26 August 2026 after its fix. ISO 27001 is the vendor's statement with no certificate linked. No security.txt or bug bounty (12 of 20).\n- Payments \u0026 pricing 30: Graded on the hosted cloud. No x402, MPP or L402 found (0). Plan prices are public, Pro at $13 and Business at $20 a seat a month billed yearly, with no per-call price (10). A Free plan with 1,000 rows per space. The pricing page mentions cards only for subscriptions, and we didn't complete a signup (20). Signup is a browser flow, and the security page says Cloudflare Turnstile guards registration, so an agent can't get access by itself (0).\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 76: The changelog's latest entry is 6 October 2026, 2 days before the check, and the public repository's newest release tag is 2 October (30). The changelog has entries on most days of the last 90 (20). The repository shows 88 open issues, the most recent updated on 1 October 2026, and a community forum exists. We didn't read reply times (12 of 25). `@teable/cli` 0.6.45 came out on 25 September 2026 with 23 versions in 90 days, but `@teable/openapi`, the client in the docs' examples, was last published on 15 September 2025 (7 of 15). The repository has unit, integration and lint workflows and a Renovate config. We didn't read the current CI result (7 of 10).\n- Transparency \u0026 trust 64: The backend and web app are AGPL-3.0 with added brand terms and the packages are MIT. Enterprise functions and the CLI come from a private repository, and the public one is synced from it (24 of 30). The privacy policy is dated 1 October 2026, gives 30 days for trash, server logs and backups, and names OpenAI and Vercel as AI processors. No DPA was found, and the terms define their subject as the website (18 of 30). No deprecation policy found. The 100-record cap came with a date and kept older keys at 1,000, while other API changes appear in the changelog on the day they ship (6 of 20). Hosting on AWS in Oregon is stated and two AI processors are named, with no full sub-processor list (10 of 20).\n\nFix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (23 items): https://www.anchorterminal.com/fixes/teable.md (JSON https://www.anchorterminal.com/fixes/teable.json)\n\n### What we couldn't check\n\n- unchecked: whether signup on Teable Cloud asks for a card or an email confirmation. We didn't create an account\n- unchecked: reply times on GitHub issues and the current CI result. The GitHub API refused us, and the count of 88 open issues is read from the issues page\n- unchecked: an ISO 27001 certificate. The security page states certification and no certificate or auditor was named on the pages read\n- unchecked: the monthly-billed prices. The pricing page shows $24 and $36 beside the yearly prices of $13 and $20 with a label of 44 per cent saved, and we read them as the monthly prices\n- unchecked: rate limiting in the source. The public repository has no API throttling code for the 10 requests a second, which appears to live in the enterprise edition\n- No SLA, DPA, sub-processor list, security.txt, bug bounty, deprecation policy, idempotency key, MCP server or prompt-injection guidance was found in the reviewed pages\n- The terms of service define their subject as the website at teable.ai and bar automated agents or scripts from sending requests to it, with no stated exception for API use. They are recorded in provenance because they are the only terms published and cover accounts and AI usage\n- Advisory GHSA-h4hg-45pv-pv8j affected self-hosted instances on local storage, was fixed before publication and credited its reporters. No deduction was taken, a judgement call, because the graded surface is the cloud and the advisory says object-storage deployments are not reachable\n- The status page has existed since 28 July 2026, so its history covers about 72 of the last 90 days\n- An unauthenticated request to a record endpoint returned 403 with `restricted_resource`, not 401\n- The lead was right on vendor, URL and interface. The legal entity is Teable AI, Inc., the API base is app.teable.ai, and an official CLI and agent skill exist that the lead didn't mention\n\n### Sources\n\n- API overview: \u003chttps://help.teable.ai/en/api-doc/overview\u003e (seen 2026-10-08)\n- access token docs: \u003chttps://help.teable.ai/en/api-doc/token\u003e (seen 2026-10-08)\n- OAuth app docs: \u003chttps://help.teable.ai/en/api-doc/oauth\u003e (seen 2026-10-08)\n- error codes: \u003chttps://help.teable.ai/en/api-doc/error-code\u003e (seen 2026-10-08)\n- get records: \u003chttps://help.teable.ai/en/api-doc/record/get\u003e (seen 2026-10-08)\n- create records: \u003chttps://help.teable.ai/en/api-doc/record/create\u003e (seen 2026-10-08)\n- OpenAPI file: \u003chttps://help.teable.ai/swagger.json\u003e (seen 2026-10-08)\n- help centre llms.txt: \u003chttps://help.teable.ai/llms.txt\u003e (seen 2026-10-08)\n- full docs text (429 handling, webhook limits, agent skill): \u003chttps://help.teable.ai/llms-full.txt\u003e (seen 2026-10-08)\n- agent skill page: \u003chttps://help.teable.ai/en/basic/ai/teable-skill\u003e (seen 2026-10-08)\n- security page: \u003chttps://help.teable.ai/en/basic/security\u003e (seen 2026-10-08)\n- audit log: \u003chttps://help.teable.ai/en/basic/admin-panel/audit-log\u003e (seen 2026-10-08)\n- changelog 2026: \u003chttps://help.teable.ai/en/changelog\u003e (seen 2026-10-08)\n- pricing: \u003chttps://teable.ai/pricing\u003e (seen 2026-10-08)\n- terms of service: \u003chttps://teable.ai/terms-of-service\u003e (seen 2026-10-08)\n- privacy policy: \u003chttps://teable.ai/privacy\u003e (seen 2026-10-08)\n- status page: \u003chttps://status.teable.ai/\u003e (seen 2026-10-08)\n- status feed: \u003chttps://status.teable.ai/rss.xml\u003e (seen 2026-10-08)\n- unauthenticated API response (403, restricted_resource): \u003chttps://app.teable.ai/api/table/tblx/record\u003e (seen 2026-10-08)\n- repository (cloned 8 October 2026, newest tag release.2026-10-02): \u003chttps://github.com/teableio/teable\u003e (seen 2026-10-08)\n- licence: \u003chttps://github.com/teableio/teable/blob/develop/LICENSE\u003e (seen 2026-10-08)\n- security policy: \u003chttps://github.com/teableio/teable/blob/develop/SECURITY.md\u003e (seen 2026-10-08)\n- security advisories: \u003chttps://github.com/teableio/teable/security/advisories\u003e (seen 2026-10-08)\n- advisory GHSA-h4hg-45pv-pv8j: \u003chttps://github.com/teableio/teable/security/advisories/GHSA-h4hg-45pv-pv8j\u003e (seen 2026-10-08)\n- open issues: \u003chttps://github.com/teableio/teable/issues\u003e (seen 2026-10-08)\n- agent skills repository: \u003chttps://github.com/teableio/agent-skills\u003e (seen 2026-10-08)\n- npm, @teable/cli: \u003chttps://registry.npmjs.org/@teable%2Fcli\u003e (seen 2026-10-08)\n- npm, @teable/openapi: \u003chttps://registry.npmjs.org/@teable%2Fopenapi\u003e (seen 2026-10-08)\n- npm weekly downloads, @teable/cli: \u003chttps://api.npmjs.org/downloads/point/last-week/@teable/cli\u003e (seen 2026-10-08)\n- official MCP registry search (no result): \u003chttps://registry.modelcontextprotocol.io/v0/servers?search=teable\u003e (seen 2026-10-08)\n- security.txt (404): \u003chttps://teable.ai/.well-known/security.txt\u003e (seen 2026-10-08)\n- RDAP for teable.ai: \u003chttps://rdap.org/domain/teable.ai\u003e (seen 2026-10-08)\n\n## Who's behind it (provenance 70/100, checked 2026-10-08)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Teable AI, Inc. | 20/20 |\n| Domain age | teable.ai, registered 2025-03-25 (1 year) | 3/15 |\n| Endpoint on the vendor's domain | app.teable.ai | 15/15 |\n| Terms of service | read, states 6 of the 7 things a reader expects, and has 3 clauses that cost points | 3.1/10 |\n| Privacy policy | read, states 6 of the 8 things a reader expects | 8.5/10 |\n| Status page | status.teable.ai | 10/10 |\n| Changelog | published | 10/10 |\n| security.txt | not found | 0/10 |\n\nThe 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.\n\nThe 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.\n\nThe privacy policy, last updated 1 October 2026, covers the websites, applications and related services, and has a section on self-hosted deployments.\n\nThe API answers at app.teable.ai, a subdomain of the vendor's domain.\n\nteable.ai/.well-known/security.txt returns 404. SECURITY.md in the repository asks for reports through GitHub's private vulnerability reporting.\n\nRDAP for teable.ai gives a registration date of 2025-03-25.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service** (https://teable.ai/terms-of-service), read 2026-10-08, dated 2026-05-25, states 6 of the 7 things a reader expects.\n\n- To know. Restricts automated access (costs points). \"(vii) use software or automated agents or scripts to produce multiple accounts on the Site, or to generate automated searches, requests, or queries to (or to strip, scrape, or mine data from) the Site\"\n- To know. Restricts benchmarking or competitive use (costs points). \"(c) you shall not access the Site in order to build a similar or competitive website, product, or service;\"\n- To know. Says the terms or the service can change without notice (costs points). \"Company reserves the right, at any time, to modify, suspend, or discontinue the Site (in whole or in part) with or without notice to you.\"\n- To know. Says access can be ended without notice or for any reason. \"We may suspend or terminate your rights to use the Site (including your Account) at any time for any reason at our sole discretion, including for any use of the Site in violation of these Terms.\"\n- To know. Requires arbitration or waives class actions. \"AMONG OTHER THINGS, SECTION 10.2 INCLUDES AN AGREEMENT TO ARBITRATE WHICH REQUIRES, WITH LIMITED EXCEPTIONS, THAT ALL DISPUTES BETWEEN YOU AND US SHALL BE RESOLVED BY BINDING AND FINAL ARBITRATION.\"\n- Gives the date it was last updated. Last updated 2026-05-25.\n- Names the governing law or courts. Disputes go to the courts of Delaware.\n- States a limit on its liability. Rules out indirect and consequential losses, with no cap named in this sentence.\n- Says how changes to the terms are announced. Gives 30 days of notice before a change.\n- Not found in the text. Refers to a service level or uptime commitment.\n- Also in the text (2026-10-08). Liability for any damages under the terms is limited to fifty US dollars, whatever the number of claims. \"WILL AT ALL TIMES BE LIMITED TO A MAXIMUM OF FIFTY US DOLLARS.\"\n- Also in the text (2026-10-08). AI model access may not be relayed, proxied or resold to anyone other than the account holder and the end users of the application. \"You may not make Teable's AI model access available to any person or system other than yourself and the application's end users through resale, sublicensing, relaying, proxying, or any other means.\"\n- Also in the text (2026-10-08). The company states it has no duty to back up user content and that the content may be deleted at any time without prior notice. \"Company is not obligated to backup any User Content, and your User Content may be deleted at any time without prior notice.\"\n\n**Privacy policy** (https://teable.ai/privacy), read 2026-10-08, dated 2026-10-01, states 6 of the 8 things a reader expects.\n\n- Gives the date it was last updated. Last updated 2026-10-01.\n- Says how long data is kept. Names a period of thirty days.\n- Not found in the text. Gives a privacy contact.\n- Not found in the text. Says where data is transferred or stored.\n- Also in the text (2026-10-08). Content used by AI functions, including project tables, records and files, is sent to OpenAI directly or through Vercel's AI Gateway, and both are contractually barred from training models on it. \"OpenAI and Vercel act as our processors and are contractually barred from training models on your content.\"\n- Also in the text (2026-10-08). Self-hosted deployments connected to the internet may send a licence compliance attestation to Teable, which an administrator can switch off. \"Internet-connected deployments may send a limited license compliance attestation to Teable to validate licenses, detect copying or overuse, and verify authorized software distributions.\"\n\n## Live (updated 2026-10-08 21:41 UTC)\n\n- Right now: up, HTTP 404, 207 ms, checked 2026-10-08 21:41 UTC (get on `https://app.teable.ai/api`)\n- Uptime 24h 100.0% (26 probes) · 30 days 100.0% (26 probes) · p50 547 ms · p95 1.5 s\n- Vendor status page: unknown, no machine-readable status found\n- Always current: https://www.anchorterminal.com/api/v1/live/teable.json\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Prices\n\n| Item | Price | Unit | Note |\n| --- | --- | --- | --- |\n| Pro (cloud) | $13 | per seat per month | billed yearly, 250,000 rows and 10 GB per space, 2,000 AI credits a seat |\n| Business (cloud) | $20 | per seat per month | billed yearly, 1,000,000 rows and 100 GB per space, SSO and authority matrix |\n| Automation add-on, 10,000 runs | $10 | per month (plan) | per space, billed yearly, $12 billed monthly, Pro plan or above |\n\nAcross all listings: https://www.anchorterminal.com/prices/index.md\n\n## Strengths\n\n- 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`\n- Personal access tokens take an expiry, a set of scopes and a list of spaces and projects they can reach, and are shown once\n- 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\n- List records takes `projection`, `take`, `skip`, `cursor`, `filter`, `search`, `orderBy` and `viewId`, so responses can be sized\n- The help centre serves every page as Markdown, with an llms.txt index and an llms-full.txt file\n\n## Weaknesses\n\n- 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- No idempotency key or upsert call was found for record writes, and Retry-After is documented only for the notifications endpoint\n- Teable Cloud allows 10 API requests a second on every plan, Free to Business, with no higher tier published\n- Audit logs are documented for self-hosted Business plans and above, and no SLA, DPA or sub-processor list was found\n- `@teable/openapi`, the JavaScript client the docs use in examples, was last published on 15 September 2025\n\n## Before you call it (notes for agents)\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## Connect\n\nInstall:\n\n```bash\nnpx skills add https://github.com/teableio/agent-skills\n```\n\nFirst request:\n\n```bash\ncurl -H 'Authorization: Bearer __token__' \\\n  'https://app.teable.ai/api/table/__tableId__/record'\n```\n\nThrough letme (picks today, calling later): https://letme.dev/teable. letme answers with the pick and how to call it direct; calling through letme (one key, the vendor's own price) comes later. How it works: https://www.anchorterminal.com/letme/index.md\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| NocoDB | BB | 75.7 | 37 | sheets.records, sheets.read, sheets.write, sheets.tables, sheets.formulas | no | https://www.anchorterminal.com/tools/nocodb.md |\n| Airtable | BB | 70.9 | 124 | sheets.records, sheets.read, sheets.write, sheets.tables, sheets.formulas | no | https://www.anchorterminal.com/tools/airtable.md |\n| SeaTable | B | 66.3 | 241 | sheets.records, sheets.read, sheets.write, sheets.tables, sheets.formulas | no | https://www.anchorterminal.com/tools/seatable.md |\n| Coda (Superhuman Docs) | B | 64.8 | 270 | sheets.read, sheets.write, sheets.tables, sheets.records, sheets.formulas | no | https://www.anchorterminal.com/tools/coda.md |\n| Baserow | B | 63.6 | 306 | sheets.records, sheets.read, sheets.write, sheets.tables, sheets.formulas | no | https://www.anchorterminal.com/tools/baserow.md |\n| Grist | D | 50.1 | 597 | sheets.records, sheets.read, sheets.write, sheets.tables, sheets.formulas | no | https://www.anchorterminal.com/tools/grist.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- The API overview gives one base URL, https://app.teable.ai, bearer tokens, and two token kinds, personal access tokens and OAuth access tokens, both limited by scope (source: \u003chttps://help.teable.ai/en/api-doc/overview\u003e)\n- OAuth apps are created self-serve in settings and support client secret, PKCE and the device authorisation grant, which is off until the app owner enables it (source: \u003chttps://help.teable.ai/en/api-doc/oauth\u003e)\n- The pricing page lists the Web API on every plan with an API rate limit of 10 requests a second on Free, Pro and Business (source: \u003chttps://teable.ai/pricing\u003e)\n- Since 10 September 2026, personal API keys created on Teable Cloud return at most 100 records a request. Older keys, OAuth tokens and self-hosted instances still accept 1,000 (source: \u003chttps://help.teable.ai/en/api-doc/record/get\u003e)\n- The Teable agent skill installs with `npx skills add https://github.com/teableio/agent-skills` and drives the `teable` CLI, which signs in by OAuth with PKCE, a device code or a personal access token (source: \u003chttps://github.com/teableio/agent-skills\u003e)\n- Advisory GHSA-h4hg-45pv-pv8j (CVE-2026-104100, CVSS 8.8) describes a file write as root through the attachment endpoint on self-hosted instances using local storage. It was patched in the release of 20 July 2026 and published on 26 August 2026 (source: \u003chttps://github.com/teableio/teable/security/advisories/GHSA-h4hg-45pv-pv8j\u003e)\n- The terms of service bar automated agents or scripts from generating requests to the Site, defined as the website at teable.ai, with no stated exception for the API (source: \u003chttps://teable.ai/terms-of-service\u003e)\n\n## Compare\n\n- [Coda (Superhuman Docs) vs Teable](https://www.anchorterminal.com/compare/coda-vs-teable.md): B 64.8 vs C 61\n- [Google Sheets API vs Teable](https://www.anchorterminal.com/compare/google-sheets-api-vs-teable.md): BB 76.3 vs C 61\n- [Microsoft Excel (Microsoft Graph workbook API) vs Teable](https://www.anchorterminal.com/compare/microsoft-excel-graph-vs-teable.md): C 58.5 vs C 61\n- [Smartsheet API + MCP vs Teable](https://www.anchorterminal.com/compare/smartsheet-vs-teable.md): B 67.6 vs C 61\n- [Airtable vs Teable](https://www.anchorterminal.com/compare/airtable-vs-teable.md): BB 70.9 vs C 61\n- [Baserow vs Teable](https://www.anchorterminal.com/compare/baserow-vs-teable.md): B 63.6 vs C 61\n- [Grist vs Teable](https://www.anchorterminal.com/compare/grist-vs-teable.md): D 50.1 vs C 61\n- [NocoDB vs Teable](https://www.anchorterminal.com/compare/nocodb-vs-teable.md): BB 75.7 vs C 61\n- [SeaTable vs Teable](https://www.anchorterminal.com/compare/seatable-vs-teable.md): B 66.3 vs C 61\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on teable.ai or one of its subdomains, or the README of github.com/teableio/teable. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"teable\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/teable\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/teable.svg\" alt=\"Teable on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![Teable on Anchor Terminal](https://www.anchorterminal.com/badges/teable.svg)](https://www.anchorterminal.com/tools/teable)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/teable\"\u003eTeable on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Teable is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/teable-dark.png\n- Light: https://www.anchorterminal.com/assets/share/teable-light.png\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Spreadsheets \u0026 operational tables",
        "url": "https://www.anchorterminal.com/categories/spreadsheets"
      },
      {
        "name": "Teable",
        "url": ""
      }
    ],
    "description": "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.",
    "facts": [
      "rank #379 of 722",
      "OAuth or key auth",
      "0 desk reviews"
    ],
    "h1": "Teable",
    "image": "https://www.anchorterminal.com/assets/og/tools-teable.png",
    "path": "/tools/teable",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Teable review for AI agents, grade C (61/100) | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/tools/teable"
  },
  "tokens": {
    "markdown": 8200,
    "slim": 1880
  },
  "version": 1
}
