# DatoCMS vs Hygraph > DatoCMS scores 74.4 (BB) on agent readiness against Hygraph's 69.3 (B), and leads in 5 of 7 scored categories. Hygraph leads on reliability. Both do cms content. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/datocms-vs-hygraph - Markdown: https://www.anchorterminal.com/compare/datocms-vs-hygraph.md (~2,400 tokens) - Slim: https://www.anchorterminal.com/compare/datocms-vs-hygraph.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/datocms-vs-hygraph.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 DatoCMS scores 74.4 (BB) on agent readiness against Hygraph's 69.3 (B), and leads in 5 of 7 scored categories. Hygraph leads on reliability. Both do cms content. - DatoCMS: grade BB, 74.4/100, rank #70 of 842. Markdown https://www.anchorterminal.com/tools/datocms.md · JSON https://www.anchorterminal.com/api/v1/tools/datocms.json - Hygraph: grade B, 69.3/100, rank #182 of 842. Markdown https://www.anchorterminal.com/tools/hygraph.md · JSON https://www.anchorterminal.com/api/v1/tools/hygraph.json ## 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: - Schema & documentation, 85 against 78 - Agent ergonomics, 78 against 72 - Security & auth, 77 against 63 - Maintenance & community, 81 against 74 - Transparency & trust, 80 against 60 Also in its favour: - Agent-ready, a grade of BB or better Watch for: No idempotency keys in the reviewed documentation. Safe retries rest on optimistic locking and the JavaScript client's automatic retry ### Hygraph (B) Good for: Teams on Hygraph who want an agent to create, localise and publish entries, upload assets or change schema, with delete and unpublish kept out of reach on MCP. Ahead on: - Reliability, 89 against 80 Watch for: GraphQL error bodies carry a message and a `requestId` with no machine-readable code, and only asset transformation 429 responses are documented with `Retry-After` ## Score by category | Category | Weight | DatoCMS | Hygraph | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 80 | 89 | Hygraph +9 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 85 | 78 | DatoCMS +7 | | Agent ergonomics | 13% (16.2 this run) | 78 | 72 | DatoCMS +6 | | Security & auth | 14% (17.5 this run) | 77 | 63 | DatoCMS +14 | | Payments & pricing | 10% (12.5 this run) | 35 | 35 | even | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 81 | 74 | DatoCMS +7 | | Transparency & trust | 7% (8.8 this run) | 80 | 60 | DatoCMS +20 | | Negative events | ≤15 | 0 | 0 | | | **Total** | | **74.4 · BB** | **69.3 · B** | | ## Facts side by side | Fact | DatoCMS | Hygraph | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Dato Srl | Hygraph GmbH | | Hosted endpoint | `https://site-api.datocms.com` | `https://mcp.hygraph.com/mcp` | | Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | Proprietary service under Dato Srl's terms of service. The API clients in datocms/js-rest-api-clients and the CLI in datocms/cli are MIT | Proprietary service under Hygraph GmbH's Terms of Service. The `@hygraph/management-sdk` package is MIT | | Tools exposed | 9 | 17 | | Read-only variant documented | yes | no | | llms.txt | yes | yes | | Last release | 2026-10-01 | 2026-09-30 | | Terms last updated | couldn't be read | no date given | | Privacy policy last updated | couldn't be read | no date given | | Customer content may train models | couldn't be read | not found in the text | | Terms restrict automated access | couldn't be read | not found in the text | | Terms restrict benchmarking | couldn't be read | yes | | Terms or service can change without notice | couldn't be read | yes | | Arbitration or class-action waiver | couldn't be read | not found in the text | | Popularity | 153k npm/wk | 52 stars, 8.6k 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. **Hygraph.** Tokens are limited by model, stage, locale and action, the GraphQL schema is typed and introspectable, and a hosted MCP server rejects delete and unpublish operations. Error bodies carry a message without a machine code, there are no idempotency keys, audit logs are Enterprise only, and no data processing agreement, sub-processor list or security.txt was found. ## 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 ### Hygraph 1. Send the Permanent Auth Token as `Authorization: Bearer ` to `https://.hygraph.com/v2//`. Read the schema by introspection first, because every type is generated from the project's models 2. Mutations write to DRAFT. Call `publish` with `to: [PUBLISHED]` as a separate mutation, and pass `locales` to write or publish a localisation 3. Stay under the plan's limit for uncached requests (5 a second on Hobby, 25 on Growth) and its concurrent mutations (5 and 10). Back off exponentially on 429 4. Upload an asset with `createAsset`, then POST the file to the returned pre-signed URL, or pass `uploadUrl` for a remote file. The asset stays `ASSET_CREATE_PENDING` until processed 5. Schema changes go to the Management API through `@hygraph/management-sdk` or the MCP tool `submit_batch_migration`. Version restore has no documented mutation, so read `Version` and write the old values back ## Questions ### Which is better for AI agents, DatoCMS or Hygraph? DatoCMS scores 74.4 (BB) on agent readiness against Hygraph's 69.3 (B), and leads in 5 of 7 scored categories. Hygraph leads on reliability. ### Do DatoCMS and Hygraph need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call DatoCMS and Hygraph without installing anything? Yes. DatoCMS has a hosted endpoint at https://site-api.datocms.com and Hygraph at https://mcp.hygraph.com/mcp. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/datocms-vs-hygraph.json, and with the fewest tokens: https://www.anchorterminal.com/compare/datocms-vs-hygraph.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "datocms", "b": "hygraph"}`. From a terminal: `anchor compare datocms hygraph` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/datocms.json and https://www.anchorterminal.com/api/v1/tools/hygraph.json ## Other comparisons with DatoCMS or Hygraph - [Contentstack vs DatoCMS](https://www.anchorterminal.com/compare/contentstack-vs-datocms.md) - [Contentstack vs Hygraph](https://www.anchorterminal.com/compare/contentstack-vs-hygraph.md) - [DatoCMS vs Directus](https://www.anchorterminal.com/compare/datocms-vs-directus.md) - [DatoCMS vs Ghost](https://www.anchorterminal.com/compare/datocms-vs-ghost.md) - [DatoCMS vs Payload](https://www.anchorterminal.com/compare/datocms-vs-payload.md) - [DatoCMS vs Prismic](https://www.anchorterminal.com/compare/datocms-vs-prismic.md) - [DatoCMS vs Sanity](https://www.anchorterminal.com/compare/datocms-vs-sanity.md) - [DatoCMS vs Storyblok](https://www.anchorterminal.com/compare/datocms-vs-storyblok.md) - [DatoCMS vs Strapi](https://www.anchorterminal.com/compare/datocms-vs-strapi.md) - [DatoCMS vs Webflow](https://www.anchorterminal.com/compare/datocms-vs-webflow.md) - [DatoCMS vs WordPress](https://www.anchorterminal.com/compare/datocms-vs-wordpress.md) - [Directus vs Hygraph](https://www.anchorterminal.com/compare/directus-vs-hygraph.md) - [Ghost vs Hygraph](https://www.anchorterminal.com/compare/ghost-vs-hygraph.md) - [Hygraph vs Payload](https://www.anchorterminal.com/compare/hygraph-vs-payload.md) - [Hygraph vs Prismic](https://www.anchorterminal.com/compare/hygraph-vs-prismic.md) - [Hygraph vs Sanity](https://www.anchorterminal.com/compare/hygraph-vs-sanity.md) - [Hygraph vs Storyblok](https://www.anchorterminal.com/compare/hygraph-vs-storyblok.md) - [Hygraph vs Strapi](https://www.anchorterminal.com/compare/hygraph-vs-strapi.md) - [Hygraph vs Webflow](https://www.anchorterminal.com/compare/hygraph-vs-webflow.md) - [Hygraph vs WordPress](https://www.anchorterminal.com/compare/hygraph-vs-wordpress.md)