Head to head · Cms content · October 2026 research run

DatoCMS vs Sanity

DatoCMS and Sanity score within a point of each other on agent readiness, 74.4 (BB) and 73.7 (BB). Sanity leads on payments & pricing, maintenance & community and transparency & trust. Both do cms content.

Which one, for what

DatoCMS BB

Good for Teams on DatoCMS who want an agent to create, translate and publish records, upload assets or change models, testing first in a sandbox environment.

Ahead on

  • Security & auth, 77 against 67

Also in its favour

  • Free to start without a card

Watch for

No idempotency keys in the reviewed documentation. Safe retries rest on optimistic locking and the JavaScript client's automatic retry

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

  • Payments & pricing, 40 against 35
  • Maintenance & community, 89 against 81
  • Transparency & trust, 87 against 80

Watch for

Schema validation rules run only in Sanity Studio. The HTTP mutation API accepts a document without checking them

Score by category

CategoryWeight this runDatoCMSSanityEdge
Reliability16%208077DatoCMS +3
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28587Sanity +2
Agent ergonomics13%16.27874DatoCMS +4
Security & auth14%17.57767DatoCMS +10
Payments & pricing10%12.53540Sanity +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88189Sanity +8
Transparency & trust7%8.88087Sanity +7
Negative events≤1500
Total74.4 · BB73.7 · BB

Facts side by side

FactDatoCMSSanity
KindHTTP APIHTTP API
VendorDato SrlSanity US Inc. and Sanity AS
Hosted endpointhttps://site-api.datocms.comhttps://api.sanity.io
TransportsHTTP, Streamable HTTPHTTP, Streamable HTTP
AuthOAuth or keyOAuth or key
PricingFreemiumFreemium
x402nono
LicenceProprietary service under Dato Srl's terms of service. The API clients in datocms/js-rest-api-clients and the CLI in datocms/cli are MITProprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, @sanity/client and the agent toolkit on GitHub are MIT
Tools exposed953
Read-only variant documentedyesno
llms.txtyesyes
MCP registrynot listedio.sanity.www/mcp
Last release2026-10-012026-10-02
Terms last updatedcouldn't be readno date given
Privacy policy last updatedcouldn't be readno date given
Customer content may train modelscouldn't be readnot found in the text
Terms restrict automated accesscouldn't be readnot found in the text
Terms restrict benchmarkingcouldn't be readyes
Terms or service can change without noticecouldn't be readnot found in the text
Arbitration or class-action waivercouldn't be readnot found in the text
Popularity153k npm/wk6.4k stars, 4.1M npm/wk

Verdicts

DatoCMS

The Content Management API publishes a JSON Hyper-Schema for 202 operations, 100 documented error codes and rate-limit headers, and the hosted MCP server adds OAuth with three access levels. There are no idempotency keys, the only official client library is JavaScript, audit logs are Enterprise only, and prices are in euros with no machine payment route.

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

DatoCMS

  1. Send X-Api-Version: 3 and Accept: application/json on every request, with Content-Type: application/vnd.api+json on writes
  2. Records are items, models are item_types and assets are uploads in every path and payload
  3. Save a record, then call the publish endpoint as a separate PUT. Send meta.current_version on updates and re-fetch on STALE_ITEM_VERSION
  4. Stay under 60 requests every 3 seconds. On 429 wait the seconds in x-ratelimit-reset, and retry any error whose body has transient set to true
  5. Fork a sandbox environment for schema changes and promote it when checked. Use POST /items/validate to test a payload without saving it

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, DatoCMS or Sanity?

DatoCMS and Sanity score within a point of each other on agent readiness, 74.4 (BB) and 73.7 (BB). Sanity leads on payments & pricing, maintenance & community and transparency & trust.

Do DatoCMS and Sanity need an API key?

Both take an API key or an OAuth sign-in.

Can an agent call DatoCMS and Sanity without installing anything?

Yes. DatoCMS has a hosted endpoint at https://site-api.datocms.com and Sanity at https://api.sanity.io.

Other comparisons with DatoCMS or Sanity

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.