Head to head · Cms content · October 2026 research run

Sanity vs Storyblok

Sanity scores 73.7 (BB) on agent readiness against Storyblok's 67.7 (B), and leads in 4 of 7 scored categories. Storyblok leads on security & auth. Both do cms content.

Which one, for what

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 68
  • Payments & pricing, 40 against 35
  • Maintenance & community, 89 against 80
  • Transparency & trust, 87 against 80

Also in its favour

  • Agent-ready, a grade of BB or better
  • No incidents deducted, where Storyblok loses 3 points for them

Watch for

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

Storyblok B

Good for Teams already on Storyblok who want an agent to draft, translate and publish stories or change component schemas under scoped, per-space permissions.

Ahead on

  • Security & auth, 73 against 67

Also in its favour

  • Free to start without a card

Watch for

The Management API's OpenAPI spec sits in a private repository. Only the Content Delivery API has a public spec (OpenAPI 3.1, 14 operations)

Score by category

CategoryWeight this runSanityStoryblokEdge
Reliability16%207779Storyblok +2
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28768Sanity +19
Agent ergonomics13%16.27478Storyblok +4
Security & auth14%17.56773Storyblok +6
Payments & pricing10%12.54035Sanity +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88980Sanity +9
Transparency & trust7%8.88780Sanity +7
Negative events≤150-3
Total73.7 · BB67.7 · B

Facts side by side

FactSanityStoryblok
KindHTTP APIHTTP API
VendorSanity US Inc. and Sanity ASStoryblok GmbH
Hosted endpointhttps://api.sanity.iohttps://mapi.storyblok.com/v1
TransportsHTTP, Streamable HTTPHTTP, Streamable HTTP
AuthOAuth or keyOAuth or key
PricingFreemiumFreemium
x402nono
LicenceProprietary hosted service under Sanity's terms of service. Sanity Studio, the CLI, @sanity/client and the agent toolkit on GitHub are MITProprietary service under Storyblok's terms. The SDKs, API clients and CLI in storyblok/monoblok are MIT
Tools exposed537
Read-only variant documentednono
llms.txtyesyes
MCP registryio.sanity.www/mcpnot listed
Last release2026-10-022026-10-02
Terms last updatedno date givencouldn't be read
Privacy policy last updatedno date given2025-10-06
Customer content may train modelsnot found in the textcouldn't be read
Terms restrict automated accessnot found in the textcouldn't be read
Terms restrict benchmarkingyescouldn't be read
Terms or service can change without noticenot found in the textcouldn't be read
Arbitration or class-action waivernot found in the textcouldn't be read
Popularity6.4k stars, 4.1M npm/wk68 stars, 433k npm/wk

Verdicts

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.

Storyblok

The hosted MCP server covers the whole Management API with seven tools, OAuth scopes split into read, write and publish per space, and a confirmation step on deletes. The Management API has no public OpenAPI spec, no idempotency keys and no monitor on the public status page, and publishing is a GET request.

Before you call either

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.

Storyblok

  1. Pick the base URL by the space's region (mapi.storyblok.com for the EU, api-us, api-ca or api-ap otherwise). A token sent to the wrong region fails
  2. Create stories without publish to keep them as drafts, then call the publish endpoint. It is a GET, so never prefetch or blindly retry it
  3. Write translations as field__i18n__<code> keys inside the same content object, and set the component field to translatable first
  4. Upload an asset in three steps (signed response, POST to S3, finish upload). Through MCP the S3 step needs shell access for curl
  5. Stay under 3 calls a second on Starter and 6 on paid plans, and back off exponentially on 429. Saves that break a field's max_length return 422

Questions

Which is better for AI agents, Sanity or Storyblok?

Sanity scores 73.7 (BB) on agent readiness against Storyblok's 67.7 (B), and leads in 4 of 7 scored categories. Storyblok leads on security & auth.

Do Sanity and Storyblok need an API key?

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

Can an agent call Sanity and Storyblok without installing anything?

Yes. Sanity has a hosted endpoint at https://api.sanity.io and Storyblok at https://mapi.storyblok.com/v1.

Other comparisons with Sanity or Storyblok

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.