# ButterCMS vs Sanity > Sanity scores 73.7 (BB) to ButterCMS's 53.3 (D) for content management. Prices, MCP, x402, uptime and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/buttercms-vs-sanity - Markdown: https://www.anchorterminal.com/compare/buttercms-vs-sanity.md (~2,500 tokens) - Slim: https://www.anchorterminal.com/compare/buttercms-vs-sanity.min.md (~680 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/buttercms-vs-sanity.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-09 Sanity scores 73.7 (BB) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories. ButterCMS leads on reliability. Both do content management. - ButterCMS: grade D, 53.3/100, rank #711 of 950. Markdown https://www.anchorterminal.com/tools/buttercms.md · JSON https://www.anchorterminal.com/api/v1/tools/buttercms.json - 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 - Best headless CMS and website publishing for AI agents: https://www.anchorterminal.com/best/cms/index.md - All 91 cms comparisons: https://www.anchorterminal.com/compare/cms/index.md ## Which one, for what ### ButterCMS (D) Good for: A team already on a paid ButterCMS plan that wants an agent to draft and publish pages, collection items and blog posts in small volumes. Ahead on: - Reliability, 83 against 77 Also in its favour: - Free to start without a card Watch for: The Write API is a paid add-on on Advanced ($249 a month) and Professional ($399), capped at 2,000 and 5,000 write calls a month. Its price is not published ### Sanity (BB) Good 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. Ahead on: - Schema & documentation, 87 against 78 - Agent ergonomics, 74 against 64 - Security & auth, 67 against 36 - Payments & pricing, 40 against 20 - Maintenance & community, 89 against 27 - Transparency & trust, 87 against 51 Also in its favour: - Agent-ready, a grade of BB or better Watch for: Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them ## Score by category | Category | Weight | ButterCMS | Sanity | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 83 | 77 | ButterCMS +6 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 78 | 87 | Sanity +9 | | Agent ergonomics | 13% (16.2 this run) | 64 | 74 | Sanity +10 | | Security & auth | 14% (17.5 this run) | 36 | 67 | Sanity +31 | | Payments & pricing | 10% (12.5 this run) | 20 | 40 | Sanity +20 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 27 | 89 | Sanity +62 | | Transparency & trust | 7% (8.8 this run) | 51 | 87 | Sanity +36 | | Negative events | ≤15 | -2 | 0 | | | **Total** | | **53.3 · D** | **73.7 · BB** | | ## Facts side by side | Fact | ButterCMS | Sanity | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | ButterCMS LLC | Sanity US Inc. and Sanity AS | | Hosted endpoint | `https://api.buttercms.com/v2` | `https://api.sanity.io` | | Transports | HTTP | HTTP, Streamable HTTP | | Auth | API key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | Proprietary service under ButterCMS's terms of service. The SDKs and starter projects 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 | | Tools exposed | none | 53 | | Read-only variant documented | no | no | | llms.txt | yes | yes | | MCP registry | not listed | `io.sanity.www/mcp` | | Last release | 2025-09-04 | 2026-10-02 | | Terms last updated | no date given | no date given | | Privacy policy last updated | 2022-08-15 | no date given | | Customer content may train models | not found in the text | not found in the text | | Terms restrict automated access | not found in the text | not found in the text | | Terms restrict benchmarking | not found in the text | yes | | Terms or service can change without notice | not found in the text | not found in the text | | Arbitration or class-action waiver | not found in the text | not found in the text | | Popularity | 6.9k npm/wk | 6.4k stars, 4.1M npm/wk | ## Verdicts **ButterCMS.** The Read and Write APIs have a public OpenAPI 3.1 file, Markdown docs and a status page with no incident since October 2025. The Write API is a paid add-on from the $249 plan, capped at 2,000 or 5,000 calls a month. Writes answer 202 with no identifier, support rotates tokens, and the terms are an undated website document. **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. ## Before you call either ### ButterCMS 1. End every path with a slash. A missing slash returns a 301, and the vendor counts the redirect and the retry as two API calls 2. Send the write token only as `Authorization: Token `. The `auth_token` query parameter works for reads only 3. On page creation send every field key of the page type, with empty strings for fields left blank 4. A 202 means queued, not saved. Read the entry back with `preview=1` to confirm, and check a slug exists before retrying a create 5. Call the REST API directly for writes. The JavaScript SDK 3.0.3 has list, retrieve and search methods only ### Sanity 1. Pin a static dated version in every URL, such as `v2025-02-19`. Omitting `apiVersion` in `@sanity/client` falls back to `v1`. 2. Validate documents against the schema yourself before an HTTP write, or run `sanity documents validate` afterwards. The Content Lake does not enforce schema rules. 3. 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. 4. Over MCP, call `create_version` before `patch_documents` when editing inside a release, then patch the returned version ID with the same `releaseId`. 5. 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`. ## Questions ### Which is better for AI agents, ButterCMS or Sanity? Sanity scores 73.7 (BB) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories. ButterCMS leads on reliability. ### Do ButterCMS and Sanity need an API key? ButterCMS needs an API key. Sanity takes an API key or an OAuth sign-in. ### Can an agent call ButterCMS and Sanity without installing anything? Yes. ButterCMS has a hosted endpoint at https://api.buttercms.com/v2 and Sanity at https://api.sanity.io. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/buttercms-vs-sanity.json, and with the fewest tokens: https://www.anchorterminal.com/compare/buttercms-vs-sanity.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "buttercms", "b": "sanity"}`. From a terminal: `anchor compare buttercms sanity` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/buttercms.json and https://www.anchorterminal.com/api/v1/tools/sanity.json ## Other comparisons with ButterCMS or Sanity - [ButterCMS vs Contentstack](https://www.anchorterminal.com/compare/buttercms-vs-contentstack.md) - [ButterCMS vs DatoCMS](https://www.anchorterminal.com/compare/buttercms-vs-datocms.md) - [ButterCMS vs Directus](https://www.anchorterminal.com/compare/buttercms-vs-directus.md) - [ButterCMS vs Ghost](https://www.anchorterminal.com/compare/buttercms-vs-ghost.md) - [ButterCMS vs Hygraph](https://www.anchorterminal.com/compare/buttercms-vs-hygraph.md) - [ButterCMS vs Kontent.ai](https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai.md) - [ButterCMS vs Payload](https://www.anchorterminal.com/compare/buttercms-vs-payload.md) - [ButterCMS vs Prismic](https://www.anchorterminal.com/compare/buttercms-vs-prismic.md) - [ButterCMS vs Storyblok](https://www.anchorterminal.com/compare/buttercms-vs-storyblok.md) - [ButterCMS vs Strapi](https://www.anchorterminal.com/compare/buttercms-vs-strapi.md) - [ButterCMS vs Webflow](https://www.anchorterminal.com/compare/buttercms-vs-webflow.md) - [ButterCMS vs WordPress](https://www.anchorterminal.com/compare/buttercms-vs-wordpress.md) - [Contentstack vs Sanity](https://www.anchorterminal.com/compare/contentstack-vs-sanity.md) - [DatoCMS vs Sanity](https://www.anchorterminal.com/compare/datocms-vs-sanity.md) - [Directus vs Sanity](https://www.anchorterminal.com/compare/directus-vs-sanity.md) - [Ghost vs Sanity](https://www.anchorterminal.com/compare/ghost-vs-sanity.md) - [Hygraph vs Sanity](https://www.anchorterminal.com/compare/hygraph-vs-sanity.md) - [Kontent.ai vs Sanity](https://www.anchorterminal.com/compare/kontent-ai-vs-sanity.md) - [Payload vs Sanity](https://www.anchorterminal.com/compare/payload-vs-sanity.md) - [Prismic vs Sanity](https://www.anchorterminal.com/compare/prismic-vs-sanity.md) - [Sanity vs Storyblok](https://www.anchorterminal.com/compare/sanity-vs-storyblok.md) - [Sanity vs Strapi](https://www.anchorterminal.com/compare/sanity-vs-strapi.md) - [Sanity vs Webflow](https://www.anchorterminal.com/compare/sanity-vs-webflow.md) - [Sanity vs WordPress](https://www.anchorterminal.com/compare/sanity-vs-wordpress.md)