# DatoCMS vs Directus > DatoCMS scores 74.4 (BB) on agent readiness against Directus's 67.1 (B), and leads in 4 of 7 scored categories. Directus leads on payments & pricing and maintenance & community. Both do cms content. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/datocms-vs-directus - Markdown: https://www.anchorterminal.com/compare/datocms-vs-directus.md (~2,300 tokens) - Slim: https://www.anchorterminal.com/compare/datocms-vs-directus.min.md (~780 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/datocms-vs-directus.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-08 DatoCMS scores 74.4 (BB) on agent readiness against Directus's 67.1 (B), and leads in 4 of 7 scored categories. Directus leads on payments & pricing and maintenance & community. Both do cms content. - DatoCMS: grade BB, 74.4/100, rank #62 of 722. Markdown https://www.anchorterminal.com/tools/datocms.md · JSON https://www.anchorterminal.com/api/v1/tools/datocms.json - Directus: grade B, 67.1/100, rank #217 of 722. Markdown https://www.anchorterminal.com/tools/directus.md · JSON https://www.anchorterminal.com/api/v1/tools/directus.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: - Agent ergonomics, 78 against 73 - Security & auth, 77 against 68 - Transparency & trust, 80 against 61 Also in its favour: - Agent-ready, a grade of BB or better - A hosted endpoint, with nothing to install - Free to start without a card - No incidents deducted, where Directus loses 6 points for them Watch for: No idempotency keys in the reviewed documentation. Safe retries rest on optimistic locking and the JavaScript client's automatic retry ### Directus (B) Good for: Teams that already keep content in an SQL database and want an agent to edit items, files and the data model under a named user's permissions. Ahead on: - Payments & pricing, 55 against 35 - Maintenance & community, 86 against 81 Watch for: Version 12 (10 June 2026) added licence enforcement. The free Core tier allows 3 Studio seats, 25 collections and 5 flows, and an instance over its limits is locked after a grace period ## Score by category | Category | Weight | DatoCMS | Directus | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 80 | 82 | Directus +2 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 85 | 81 | DatoCMS +4 | | Agent ergonomics | 13% (16.2 this run) | 78 | 73 | DatoCMS +5 | | Security & auth | 14% (17.5 this run) | 77 | 68 | DatoCMS +9 | | Payments & pricing | 10% (12.5 this run) | 35 | 55 | Directus +20 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 81 | 86 | Directus +5 | | Transparency & trust | 7% (8.8 this run) | 80 | 61 | DatoCMS +19 | | Negative events | ≤15 | 0 | -6 | | | **Total** | | **74.4 · BB** | **67.1 · B** | | ## Facts side by side | Fact | DatoCMS | Directus | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Dato Srl | Monospace Inc. (Directus) | | Hosted endpoint | `https://site-api.datocms.com` | no (local only) | | 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 | MSCL-1.0-GPL (Monospace Sustainable Core Licence 1.0), source-available with a licence key for paid tiers, each version converting to GPL-3.0 after four years. `@directus/sdk` is MIT | | Tools exposed | 9 | 12 | | Read-only variant documented | yes | no | | llms.txt | yes | yes | | Last release | 2026-10-01 | 2026-10-07 | | Terms last updated | couldn't be read | no date given | | Privacy policy last updated | couldn't be read | 2026-06-09 | | 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 | not found in the text | | Arbitration or class-action waiver | couldn't be read | not found in the text | | Popularity | 153k npm/wk | 38k stars, 23k 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. **Directus.** The built-in MCP server works under the connecting user's permissions, supports OAuth limited to the MCP endpoint and blocks deletes unless an administrator allows them. Since version 12 a licence check caps the free Core tier at 3 Studio seats, 25 collections and 5 flows, and the default tool list carries about 79 KB of instructions. ## 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 ### Directus 1. Connect with OAuth or an `Authorization: Bearer` header. Don't put the token in the URL as `?access_token=`, where it can be logged 2. Use `/mcp?tool_mode=registry` when the client loads every tool definition. Default mode sends each tool's full instructions, about 79 KB in total 3. Read the `schema` tool before writing. Item payloads are untyped objects, so field names and types come only from the data model 4. Publish a version with `POST /versions/{id}/promote` over REST. The MCP `items` tool refuses system collections such as `directus_versions` 5. Count translation and junction tables against the 25-collection Core limit before creating collections ## Questions ### Which is better for AI agents, DatoCMS or Directus? DatoCMS scores 74.4 (BB) on agent readiness against Directus's 67.1 (B), and leads in 4 of 7 scored categories. Directus leads on payments & pricing and maintenance & community. ### Do DatoCMS and Directus need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call DatoCMS and Directus without installing anything? DatoCMS has a hosted endpoint at https://site-api.datocms.com. No hosted endpoint is listed for Directus. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/datocms-vs-directus.json, and with the fewest tokens: https://www.anchorterminal.com/compare/datocms-vs-directus.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "datocms", "b": "directus"}`. From a terminal: `anchor compare datocms directus` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/datocms.json and https://www.anchorterminal.com/api/v1/tools/directus.json ## Other comparisons with DatoCMS or Directus - [Contentstack vs DatoCMS](https://www.anchorterminal.com/compare/contentstack-vs-datocms.md) - [Contentstack vs Directus](https://www.anchorterminal.com/compare/contentstack-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 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 Ghost](https://www.anchorterminal.com/compare/directus-vs-ghost.md) - [Directus vs Payload](https://www.anchorterminal.com/compare/directus-vs-payload.md) - [Directus vs Sanity](https://www.anchorterminal.com/compare/directus-vs-sanity.md) - [Directus vs Storyblok](https://www.anchorterminal.com/compare/directus-vs-storyblok.md) - [Directus vs Strapi](https://www.anchorterminal.com/compare/directus-vs-strapi.md) - [Directus vs Webflow](https://www.anchorterminal.com/compare/directus-vs-webflow.md) - [Directus vs WordPress](https://www.anchorterminal.com/compare/directus-vs-wordpress.md)