{
  "data": {
    "a": {
      "slug": "buttercms",
      "name": "ButterCMS",
      "vendor": "ButterCMS LLC",
      "vendorUrl": "https://buttercms.com",
      "kind": "http-api",
      "category": "cms",
      "summary": "ButterCMS is a hosted headless CMS with pages, collections and a blog engine. Agents read content through a REST Read API and create, update, publish and delete it through a REST Write API sold as a paid add-on.",
      "url": "https://www.anchorterminal.com/tools/buttercms",
      "markdownUrl": "https://www.anchorterminal.com/tools/buttercms.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/buttercms.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/buttercms.json",
      "repo": "https://github.com/ButterCMS/buttercms-js",
      "license": "Proprietary service under ButterCMS's terms of service. The SDKs and starter projects on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.buttercms.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "buttercms"
        },
        {
          "registry": "pypi",
          "name": "buttercms-python"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve for reads, paid add-on for writes. A person signs up in a browser and copies the read token from Settings. The write token exists only after the Write API add-on is bought under Settings, Billing, or enabled by support, and one docs page says this needs verification. The read token goes in the `auth_token` query parameter or an `Authorization: Token` header. The write token is accepted in the header only. There is one token of each kind per account, with no scopes, and the docs say tokens are rotated by contacting support. No OAuth, app review or sales approval for the listed plans.",
      "pricing": "freemium",
      "pricingNotes": "The Free plan needs no card and includes 50,000 API calls a month, but not the Write API. Writing needs Advanced ($249 a month, $224 billed yearly) or Professional ($399, $359 billed yearly) plus the Write API add-on, whose price is not published, with 2,000 or 5,000 write calls a month. Enterprise includes it and is sold through sales. Every plan has a 14-day trial (https://buttercms.com/pricing/, checked 2026-10-09).",
      "priceSummary": "$79 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI files or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 6929,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://buttercms.com/docs/api/overview",
      "llmsTxt": "https://buttercms.com/docs/llms.txt",
      "openapi": "https://buttercms.com/docs/api/openapi/openapi.yaml",
      "capabilities": [
        "cms.content",
        "cms.publish",
        "cms.assets",
        "cms.localisation"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "free-tier",
        "no-card",
        "status-page",
        "javascript",
        "python",
        "php",
        "ruby"
      ],
      "lastRelease": "2025-09-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.3,
        "grade": "D",
        "agentReady": false,
        "rank": 717,
        "ranked": true,
        "rankOf": 961,
        "categoryRank": 14,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 27,
          "payments": 20,
          "reliability": 83,
          "schema": 78,
          "security": 36,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "9 October 2026. The docs page on AI tools shows `butter.page.update(...)` as the way to write through the JavaScript SDK. The published SDK 3.0.3 has list, retrieve and search methods only, and the SDK overview says to call REST for writes (https://buttercms.com/docs/build-your-app/third-party-integrations/ai-tools-integration.md, https://github.com/ButterCMS/buttercms-js). 2 points."
        ],
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "Public OpenAPI 3.1 files for the Read and Write APIs (25 operations, 328 examples), a docs llms.txt and a Markdown copy of every docs page",
          "status.buttercms.com lists three components and no incident since 20 October 2025",
          "Writes create drafts unless `status` is `published`, and the write token is separate from the read token and accepted only in a header",
          "Media fields take a URL and the service copies the file into the media library, so one request creates an entry with its image",
          "Free plan with no card and 50,000 API calls a month for reading, and dollar prices for four plans on the pricing page"
        ],
        "weaknesses": [
          "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",
          "Create and update calls answer 202 with `{\"status\": \"pending\"}` and no identifier, and there are no idempotency keys",
          "One read token and one write token per account, with no scopes. The docs say rotation is done by contacting support",
          "Page types and collections cannot be created through the API, pages cannot be deleted through it, and it has no version or rollback operation",
          "The terms are an undated website Terms of Service, the privacy policy dates from 15 August 2022 and covers the website, and a DPA is on request for Enterprise only",
          "No API changelog or deprecation policy was found. The JavaScript SDK's last release was 3.0.3 on 4 September 2025 and it has no write methods"
        ],
        "agentNotes": [
          "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",
          "Send the write token only as `Authorization: Token \u003ctoken\u003e`. The `auth_token` query parameter works for reads only",
          "On page creation send every field key of the page type, with empty strings for fields left blank",
          "A 202 means queued, not saved. Read the entry back with `preview=1` to confirm, and check a slug exists before retrying a create",
          "Call the REST API directly for writes. The JavaScript SDK 3.0.3 has list, retrieve and search methods only"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.3
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 27,
          "payments": 20,
          "reliability": 83,
          "schema": 78,
          "security": 36,
          "transparency": 26
        },
        "provenanceScore": 76
      },
      "connect": {
        "install": "npm install buttercms --save",
        "http": "curl -H \"Authorization: Token your_api_token\" \\\n     \"https://api.buttercms.com/v2/posts/\""
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/buttercms"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 79,
          "note": "billed monthly, $71 billed yearly, 100,000 API calls, no Write API"
        },
        {
          "item": "Advanced",
          "unit": "month",
          "usd": 249,
          "note": "billed monthly, $224 billed yearly, 500,000 API calls, Write API add-on priced separately (up to 2,000 write calls)"
        },
        {
          "item": "Professional",
          "unit": "month",
          "usd": 399,
          "note": "billed monthly, $359 billed yearly, 1M API calls, Write API add-on priced separately (up to 5,000 write calls)"
        }
      ],
      "provenance": {
        "legalEntity": "ButterCMS LLC",
        "domain": "buttercms.com",
        "domainRegistered": "2015-03-24",
        "endpointOnVendorDomain": true,
        "terms": "https://buttercms.com/terms/",
        "privacy": "https://buttercms.com/privacy/",
        "statusPage": "https://status.buttercms.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The privacy policy (last modified 15 August 2022) names ButterCMS LLC. The terms name only Butter and ButterCMS, carry no date, give a San Francisco postal address for DMCA notices and choose Michigan law.",
          "The terms are written as website Terms of Service and define the Website to include the services on it. The Write API's OpenAPI file names this page as its licence, so it is the only published contract for the API. No separate service agreement, API terms or SLA document was found.",
          "The privacy policy covers information collected on the website and says nothing about content stored in the CMS. The docs say a data processing agreement is available to Enterprise customers on request.",
          "A status page post about a DNS outage on 9 September 2024 says ButterCMS was acquired by Tiugo Technologies, and the site's careers link goes to Tiugo's recruiting page.",
          "The API answers at api.buttercms.com and the dashboard at app.buttercms.com.",
          "buttercms.com/.well-known/security.txt returns 404. The docs give security@buttercms.com for vulnerability reports.",
          "RDAP for buttercms.com gives a registration date of 2015-03-24 and Amazon Registrar, Inc. as registrar.",
          "No API changelog was found on the site or in the docs index. The JavaScript SDK repository has a CHANGELOG.md."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/buttercms.json",
      "live": {
        "slug": "buttercms",
        "probe": {
          "target": "https://api.buttercms.com/v2",
          "method": "get",
          "lastAt": "2026-10-11T06:47:07.778733028Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "too many redirects",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 248,
          "samples30d": 402,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 70,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-09T15:43:00.096294667Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "too many redirects"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.buttercms.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-11T06:43:31.054827858Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "ButterCMS/buttercms-js",
            "version": "v3.0.3",
            "released": "2025-09-04",
            "seenAt": "2026-10-10T17:38:13.934591315Z"
          },
          {
            "registry": "npm",
            "name": "buttercms",
            "version": "3.0.3",
            "seenAt": "2026-10-10T17:38:12.861740137Z"
          },
          {
            "registry": "pypi",
            "name": "buttercms-python",
            "version": "2.1.1",
            "released": "2024-05-07",
            "seenAt": "2026-10-10T17:38:13.750129757Z"
          }
        ],
        "githubStars": 164,
        "npmWeekly": 6614,
        "pypiWeekly": 937,
        "securityTxt": {
          "url": "https://buttercms.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-10T15:40:40.907774842Z"
        },
        "llmsTxt": {
          "url": "https://buttercms.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-10T14:03:44.258576389Z"
        },
        "pages": [
          {
            "url": "https://buttercms.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-10T18:57:57.859171764Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9ba825b44b86"
          },
          {
            "url": "https://buttercms.com/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-10T18:57:59.97341809Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "908b6461f1b9"
          },
          {
            "url": "https://buttercms.com/terms/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-10T18:58:01.978044608Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8862b63c94a5"
          }
        ],
        "updatedAt": "2026-10-11T06:47:07.778733028Z"
      }
    },
    "answer": "Directus scores 67.1 (B) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "directus",
      "name": "Directus",
      "vendor": "Monospace Inc. (Directus)",
      "vendorUrl": "https://directus.com",
      "kind": "http-api",
      "category": "cms",
      "summary": "Directus is a source-available headless CMS and data platform that runs on an SQL database, self-hosted or on a paid cloud. Agents manage items, files and the data model through REST, GraphQL and a built-in MCP server.",
      "url": "https://www.anchorterminal.com/tools/directus",
      "markdownUrl": "https://www.anchorterminal.com/tools/directus.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/directus.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/directus.json",
      "repo": "https://github.com/directus/directus",
      "license": "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",
      "transports": [
        "http",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "directus"
        },
        {
          "registry": "npm",
          "name": "@directus/sdk"
        },
        {
          "registry": "npm",
          "name": "@directus/specs"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve on your own instance, with no app review or partner approval. The MCP server at `/mcp` accepts OAuth (PKCE, with dynamic client registration or client ID metadata documents, both off by default) and issues a token with the `mcp:access` scope that works only on the MCP endpoint. REST, GraphQL and MCP also accept a static token, one per user, which doesn't expire and is sent as `Authorization: Bearer` or as `?access_token=` in the URL. Log-in tokens are short-lived with a refresh token. Every credential acts with its user's access policies, down to collection, action, field and item rule.",
      "pricing": "freemium",
      "pricingNotes": "The Core tier is free to self-host with 3 Studio seats, 25 collections and 5 flows, with no card, account or contract, so an agent can start at once. Team is $499 a month on an annual term or $599 monthly, Enterprise is priced by sales, and Directus Cloud hosting is a $99 a month add-on with a 14-day trial. The Open Innovation Grant lifts the limits for organisations under $5M revenue and 50 employees (checked 2026-10-08).",
      "priceSummary": "$499 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the pricing page or the repository's MCP source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 12,
      "popularity": {
        "githubStars": 38295,
        "npmWeekly": 22588,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://directus.com/docs",
      "llmsTxt": "https://directus.com/docs/llms.txt",
      "openapi": "https://github.com/directus/directus/blob/main/packages/specs/src/openapi.yaml",
      "capabilities": [
        "cms.content",
        "cms.schema",
        "cms.assets",
        "cms.publish",
        "cms.localisation"
      ],
      "tags": [
        "source-available",
        "self-hosted",
        "hosted",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "graphql",
        "typescript",
        "sql",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.1,
        "grade": "B",
        "agentReady": false,
        "rank": 265,
        "ranked": true,
        "rankOf": 961,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 86,
          "payments": 55,
          "reliability": 82,
          "schema": 81,
          "security": 68,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -6,
        "negativeNotes": [
          "5 August 2026. Directus published GHSA-97xr-jchp-xm3c (critical, CVSS 9.2, no CVE). On versions before 12.1.0, a public WebSocket client could read, create, update or delete items in user collections after a failed authentication message. At least 20 advisories were published between 24 June and 2 September 2026, at least 11 rated high, among them SQL injection through geometry fields (GHSA-chfm-g7r3-vv42) and a TUS upload authorisation bypass (GHSA-xjxq-pj7h-g676). The critical fix shipped in 12.1.0 on 1 July, before publication, the vendor published every advisory itself, and none mentions exploitation, so we deduct 6 of a possible 15. https://github.com/directus/directus/security/advisories/GHSA-97xr-jchp-xm3c ; https://github.com/directus/directus/security/advisories"
        ],
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "MCP OAuth with PKCE issues tokens with the `mcp:access` scope and the MCP endpoint as audience, and administrators can revoke registered clients",
          "Deletes through MCP are refused unless the Allow Deletes setting is on, and the MCP server itself is off by default",
          "Registry mode at `/mcp?tool_mode=registry` cuts the tool list to `search`, `execute` and `schema`",
          "Content versioning has REST endpoints to save, compare and promote a version, and revisions record each change",
          "Six tagged releases between 29 July and 7 October 2026, with breaking changes listed per version in the docs"
        ],
        "weaknesses": [
          "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",
          "The licence is MSCL-1.0-GPL, source-available and not OSI approved, with a ban on competing use and on bypassing the licence key",
          "Static tokens never expire, are stored in plain text in `directus_users`, and the MCP guide shows them in the URL as `?access_token=`",
          "Releases don't follow semantic versioning, and 12.1 to 12.5 each carried breaking changes",
          "At least 20 security advisories were published between June and September 2026, one rated critical and at least 11 rated high"
        ],
        "agentNotes": [
          "Connect with OAuth or an `Authorization: Bearer` header. Don't put the token in the URL as `?access_token=`, where it can be logged",
          "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",
          "Read the `schema` tool before writing. Item payloads are untyped objects, so field names and types come only from the data model",
          "Publish a version with `POST /versions/{id}/promote` over REST. The MCP `items` tool refuses system collections such as `directus_versions`",
          "Count translation and junction tables against the 25-collection Core limit before creating collections"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.1
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 86,
          "payments": 55,
          "reliability": 82,
          "schema": 81,
          "security": 68,
          "transparency": 55
        },
        "provenanceScore": 66
      },
      "connect": {
        "install": "npm install @directus/sdk",
        "claudeCode": "claude mcp add --transport http directus https://your-directus-url.com/mcp",
        "config": {
          "mcpServers": {
            "directus": {
              "headers": {
                "Authorization": "Bearer your-generated-token"
              },
              "url": "https://your-directus-url.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cms.content",
        "tool": "https://letme.dev/directus"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Core, self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "3 Studio seats, 25 collections, 5 flows"
        },
        {
          "item": "Team",
          "unit": "month",
          "usd": 499,
          "note": "annual term, or $599 billed monthly. 10 seats, 50 collections, 20 flows"
        },
        {
          "item": "Team extra seat",
          "unit": "seat-month",
          "usd": 50,
          "note": "Studio users only"
        },
        {
          "item": "Directus Cloud hosting add-on",
          "unit": "month",
          "usd": 99,
          "note": "for Core, Team and Open Innovation Grant projects"
        }
      ],
      "provenance": {
        "legalEntity": "Monospace Inc. (doing business as Directus)",
        "domain": "directus.com",
        "domainRegistered": "1997-02-06",
        "endpointOnVendorDomain": false,
        "terms": "https://directus.com/license",
        "privacy": "https://directus.com/privacy",
        "statusPage": "https://status.directus.cloud",
        "changelog": "https://github.com/directus/directus/releases",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy (last updated 9 June 2026) names Monospace Inc., doing business as Directus, a Delaware corporation, at 223 Bedford Ave STE A #855, Brooklyn, New York. The terms page, dated 28 April 2025, gives the same entity.",
          "`terms` points at the MSCL-1.0-GPL licence text, which governs a self-hosted install. directus.com/terms reads as website terms of use, and Directus Cloud has separate Cloud policies at directus.com/cloud-policies.",
          "The privacy policy says personal information processed for customers of the product is handled under customer agreements, not the policy. No public DPA was found.",
          "A self-hosted install answers on its owner's domain. It contacts licensing.directus.com when a licence key is set and telemetry.directus.io for usage reports.",
          "https://directus.com/.well-known/security.txt returned 404 on 8 October 2026. directus.io redirects to directus.com.",
          "RDAP for directus.com gives a registration date of 1997-02-06, which predates the company's use of the domain.",
          "The status page runs on Statuspage and covers Directus Cloud regions and the dashboard, not self-hosted installs."
        ],
        "score": 66
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/directus.json",
      "live": {
        "slug": "directus",
        "vendorStatus": {
          "page": "https://status.directus.cloud",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-11T06:43:43.641476433Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "directus/directus",
            "version": "v12.5.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-10T17:43:54.537168312Z"
          },
          {
            "registry": "npm",
            "name": "@directus/sdk",
            "version": "27.0.0",
            "seenAt": "2026-10-10T17:43:51.32811222Z"
          },
          {
            "registry": "npm",
            "name": "@directus/specs",
            "version": "15.2.1",
            "seenAt": "2026-10-10T17:43:52.547187563Z"
          },
          {
            "registry": "npm",
            "name": "directus",
            "version": "12.5.0",
            "seenAt": "2026-10-10T17:43:48.566018647Z"
          }
        ],
        "githubStars": 38382,
        "npmWeekly": 16718,
        "securityTxt": {
          "url": "https://directus.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-10T15:40:50.632182515Z"
        },
        "llmsTxt": {
          "url": "https://directus.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-10T14:04:05.479741178Z"
        },
        "pages": [
          {
            "url": "https://directus.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-10T19:00:43.618778497Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "316eed4e388b"
          },
          {
            "url": "https://directus.com/license",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-10T19:00:41.254183439Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "665a299857ad"
          }
        ],
        "updatedAt": "2026-10-11T06:43:43.641476433Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "ButterCMS LLC",
        "b": "Monospace Inc. (Directus)",
        "name": "Vendor"
      },
      {
        "a": "https://api.buttercms.com/v2",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under ButterCMS's terms of service. The SDKs and starter projects on GitHub are MIT",
        "b": "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",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "12",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2025-09-04",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2022-08-15",
        "b": "2026-06-09",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "6.9k npm/wk",
        "b": "38k stars, 23k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Directus scores 67.1 (B) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, ButterCMS or Directus?"
      },
      {
        "answer": "ButterCMS needs an API key. Directus takes an API key or an OAuth sign-in.",
        "question": "Do ButterCMS and Directus need an API key?"
      },
      {
        "answer": "ButterCMS has a hosted endpoint at https://api.buttercms.com/v2. No hosted endpoint is listed for Directus.",
        "question": "Can an agent call ButterCMS and Directus without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "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.",
        "slug": "buttercms",
        "watchFor": "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"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 73 against 64",
          "Security \u0026 auth, 68 against 36",
          "Payments \u0026 pricing, 55 against 20",
          "Maintenance \u0026 community, 86 against 27",
          "Transparency \u0026 trust, 61 against 51"
        ],
        "also": null,
        "goodFor": "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.",
        "slug": "directus",
        "watchFor": "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"
      }
    ],
    "job": {
      "capability": "cms.content",
      "name": "Content management"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-contentstack.json",
        "title": "ButterCMS vs Contentstack",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-contentstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-datocms.json",
        "title": "ButterCMS vs DatoCMS",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-datocms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-ghost.json",
        "title": "ButterCMS vs Ghost",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-ghost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-hygraph.json",
        "title": "ButterCMS vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai.json",
        "title": "ButterCMS vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-payload.json",
        "title": "ButterCMS vs Payload",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-payload"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-prismic.json",
        "title": "ButterCMS vs Prismic",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-sanity.json",
        "title": "ButterCMS vs Sanity",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-storyblok.json",
        "title": "ButterCMS vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-strapi.json",
        "title": "ButterCMS vs Strapi",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-webflow.json",
        "title": "ButterCMS vs Webflow",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buttercms-vs-wordpress.json",
        "title": "ButterCMS vs WordPress",
        "url": "https://www.anchorterminal.com/compare/buttercms-vs-wordpress"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentstack-vs-directus.json",
        "title": "Contentstack vs Directus",
        "url": "https://www.anchorterminal.com/compare/contentstack-vs-directus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/datocms-vs-directus.json",
        "title": "DatoCMS vs Directus",
        "url": "https://www.anchorterminal.com/compare/datocms-vs-directus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-ghost.json",
        "title": "Directus vs Ghost",
        "url": "https://www.anchorterminal.com/compare/directus-vs-ghost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-hygraph.json",
        "title": "Directus vs Hygraph",
        "url": "https://www.anchorterminal.com/compare/directus-vs-hygraph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-kontent-ai.json",
        "title": "Directus vs Kontent.ai",
        "url": "https://www.anchorterminal.com/compare/directus-vs-kontent-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-payload.json",
        "title": "Directus vs Payload",
        "url": "https://www.anchorterminal.com/compare/directus-vs-payload"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-prismic.json",
        "title": "Directus vs Prismic",
        "url": "https://www.anchorterminal.com/compare/directus-vs-prismic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-sanity.json",
        "title": "Directus vs Sanity",
        "url": "https://www.anchorterminal.com/compare/directus-vs-sanity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-storyblok.json",
        "title": "Directus vs Storyblok",
        "url": "https://www.anchorterminal.com/compare/directus-vs-storyblok"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-strapi.json",
        "title": "Directus vs Strapi",
        "url": "https://www.anchorterminal.com/compare/directus-vs-strapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-webflow.json",
        "title": "Directus vs Webflow",
        "url": "https://www.anchorterminal.com/compare/directus-vs-webflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/directus-vs-wordpress.json",
        "title": "Directus vs WordPress",
        "url": "https://www.anchorterminal.com/compare/directus-vs-wordpress"
      }
    ],
    "scores": [
      {
        "buttercms": 83,
        "by": 1,
        "directus": 82,
        "edge": "buttercms",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "buttercms": 78,
        "by": 3,
        "directus": 81,
        "edge": "directus",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "buttercms": 64,
        "by": 9,
        "directus": 73,
        "edge": "directus",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "buttercms": 36,
        "by": 32,
        "directus": 68,
        "edge": "directus",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "buttercms": 20,
        "by": 35,
        "directus": 55,
        "edge": "directus",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "buttercms": 27,
        "by": 59,
        "directus": 86,
        "edge": "directus",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "buttercms": 51,
        "by": 10,
        "directus": 61,
        "edge": "directus",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Directus scores 67.1 (B) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories. Both do content management.",
    "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.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/buttercms-vs-directus",
    "json": "https://www.anchorterminal.com/compare/buttercms-vs-directus.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/buttercms-vs-directus.md",
    "slim": "https://www.anchorterminal.com/compare/buttercms-vs-directus.min.md"
  },
  "markdown": "Directus scores 67.1 (B) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories. Both do content management.\n\n- ButterCMS: grade D, 53.3/100, rank #717 of 961. Markdown https://www.anchorterminal.com/tools/buttercms.md · JSON https://www.anchorterminal.com/api/v1/tools/buttercms.json\n- Directus: grade B, 67.1/100, rank #265 of 961. Markdown https://www.anchorterminal.com/tools/directus.md · JSON https://www.anchorterminal.com/api/v1/tools/directus.json\n- Best headless CMS and website publishing for AI agents: https://www.anchorterminal.com/best/cms/index.md\n- All 91 cms comparisons: https://www.anchorterminal.com/compare/cms/index.md\n\n## Which one, for what\n\n### ButterCMS (D)\n\nGood 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.\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch 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\n\n### Directus (B)\n\nGood 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.\n\nAhead on:\n- Agent ergonomics, 73 against 64\n- Security \u0026 auth, 68 against 36\n- Payments \u0026 pricing, 55 against 20\n- Maintenance \u0026 community, 86 against 27\n- Transparency \u0026 trust, 61 against 51\n\nWatch 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\n\n\n## Score by category\n\n| Category | Weight | ButterCMS | Directus | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 83 | 82 | ButterCMS +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 81 | Directus +3 |\n| Agent ergonomics | 13% (16.2 this run) | 64 | 73 | Directus +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 36 | 68 | Directus +32 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 55 | Directus +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 27 | 86 | Directus +59 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 51 | 61 | Directus +10 |\n| Negative events | ≤15 | -2 | -6 | |\n| **Total** | | **53.3 · D** | **67.1 · B** | |\n\n## Facts side by side\n\n| Fact | ButterCMS | Directus |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | ButterCMS LLC | Monospace Inc. (Directus) |\n| Hosted endpoint | `https://api.buttercms.com/v2` | no (local only) |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under ButterCMS's terms of service. The SDKs and starter projects on GitHub 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 |\n| Tools exposed | none | 12 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2025-09-04 | 2026-10-07 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | 2022-08-15 | 2026-06-09 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 6.9k npm/wk | 38k stars, 23k npm/wk |\n\n## Verdicts\n\n**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.\n\n**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.\n\n## Before you call either\n\n### ButterCMS\n\n1. 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\n2. Send the write token only as `Authorization: Token \u003ctoken\u003e`. The `auth_token` query parameter works for reads only\n3. On page creation send every field key of the page type, with empty strings for fields left blank\n4. A 202 means queued, not saved. Read the entry back with `preview=1` to confirm, and check a slug exists before retrying a create\n5. Call the REST API directly for writes. The JavaScript SDK 3.0.3 has list, retrieve and search methods only\n\n### Directus\n\n1. Connect with OAuth or an `Authorization: Bearer` header. Don't put the token in the URL as `?access_token=`, where it can be logged\n2. 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\n3. Read the `schema` tool before writing. Item payloads are untyped objects, so field names and types come only from the data model\n4. Publish a version with `POST /versions/{id}/promote` over REST. The MCP `items` tool refuses system collections such as `directus_versions`\n5. Count translation and junction tables against the 25-collection Core limit before creating collections\n\n## Questions\n\n### Which is better for AI agents, ButterCMS or Directus?\n\nDirectus scores 67.1 (B) on agent readiness against ButterCMS's 53.3 (D), and leads in 6 of 7 scored categories.\n\n### Do ButterCMS and Directus need an API key?\n\nButterCMS needs an API key. Directus takes an API key or an OAuth sign-in.\n\n### Can an agent call ButterCMS and Directus without installing anything?\n\nButterCMS has a hosted endpoint at https://api.buttercms.com/v2. No hosted endpoint is listed for Directus.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/buttercms-vs-directus.json, and with the fewest tokens: https://www.anchorterminal.com/compare/buttercms-vs-directus.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"buttercms\", \"b\": \"directus\"}`. From a terminal: `anchor compare buttercms directus`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/buttercms.json and https://www.anchorterminal.com/api/v1/tools/directus.json\n\n## Other comparisons with ButterCMS or Directus\n\n- [ButterCMS vs Contentstack](https://www.anchorterminal.com/compare/buttercms-vs-contentstack.md)\n- [ButterCMS vs DatoCMS](https://www.anchorterminal.com/compare/buttercms-vs-datocms.md)\n- [ButterCMS vs Ghost](https://www.anchorterminal.com/compare/buttercms-vs-ghost.md)\n- [ButterCMS vs Hygraph](https://www.anchorterminal.com/compare/buttercms-vs-hygraph.md)\n- [ButterCMS vs Kontent.ai](https://www.anchorterminal.com/compare/buttercms-vs-kontent-ai.md)\n- [ButterCMS vs Payload](https://www.anchorterminal.com/compare/buttercms-vs-payload.md)\n- [ButterCMS vs Prismic](https://www.anchorterminal.com/compare/buttercms-vs-prismic.md)\n- [ButterCMS vs Sanity](https://www.anchorterminal.com/compare/buttercms-vs-sanity.md)\n- [ButterCMS vs Storyblok](https://www.anchorterminal.com/compare/buttercms-vs-storyblok.md)\n- [ButterCMS vs Strapi](https://www.anchorterminal.com/compare/buttercms-vs-strapi.md)\n- [ButterCMS vs Webflow](https://www.anchorterminal.com/compare/buttercms-vs-webflow.md)\n- [ButterCMS vs WordPress](https://www.anchorterminal.com/compare/buttercms-vs-wordpress.md)\n- [Contentstack vs Directus](https://www.anchorterminal.com/compare/contentstack-vs-directus.md)\n- [DatoCMS vs Directus](https://www.anchorterminal.com/compare/datocms-vs-directus.md)\n- [Directus vs Ghost](https://www.anchorterminal.com/compare/directus-vs-ghost.md)\n- [Directus vs Hygraph](https://www.anchorterminal.com/compare/directus-vs-hygraph.md)\n- [Directus vs Kontent.ai](https://www.anchorterminal.com/compare/directus-vs-kontent-ai.md)\n- [Directus vs Payload](https://www.anchorterminal.com/compare/directus-vs-payload.md)\n- [Directus vs Prismic](https://www.anchorterminal.com/compare/directus-vs-prismic.md)\n- [Directus vs Sanity](https://www.anchorterminal.com/compare/directus-vs-sanity.md)\n- [Directus vs Storyblok](https://www.anchorterminal.com/compare/directus-vs-storyblok.md)\n- [Directus vs Strapi](https://www.anchorterminal.com/compare/directus-vs-strapi.md)\n- [Directus vs Webflow](https://www.anchorterminal.com/compare/directus-vs-webflow.md)\n- [Directus vs WordPress](https://www.anchorterminal.com/compare/directus-vs-wordpress.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-11",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ButterCMS vs Directus",
        "url": ""
      }
    ],
    "description": "Directus scores 67.1 (B) to ButterCMS's 53.3 (D) for content management. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "ButterCMS D 53.3",
      "Directus B 67.1",
      "scores"
    ],
    "h1": "ButterCMS vs Directus",
    "image": "https://www.anchorterminal.com/assets/og/compare-buttercms-vs-directus.png",
    "path": "/compare/buttercms-vs-directus",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ButterCMS vs Directus for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-10",
    "url": "https://www.anchorterminal.com/compare/buttercms-vs-directus"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 630
  },
  "version": 1
}
