{
  "data": {
    "a": {
      "slug": "kontent-ai",
      "name": "Kontent.ai",
      "vendor": "Kontent CZ s.r.o.",
      "vendorUrl": "https://kontent.ai",
      "kind": "http-api",
      "category": "cms",
      "summary": "Kontent.ai is a hosted headless CMS from Kontent CZ s.r.o. in Brno. Its Management API v2 reads and writes content items, language variants, assets, content models and workflow steps, and an open-source MCP server wraps it.",
      "url": "https://www.anchorterminal.com/tools/kontent-ai",
      "markdownUrl": "https://www.anchorterminal.com/tools/kontent-ai.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kontent-ai.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kontent-ai.json",
      "repo": "https://github.com/kontent-ai/mcp-server",
      "license": "Proprietary service under the Kontent.ai Terms of Service. The management SDKs for JavaScript and .NET and the MCP server on GitHub are MIT",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://manage.kontent.ai/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@kontent-ai/management-sdk"
        },
        {
          "registry": "npm",
          "name": "@kontent-ai/mcp-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "A Bearer API key in the `Authorization` header. A project manager creates a Management API key in the web app under Project settings, API keys, and picks its permissions (read content, edit content, read assets, edit assets, content model, environment settings), the environments it reaches and its expiry (1 minute to 2 years, 6 months by default). A Personal API key inherits its owner's role instead. Regenerating a key revokes the old one after a few minutes. No OAuth flow and no API for creating keys was found. The Management API has to be enabled per environment.",
      "pricing": "paid",
      "pricingNotes": "No public price. The pricing page shows sliders for user seats, content types and content items and a form that requests a calculation, and the terms put the price, limits and overage unit prices in an order form. A 30-day trial needs no card and includes API access. The terms mention a Developer Plan, which the pricing page does not show (checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Management API docs, the MCP server README or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 54,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 8381,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://kontent.ai/learn/docs/apis/management-api-v2",
      "llmsTxt": "https://kontent.ai/llms.txt",
      "registryName": "io.github.kontent-ai/mcp-server",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.localisation",
        "cms.schema"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "api-key",
        "mcp",
        "free-trial",
        "no-card",
        "sales-led",
        "llms-txt",
        "typescript",
        "dotnet",
        "webhooks",
        "graphql",
        "status-page",
        "soc2",
        "iso27001",
        "audit-log"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.5,
        "grade": "BB",
        "agentReady": true,
        "rank": 153,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 83,
          "payments": 20,
          "reliability": 82,
          "schema": 74,
          "security": 81,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Management API keys take per-area permissions, environment limits and an expiry from one minute to two years, and changes made with a key are named in the audit log. Rate limits and Retry-After are documented. No price is published, and no OpenAPI file was found. Access starts with a 30-day trial that a person opens in a browser.",
        "bestFor": "A company already on Kontent.ai, or evaluating it on a trial, that wants an agent to draft, localise, move through workflow and publish structured content with a permission-limited key and an audit trail.",
        "strengths": [
          "Management API keys carry selectable permissions (read content, edit content, assets, content model, environment settings), environment limits and an expiry from 1 minute to 2 years",
          "Rate limits are published (10 requests a second and 400 a minute per environment), and a 429 carries a Retry-After header",
          "The audit log keeps 90 days of changes and names the API key that made each one. Content item changes were added on 2 October 2026",
          "All 54 tools in the MCP server (MIT, version 0.39.0) set readOnlyHint and destructiveHint, and its README has a section on indirect prompt injection",
          "security.txt is valid to July 2027, with a disclosure policy that pays discretionary rewards, and the trust centre lists SOC 2 Type 2 and ISO 27001, 27017, 27018 and 42001",
          "The sub-processor page names each vendor, its location and the data sent, and projects can be stored in the US, the Netherlands, Australia or Canada"
        ],
        "weaknesses": [
          "No price is published. The pricing page shows sliders for seats, content types and items and a form that requests a quote",
          "No OpenAPI file was found. The docs link a Postman collection, which we did not read",
          "Access needs a person. The 30-day trial needs no card, but sign-up, the Management API toggle and key creation happen in the web app",
          "No idempotency keys. The docs advise against parallel requests, saying they may cause inconsistencies in content",
          "The availability annex covers the administration interface and the Delivery API, not the Management API, and the guaranteed level sits in each order form",
          "The Terms of Service forbid automated access to the Service unless the procedure is described in the documentation. This matters before any probe is run",
          "The MCP server loads 54 tools, 22 of them marked destructive, and runs only on the owner's machine. No hosted endpoint was found"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003ckey\u003e` to `https://manage.kontent.ai/v2/projects/{environment_id}/...`. The Management API must be switched on under Environment settings, General, Enabled APIs first",
          "Ask for a Management API key with only the permissions the task needs. Read content alone gives a read-only key, and keys expire after six months by default",
          "Stay under 10 requests a second and 400 a minute per environment, send requests one at a time, and wait the seconds in Retry-After on a 429",
          "Page lists by passing the `continuation_token` from the response back in the `x-continuation` header",
          "Create items with an `external_id` and write with the upsert PUT at `/items/external-id/{id}` so a retry after a lost response does not create a duplicate",
          "With the MCP server, call `get-patch-guide` before any patch tool, and use a client that prompts on destructiveHint"
        ],
        "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": 70.5
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 83,
          "payments": 20,
          "reliability": 82,
          "schema": 74,
          "security": 81,
          "transparency": 69
        },
        "provenanceScore": 80
      },
      "connect": {
        "install": "npm i @kontent-ai/management-sdk --save",
        "http": "curl --request GET \\\n  --url https://manage.kontent.ai/v2/projects/KONTENT_AI_ENVIRONMENT_ID/items \\\n  --header 'Authorization: Bearer KONTENT_AI_MANAGEMENT_API_KEY' \\\n  --header 'Content-type: application/json'",
        "config": {
          "kontent-ai-stdio": {
            "args": [
              "@kontent-ai/mcp-server@latest",
              "stdio"
            ],
            "command": "npx",
            "env": {
              "KONTENT_API_KEY": "\u003cyour-management-api-key\u003e",
              "KONTENT_ENVIRONMENT_ID": "\u003cyour-environment-id\u003e"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/kontent-ai"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Kontent CZ s.r.o.",
        "domain": "kontent.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://kontent.ai/terms-of-service/",
        "privacy": "https://kontent.ai/privacy/",
        "statusPage": "https://status.kontent.ai",
        "changelog": "https://kontent.ai/learn/product-updates",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Terms of Service effective 11 September 2026 name Kontent CZ s.r.o., Nové sady 996/25, 602 00 Brno, Czech Republic, company number 173 00 576, or an affiliate named in the order form. The Data Processing Addendum and the availability and AI annexes are part of the same page.",
          "The privacy policy effective 2 June 2025 is issued by Kontent s.r.o. at the same address with Kontent CZ s.r.o. and Kontent US, LLC as joint controllers, and has a section for users of the product.",
          "The Management API answers at manage.kontent.ai, a kontent.ai subdomain.",
          "kontent.ai/.well-known/security.txt gives security@kontent.ai, a PGP key, the disclosure policy and an Open Bug Bounty page, and expires on 21 July 2027.",
          "The domain's registration date was not looked up."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kontent-ai.json",
      "live": {
        "slug": "kontent-ai",
        "probe": {
          "target": "https://manage.kontent.ai/v2",
          "method": "get",
          "lastAt": "2026-10-10T02:54:59.59146656Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 364,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 373,
          "p95ms24h": 588,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.kontent.ai",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:50:26.134791542Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "kontent-ai/mcp-server",
            "version": "0.39.0",
            "released": "2026-08-31",
            "seenAt": "2026-10-09T17:00:51.588844437Z"
          },
          {
            "registry": "npm",
            "name": "@kontent-ai/management-sdk",
            "version": "8.5.7",
            "seenAt": "2026-10-09T17:00:49.298560089Z"
          },
          {
            "registry": "npm",
            "name": "@kontent-ai/mcp-server",
            "version": "0.39.0",
            "seenAt": "2026-10-09T17:00:50.153755771Z"
          }
        ],
        "githubStars": 9,
        "npmWeekly": 8381,
        "pages": [
          {
            "url": "https://kontent.ai/learn/product-updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:45.195164377Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3f0ce279378b"
          },
          {
            "url": "https://kontent.ai/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:47.371617041Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "47ae43c907ba"
          },
          {
            "url": "https://kontent.ai/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:49.654963617Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b1ef49b6e91c"
          }
        ],
        "updatedAt": "2026-10-10T02:54:59.59146656Z"
      }
    },
    "answer": "Sanity scores 73.7 (BB) on agent readiness against Kontent.ai's 70.5 (BB), and leads in 5 of 7 scored categories. Kontent.ai leads on reliability and security \u0026 auth.",
    "b": {
      "slug": "sanity",
      "name": "Sanity",
      "vendor": "Sanity US Inc. and Sanity AS",
      "vendorUrl": "https://www.sanity.io",
      "kind": "http-api",
      "category": "cms",
      "summary": "Sanity is a hosted headless CMS. Content is stored as JSON documents in the Content Lake, queried with GROQ and edited in the open-source Sanity Studio. Agents reach it through the HTTP API or the hosted MCP server at mcp.sanity.io.",
      "url": "https://www.anchorterminal.com/tools/sanity",
      "markdownUrl": "https://www.anchorterminal.com/tools/sanity.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sanity.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sanity.json",
      "repo": "https://github.com/sanity-io/sanity",
      "license": "Proprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, `@sanity/client` and the agent toolkit on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.sanity.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@sanity/client"
        },
        {
          "registry": "npm",
          "name": "sanity"
        },
        {
          "registry": "packagist",
          "name": "sanity/sanity-php"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The HTTP API takes a Bearer token. Robot tokens are created in sanity.io/manage, with the CLI or through the Access API, carry a role (Viewer and Editor tokens on every plan), last until deleted unless given an expiry, and are shown once. Personal tokens last a year and act as the user. The MCP server at mcp.sanity.io uses OAuth with PKCE and dynamic client registration by default, with one scope named `global` and sessions of about 7 days, or accepts a token in the `Authorization` header. Custom roles that limit a token to a dataset or document type are Enterprise only. No app review or sales approval is needed.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with no card, 20 seats, 10,000 documents, 250,000 API requests and 1 million API CDN requests a month, and hard caps that answer 402 when reached. Growth is $15 a seat a month with overage billed per unit. Enterprise is priced by sales. New projects get a Growth trial with Free plan quotas. An agent can start on the Free plan once a person has created the account (checked 2026-10-07).",
      "priceSummary": "$15 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation (llms-full.txt) or on the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": 53,
      "popularity": {
        "githubStars": 6352,
        "npmWeekly": 4069926,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://www.sanity.io/docs",
      "llmsTxt": "https://www.sanity.io/docs/llms.txt",
      "openapi": "https://www.sanity.io/docs/api/openapi",
      "registryName": "io.sanity.www/mcp",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.schema",
        "cms.localisation"
      ],
      "tags": [
        "hosted",
        "headless-cms",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "groq",
        "graphql",
        "javascript",
        "php",
        "free-tier",
        "status-page",
        "soc2",
        "open-source-studio"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 84,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 40,
          "reliability": 77,
          "schema": 87,
          "security": 67,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans.",
        "bestFor": "Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.",
        "strengths": [
          "26 public OpenAPI specs covering 225 operations at www.sanity.io/docs/api/openapi, plus llms.txt and a Markdown copy of every documentation page",
          "MCP `patch_documents` saves to a draft or release version, never to published content, and `publish_documents` is a separate tool",
          "Mutations and actions accept `dryRun`, a caller-set `transactionId` and `ifRevisionID` for optimistic locking",
          "Free plan with 10,000 documents and 250,000 API requests a month, with Growth overage rates published per unit",
          "MCP server listed in the official MCP registry as io.sanity.www/mcp, with 30 versions published there between 15 July and 2 October 2026"
        ],
        "weaknesses": [
          "Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them",
          "Custom roles scoped to a dataset or document type are an Enterprise feature. Robot tokens on other plans take a built-in role across the project",
          "The MCP OAuth server lists one scope, `global`, and the server documents 53 tools with no toolset or read-only mode",
          "A status incident on 22 July 2026, marked major on api.sanity.io, stayed open for 6 hours 20 minutes with two recurrences",
          "The vulnerability disclosure page says the bug bounty pilot has closed and no rewards are paid"
        ],
        "agentNotes": [
          "Pin a static dated version in every URL, such as `v2025-02-19`. Omitting `apiVersion` in `@sanity/client` falls back to `v1`.",
          "Validate documents against the schema yourself before an HTTP write, or run `sanity documents validate` afterwards. The Content Lake does not enforce schema rules.",
          "Back off on 429 for mutations yourself. `@sanity/client` retries queries five times but never retries mutations. The limit is 25 mutations a second per IP.",
          "Over MCP, call `create_version` before `patch_documents` when editing inside a release, then patch the returned version ID with the same `releaseId`.",
          "Use GROQ projections and slices to size results. MCP query responses are limited to 64 KiB, and a blocked Free project answers 402 with `plan_limit_reached`."
        ],
        "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": 73.7
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 40,
          "reliability": 77,
          "schema": 87,
          "security": 67,
          "transparency": 79
        },
        "provenanceScore": 95
      },
      "connect": {
        "install": "npx sanity@latest mcp configure",
        "http": "curl -H \"Authorization: Bearer \u003ctoken\u003e\" \"https://\u003cproject\u003e.api.sanity.io/v2021-06-07/data/query/production?query=*\"",
        "claudeCode": "claude mcp add Sanity -t http https://mcp.sanity.io --scope user",
        "config": {
          "mcpServers": {
            "Sanity": {
              "type": "http",
              "url": "https://mcp.sanity.io"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/sanity"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Growth",
          "unit": "seat-month",
          "usd": 15,
          "note": "up to 50 seats"
        },
        {
          "item": "API requests over quota (Growth)",
          "unit": "1k-requests",
          "usd": 0.04,
          "note": "$1 per 25,000, after 250,000 a month included"
        },
        {
          "item": "API CDN requests over quota (Growth)",
          "unit": "1k-requests",
          "usd": 0.004,
          "note": "$1 per 250,000, after 1 million a month included"
        },
        {
          "item": "Bandwidth over quota (Growth)",
          "unit": "gb",
          "usd": 0.3,
          "note": "after 100 GB a month included"
        },
        {
          "item": "Increased quota add-on (Growth)",
          "unit": "month",
          "usd": 299,
          "note": "50,000 documents, 1 million API requests, 5 million API CDN requests"
        },
        {
          "item": "Extra dataset (Growth)",
          "unit": "month",
          "usd": 999,
          "note": "per dataset"
        }
      ],
      "provenance": {
        "legalEntity": "Sanity US Inc. (with Sanity AS)",
        "domain": "sanity.io",
        "domainRegistered": "2015-01-07",
        "endpointOnVendorDomain": true,
        "terms": "https://www.sanity.io/legal/tos",
        "privacy": "https://www.sanity.io/legal/privacy",
        "statusPage": "https://www.sanity-status.com",
        "changelog": "https://www.sanity.io/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-07",
        "notes": [
          "The terms of service dated 12 August 2026 are entered into with Sanity US Inc. The privacy policy dated 4 May 2026 is that of Sanity AS and Sanity US Inc. Growth has its own terms at sanity.io/legal/tos-growth, dated 26 March 2026.",
          "The API answers at https://\u003cprojectId\u003e.api.sanity.io and https://api.sanity.io, and the MCP server at https://mcp.sanity.io.",
          "www.sanity.io/.well-known/security.txt names security@sanity.io and the disclosure policy at sanity.io/responsible-disclosure, and has no Expires field.",
          "status.sanity.io answers with the same Statuspage as www.sanity-status.com.",
          "RDAP for sanity.io gives a registration date of 2015-01-07."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sanity.json",
      "live": {
        "slug": "sanity",
        "probe": {
          "target": "https://api.sanity.io",
          "method": "get",
          "lastAt": "2026-10-10T02:55:08.881632524Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 35,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 34,
          "p95ms24h": 104,
          "samples24h": 249,
          "samples30d": 373,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.sanity-status.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:50:46.116380474Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "sanity-io/sanity",
            "version": "v6.18.0",
            "released": "2026-10-06",
            "seenAt": "2026-10-09T17:18:01.094970864Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.sanity.www/mcp",
            "version": "2.40.0",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          },
          {
            "registry": "npm",
            "name": "@sanity/client",
            "version": "8.9.0",
            "seenAt": "2026-10-09T17:17:58.877757923Z"
          },
          {
            "registry": "npm",
            "name": "sanity",
            "version": "6.18.0",
            "seenAt": "2026-10-09T17:17:59.706368001Z"
          }
        ],
        "githubStars": 6353,
        "npmWeekly": 3469642,
        "securityTxt": {
          "url": "https://sanity.io/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-09T15:40:30.934573809Z"
        },
        "llmsTxt": {
          "url": "https://www.sanity.io/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:44.094942262Z"
        },
        "pages": [
          {
            "url": "https://www.sanity.io/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:53:46.175932856Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "906020038702"
          },
          {
            "url": "https://www.sanity.io/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:53:50.020161561Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f0a780309f28"
          },
          {
            "url": "https://www.sanity.io/legal/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:53:50.422800098Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "68f22ec5d44d"
          }
        ],
        "updatedAt": "2026-10-10T02:55:08.881632524Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Kontent CZ s.r.o.",
        "b": "Sanity US Inc. and Sanity AS",
        "name": "Vendor"
      },
      {
        "a": "https://manage.kontent.ai/v2",
        "b": "https://api.sanity.io",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Kontent.ai Terms of Service. The management SDKs for JavaScript and .NET and the MCP server on GitHub are MIT",
        "b": "Proprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, `@sanity/client` and the agent toolkit on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "54",
        "b": "53",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.kontent-ai/mcp-server",
        "b": "io.sanity.www/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-02",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "2026-09-11",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-06-02",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "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": "8.4k npm/wk",
        "b": "6.4k stars, 4.1M npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Sanity scores 73.7 (BB) on agent readiness against Kontent.ai's 70.5 (BB), and leads in 5 of 7 scored categories. Kontent.ai leads on reliability and security \u0026 auth.",
        "question": "Which is better for AI agents, Kontent.ai or Sanity?"
      },
      {
        "answer": "Kontent.ai needs an API key. Sanity takes an API key or an OAuth sign-in.",
        "question": "Do Kontent.ai and Sanity need an API key?"
      },
      {
        "answer": "Yes. Kontent.ai has a hosted endpoint at https://manage.kontent.ai/v2 and Sanity at https://api.sanity.io.",
        "question": "Can an agent call Kontent.ai and Sanity without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 82 against 77",
          "Security \u0026 auth, 81 against 67"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "A company already on Kontent.ai, or evaluating it on a trial, that wants an agent to draft, localise, move through workflow and publish structured content with a permission-limited key and an audit trail.",
        "slug": "kontent-ai",
        "watchFor": "No price is published. The pricing page shows sliders for seats, content types and items and a form that requests a quote"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 87 against 74",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 89 against 83",
          "Transparency \u0026 trust, 87 against 75"
        ],
        "also": null,
        "goodFor": "Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.",
        "slug": "sanity",
        "watchFor": "Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them"
      }
    ],
    "job": {
      "capability": "cms.content",
      "name": "Content management"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai.json",
        "title": "ButterCMS vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-sanity.json",
        "title": "ButterCMS vs Sanity",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-kontent-ai.json",
        "title": "Contentstack vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-sanity.json",
        "title": "Contentstack vs Sanity",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-kontent-ai.json",
        "title": "DatoCMS vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-sanity.json",
        "title": "DatoCMS vs Sanity",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-kontent-ai.json",
        "title": "Directus vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/directus-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-sanity.json",
        "title": "Directus vs Sanity",
        "url": "https://www.anchorterminal.com/compare/directus-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-vs-kontent-ai.json",
        "title": "Ghost vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/ghost-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ghost-vs-sanity.json",
        "title": "Ghost vs Sanity",
        "url": "https://www.anchorterminal.com/compare/ghost-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-kontent-ai.json",
        "title": "Hygraph vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hygraph-vs-sanity.json",
        "title": "Hygraph vs Sanity",
        "url": "https://www.anchorterminal.com/compare/hygraph-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-payload.json",
        "title": "Kontent.ai vs Payload",
        "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-payload"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-prismic.json",
        "title": "Kontent.ai vs Prismic",
        "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-storyblok.json",
        "title": "Kontent.ai vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-strapi.json",
        "title": "Kontent.ai vs Strapi",
        "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-webflow.json",
        "title": "Kontent.ai vs Webflow",
        "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-wordpress.json",
        "title": "Kontent.ai vs WordPress",
        "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-wordpress"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payload-vs-sanity.json",
        "title": "Payload vs Sanity",
        "url": "https://www.anchorterminal.com/compare/payload-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismic-vs-sanity.json",
        "title": "Prismic vs Sanity",
        "url": "https://www.anchorterminal.com/compare/prismic-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-storyblok.json",
        "title": "Sanity vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-strapi.json",
        "title": "Sanity vs Strapi",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-webflow.json",
        "title": "Sanity vs Webflow",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sanity-vs-wordpress.json",
        "title": "Sanity vs WordPress",
        "url": "https://www.anchorterminal.com/compare/sanity-vs-wordpress"
      }
    ],
    "scores": [
      {
        "by": 5,
        "edge": "kontent-ai",
        "key": "reliability",
        "kontent-ai": 82,
        "name": "Reliability",
        "sanity": 77,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "sanity",
        "key": "schema",
        "kontent-ai": 74,
        "name": "Schema \u0026 documentation",
        "sanity": 87,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "sanity",
        "key": "ergonomics",
        "kontent-ai": 71,
        "name": "Agent ergonomics",
        "sanity": 74,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "kontent-ai",
        "key": "security",
        "kontent-ai": 81,
        "name": "Security \u0026 auth",
        "sanity": 67,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "sanity",
        "key": "payments",
        "kontent-ai": 20,
        "name": "Payments \u0026 pricing",
        "sanity": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "edge": "sanity",
        "key": "maintenance",
        "kontent-ai": 83,
        "name": "Maintenance \u0026 community",
        "sanity": 89,
        "weight": 7
      },
      {
        "by": 12,
        "edge": "sanity",
        "key": "transparency",
        "kontent-ai": 75,
        "name": "Transparency \u0026 trust",
        "sanity": 87,
        "weight": 7
      }
    ],
    "summary": "Sanity scores 73.7 (BB) on agent readiness against Kontent.ai's 70.5 (BB), and leads in 5 of 7 scored categories. Kontent.ai leads on reliability and security \u0026 auth. Both do content management.",
    "verdicts": {
      "kontent-ai": "Management API keys take per-area permissions, environment limits and an expiry from one minute to two years, and changes made with a key are named in the audit log. Rate limits and Retry-After are documented. No price is published, and no OpenAPI file was found. Access starts with a 30-day trial that a person opens in a browser.",
      "sanity": "Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kontent-ai-vs-sanity",
    "json": "https://www.anchorterminal.com/compare/kontent-ai-vs-sanity.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kontent-ai-vs-sanity.md",
    "slim": "https://www.anchorterminal.com/compare/kontent-ai-vs-sanity.min.md"
  },
  "markdown": "Sanity scores 73.7 (BB) on agent readiness against Kontent.ai's 70.5 (BB), and leads in 5 of 7 scored categories. Kontent.ai leads on reliability and security \u0026 auth. Both do content management.\n\n- Kontent.ai: grade BB, 70.5/100, rank #153 of 950. Markdown https://www.anchorterminal.com/tools/kontent-ai.md · JSON https://www.anchorterminal.com/api/v1/tools/kontent-ai.json\n- Sanity: grade BB, 73.7/100, rank #84 of 950. Markdown https://www.anchorterminal.com/tools/sanity.md · JSON https://www.anchorterminal.com/api/v1/tools/sanity.json\n- Best headless CMS and website publishing for AI agents: https://www.anchorterminal.com/best/cms/index.md\n- All 91 cms comparisons: https://www.anchorterminal.com/compare/cms/index.md\n\n## Which one, for what\n\n### Kontent.ai (BB)\n\nGood for: A company already on Kontent.ai, or evaluating it on a trial, that wants an agent to draft, localise, move through workflow and publish structured content with a permission-limited key and an audit trail.\n\nAhead on:\n- Reliability, 82 against 77\n- Security \u0026 auth, 81 against 67\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: No price is published. The pricing page shows sliders for seats, content types and items and a form that requests a quote\n\n### Sanity (BB)\n\nGood for: Teams that model content as structured documents and want an agent to draft, patch and stage changes in releases for a person to publish.\n\nAhead on:\n- Schema \u0026 documentation, 87 against 74\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 89 against 83\n- Transparency \u0026 trust, 87 against 75\n\nWatch for: Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them\n\n\n## Score by category\n\n| Category | Weight | Kontent.ai | Sanity | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 82 | 77 | Kontent.ai +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 87 | Sanity +13 |\n| Agent ergonomics | 13% (16.2 this run) | 71 | 74 | Sanity +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 81 | 67 | Kontent.ai +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 40 | Sanity +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 89 | Sanity +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 87 | Sanity +12 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **70.5 · BB** | **73.7 · BB** | |\n\n## Facts side by side\n\n| Fact | Kontent.ai | Sanity |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Kontent CZ s.r.o. | Sanity US Inc. and Sanity AS |\n| Hosted endpoint | `https://manage.kontent.ai/v2` | `https://api.sanity.io` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the Kontent.ai Terms of Service. The management SDKs for JavaScript and .NET and the MCP server on GitHub are MIT | Proprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, `@sanity/client` and the agent toolkit on GitHub are MIT |\n| Tools exposed | 54 | 53 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.kontent-ai/mcp-server` | `io.sanity.www/mcp` |\n| Last release | 2026-10-02 | 2026-10-02 |\n| Terms last updated | 2026-09-11 | no date given |\n| Privacy policy last updated | 2025-06-02 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\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 | 8.4k npm/wk | 6.4k stars, 4.1M npm/wk |\n\n## Verdicts\n\n**Kontent.ai.** Management API keys take per-area permissions, environment limits and an expiry from one minute to two years, and changes made with a key are named in the audit log. Rate limits and Retry-After are documented. No price is published, and no OpenAPI file was found. Access starts with a 30-day trial that a person opens in a browser.\n\n**Sanity.** Sanity publishes 26 OpenAPI specs covering 225 operations, and its hosted MCP server saves edits to drafts or release versions, with publishing as a separate call. The Content Lake does not run schema validation on API writes, and custom roles that limit a token to one dataset or document type are sold only on Enterprise plans.\n\n## Before you call either\n\n### Kontent.ai\n\n1. Send `Authorization: Bearer \u003ckey\u003e` to `https://manage.kontent.ai/v2/projects/{environment_id}/...`. The Management API must be switched on under Environment settings, General, Enabled APIs first\n2. Ask for a Management API key with only the permissions the task needs. Read content alone gives a read-only key, and keys expire after six months by default\n3. Stay under 10 requests a second and 400 a minute per environment, send requests one at a time, and wait the seconds in Retry-After on a 429\n4. Page lists by passing the `continuation_token` from the response back in the `x-continuation` header\n5. Create items with an `external_id` and write with the upsert PUT at `/items/external-id/{id}` so a retry after a lost response does not create a duplicate\n6. With the MCP server, call `get-patch-guide` before any patch tool, and use a client that prompts on destructiveHint\n\n### Sanity\n\n1. Pin a static dated version in every URL, such as `v2025-02-19`. Omitting `apiVersion` in `@sanity/client` falls back to `v1`.\n2. Validate documents against the schema yourself before an HTTP write, or run `sanity documents validate` afterwards. The Content Lake does not enforce schema rules.\n3. Back off on 429 for mutations yourself. `@sanity/client` retries queries five times but never retries mutations. The limit is 25 mutations a second per IP.\n4. Over MCP, call `create_version` before `patch_documents` when editing inside a release, then patch the returned version ID with the same `releaseId`.\n5. Use GROQ projections and slices to size results. MCP query responses are limited to 64 KiB, and a blocked Free project answers 402 with `plan_limit_reached`.\n\n## Questions\n\n### Which is better for AI agents, Kontent.ai or Sanity?\n\nSanity scores 73.7 (BB) on agent readiness against Kontent.ai's 70.5 (BB), and leads in 5 of 7 scored categories. Kontent.ai leads on reliability and security \u0026 auth.\n\n### Do Kontent.ai and Sanity need an API key?\n\nKontent.ai needs an API key. Sanity takes an API key or an OAuth sign-in.\n\n### Can an agent call Kontent.ai and Sanity without installing anything?\n\nYes. Kontent.ai has a hosted endpoint at https://manage.kontent.ai/v2 and Sanity at https://api.sanity.io.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kontent-ai-vs-sanity.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kontent-ai-vs-sanity.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kontent-ai\", \"b\": \"sanity\"}`. From a terminal: `anchor compare kontent-ai sanity`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kontent-ai.json and https://www.anchorterminal.com/api/v1/tools/sanity.json\n\n## Other comparisons with Kontent.ai or Sanity\n\n- [ButterCMS vs Kontent.ai](https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai.md)\n- [ButterCMS vs Sanity](https://www.anchorterminal.com/compare/buttercms-vs-sanity.md)\n- [Contentstack vs Kontent.ai](https://www.anchorterminal.com/compare/contentstack-vs-kontent-ai.md)\n- [Contentstack vs Sanity](https://www.anchorterminal.com/compare/contentstack-vs-sanity.md)\n- [DatoCMS vs Kontent.ai](https://www.anchorterminal.com/compare/datocms-vs-kontent-ai.md)\n- [DatoCMS vs Sanity](https://www.anchorterminal.com/compare/datocms-vs-sanity.md)\n- [Directus vs Kontent.ai](https://www.anchorterminal.com/compare/directus-vs-kontent-ai.md)\n- [Directus vs Sanity](https://www.anchorterminal.com/compare/directus-vs-sanity.md)\n- [Ghost vs Kontent.ai](https://www.anchorterminal.com/compare/ghost-vs-kontent-ai.md)\n- [Ghost vs Sanity](https://www.anchorterminal.com/compare/ghost-vs-sanity.md)\n- [Hygraph vs Kontent.ai](https://www.anchorterminal.com/compare/hygraph-vs-kontent-ai.md)\n- [Hygraph vs Sanity](https://www.anchorterminal.com/compare/hygraph-vs-sanity.md)\n- [Kontent.ai vs Payload](https://www.anchorterminal.com/compare/kontent-ai-vs-payload.md)\n- [Kontent.ai vs Prismic](https://www.anchorterminal.com/compare/kontent-ai-vs-prismic.md)\n- [Kontent.ai vs Storyblok](https://www.anchorterminal.com/compare/kontent-ai-vs-storyblok.md)\n- [Kontent.ai vs Strapi](https://www.anchorterminal.com/compare/kontent-ai-vs-strapi.md)\n- [Kontent.ai vs Webflow](https://www.anchorterminal.com/compare/kontent-ai-vs-webflow.md)\n- [Kontent.ai vs WordPress](https://www.anchorterminal.com/compare/kontent-ai-vs-wordpress.md)\n- [Payload vs Sanity](https://www.anchorterminal.com/compare/payload-vs-sanity.md)\n- [Prismic vs Sanity](https://www.anchorterminal.com/compare/prismic-vs-sanity.md)\n- [Sanity vs Storyblok](https://www.anchorterminal.com/compare/sanity-vs-storyblok.md)\n- [Sanity vs Strapi](https://www.anchorterminal.com/compare/sanity-vs-strapi.md)\n- [Sanity vs Webflow](https://www.anchorterminal.com/compare/sanity-vs-webflow.md)\n- [Sanity vs WordPress](https://www.anchorterminal.com/compare/sanity-vs-wordpress.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Kontent.ai vs Sanity",
        "url": ""
      }
    ],
    "description": "Sanity scores 73.7 (BB) to Kontent.ai's 70.5 (BB) for content management. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kontent.ai BB 70.5",
      "Sanity BB 73.7",
      "scores"
    ],
    "h1": "Kontent.ai vs Sanity",
    "image": "https://www.anchorterminal.com/assets/og/compare-kontent-ai-vs-sanity.png",
    "path": "/compare/kontent-ai-vs-sanity",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kontent.ai vs Sanity for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/kontent-ai-vs-sanity"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 730
  },
  "version": 1
}
