# ButterCMS (slim) > 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. - Full: https://www.anchorterminal.com/tools/buttercms.md (~9,000 tokens) · this version ~2,180 tokens · JSON https://www.anchorterminal.com/tools/buttercms.json · canonical https://www.anchorterminal.com/tools/buttercms - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-10 **D · 53.3/100 · rank #711 of 950 · #14 in CMS & website publishing · not agent-ready · confidence medium** Assessment: 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. ## Facts - Kind: HTTP API · vendor: ButterCMS LLC · category: CMS & website publishing · legal entity: ButterCMS LLC · provenance 76/100 - Endpoint: `https://api.buttercms.com/v2` (HTTP) - Auth: API key · pricing: Freemium · x402: no · licence: Proprietary service under ButterCMS's terms of service. The SDKs and starter projects on GitHub are MIT - Probe metrics: not measured yet (probes haven't run) - Surfaces: REST Read API (16 GET operations) and REST Write API (9 operations) at https://api.buttercms.com/v2, webhooks for page, post, collection and media events, and an Image API on the CDN. No MCP server or CLI found - Write API: Pages: create (POST) and update (PATCH, with PUT kept for backwards compatibility). Collection items: create, PUT, PATCH, DELETE. Blog posts: create, PATCH, DELETE. No page delete, no page type or collection schema operations, no media library endpoint, no version or restore operation - Credentials: One read token and one write token per account. Read token as `auth_token` in the query string or `Authorization: Token `. Write token in the header only. Rotation by contacting support, per the docs - Write access: Paid add-on. Advanced up to 2,000 write calls a month, Professional up to 5,000, Enterprise custom. Add-on price not published - Plans: Free $0 (50,000 API calls a month, 5 pages, 50 blog posts, 50 collection items, 500 assets). Basic $79 a month or $71 billed yearly (100,000 calls). Advanced $249 or $224 (500,000 calls). Professional $399 or $359 (1M calls, 3 locales). Enterprise through sales. Every plan has unlimited users and a 14-day trial - Limits: Monthly API call quotas by plan. Free and trial accounts get 429 with the body `API Calls limit reached.` and, per the docs, possibly a `Retry-After` header counting to the monthly reset. Paid plans are not blocked for overage. No per-second limit published - Drafts and publishing: `status` is `draft` by default and `published` publishes at once. Drafts are read with `preview=1`. Blog post updates accept a `scheduled` field. Page scheduling is dashboard only. Version history and restore are in the dashboard - Assets: A media field takes a URL, or an object with `url` and `alt`, and the file is downloaded into the media library. Blog posts take `upload_images_to_media_library` for images in the body - Localisation: `locale` query parameter, or a `fields` object keyed by locale code to write several locales in one request. Locales must be configured in the account first. 3 locales on Professional, custom on Enterprise, none on lower plans - Pagination and sizing: `page` and `page_size`, or `limit` and `offset`, with `meta.count` and next and previous values. `fields` filters and selection, `order`, `exclude_body` on posts and `levels` (1 to 5) for reference depth - Errors: JSON bodies in three shapes: `detail` for most errors, a map of field names to messages for validation, and `error` for plan limits. Statuses 400, 401, 403, 404, 405, 429 and 500 are documented with causes - Webhooks: Events for pages, blog posts, collection items and media. The docs index describes delivery as best effort without retries, and endpoints must answer within 5 seconds - SDKs: Ten listed (JavaScript, Python, Ruby, PHP, Java, .NET, Go, Dart, Swift, Kotlin), MIT. The docs say to use the REST API for writes. JavaScript `buttercms` 3.0.3 (4 September 2025), Python `buttercms-python` 2.1.1 (7 May 2024) - Roles and audit: Dashboard roles, 2 on Free and Basic, 3 on Advanced and Professional, custom on Enterprise. Audit logs and access logs are listed as Enterprise functions. API tokens are not tied to a role in the reviewed docs - Security claims: AES-256 at rest, TLS 1.2, daily backups kept 30+ days, SAML single sign-on, penetration tests. The certifications listed (ISO 27001, SOC 2 Type 2 and others) are those of the AWS and Heroku data centres. Reports go to security@buttercms.com - Hosting: Heroku and AWS, with Fastly as CDN and Stripe for payments. No region or sub-processor list published - Status: status.buttercms.com on Atlassian Statuspage with CDN, API and Login Page components. Latest incidents: two on 20 October 2025 and an API, login and dashboard outage of about an hour on 24 September 2025 - Open source: No. The docs call the platform closed-source. SDKs and starter projects are MIT - Prices: Basic $79 per month (plan); Advanced $249 per month (plan); Professional $399 per month (plan) - Scores: Reliability 83, Performance pending, Schema & documentation 78, Agent ergonomics 64, Security & auth 36, Payments & pricing 20, Task success pending, Maintenance & community 27, Transparency & trust 51 · negative events -2 · total over the 7 assessed categories - Why: Reliability, Graded on the hosted Read and Write APIs. · Schema & documentation, Public OpenAPI 3.1 files for the whole API, the Read API, the Write API and webhooks, linked from the docs index. · Agent ergonomics, Responses are sized with `page_size`, a `fields` selection, `exclude_body` on posts and `levels` for reference depth (20 of 25). · Security & auth, One read token and one write token per account, with no scopes, and the docs say rotation is done by contacting support (15 of 30). · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, No dated API changelog was found. · Transparency & trust, Closed service, MIT SDKs. - Sources: 38, open questions: 11, both in the full twin - Capabilities: cms.content, cms.publish, cms.assets, cms.localisation - JSON: https://www.anchorterminal.com/api/v1/tools/buttercms.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/buttercms.svg` or a link to https://www.anchorterminal.com/tools/buttercms from a page on buttercms.com or one of its subdomains, or the README of github.com/ButterCMS/buttercms-js, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. 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 2. Send the write token only as `Authorization: Token `. The `auth_token` query parameter works for reads only 3. On page creation send every field key of the page type, with empty strings for fields left blank 4. A 202 means queued, not saved. Read the entry back with `preview=1` to confirm, and check a slug exists before retrying a create 5. Call the REST API directly for writes. The JavaScript SDK 3.0.3 has list, retrieve and search methods only ## Connect ```bash npm install buttercms --save ``` ```bash curl -H "Authorization: Token your_api_token" \ "https://api.buttercms.com/v2/posts/" ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/buttercms ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | DatoCMS | BB | 74.4 | cms.content, cms.publish, cms.assets, cms.localisation | https://www.anchorterminal.com/tools/datocms.min.md | | Sanity | BB | 73.7 | cms.content, cms.publish, cms.assets, cms.localisation | https://www.anchorterminal.com/tools/sanity.min.md | | Kontent.ai | BB | 70.5 | cms.content, cms.publish, cms.assets, cms.localisation | https://www.anchorterminal.com/tools/kontent-ai.min.md | | Webflow | B | 69.4 | cms.content, cms.publish, cms.assets, cms.localisation | https://www.anchorterminal.com/tools/webflow.min.md | | Hygraph | B | 69.3 | cms.content, cms.publish, cms.assets, cms.localisation | https://www.anchorterminal.com/tools/hygraph.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)