# Ghost vs Storyblok > Storyblok scores 67.7 (B) on agent readiness against Ghost's 58.3 (C), and leads in 4 of 7 scored categories. Ghost 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/ghost-vs-storyblok - Markdown: https://www.anchorterminal.com/compare/ghost-vs-storyblok.md (~2,300 tokens) - Slim: https://www.anchorterminal.com/compare/ghost-vs-storyblok.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/ghost-vs-storyblok.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 Storyblok scores 67.7 (B) on agent readiness against Ghost's 58.3 (C), and leads in 4 of 7 scored categories. Ghost leads on payments & pricing and maintenance & community. Both do cms content. - Ghost: grade C, 58.3/100, rank #455 of 722. Markdown https://www.anchorterminal.com/tools/ghost.md · JSON https://www.anchorterminal.com/api/v1/tools/ghost.json - Storyblok: grade B, 67.7/100, rank #202 of 722. Markdown https://www.anchorterminal.com/tools/storyblok.md · JSON https://www.anchorterminal.com/api/v1/tools/storyblok.json ## Which one, for what ### Ghost (C) Good for: A publication, blog or newsletter where an agent drafts posts and a person or a higher role publishes. Ahead on: - Payments & pricing, 50 against 35 - Maintenance & community, 85 against 80 Also in its favour: - Open source Watch for: No OpenAPI or other machine-readable description of the Admin API was found in the docs or the repository ### 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: - Schema & documentation, 68 against 51 - Agent ergonomics, 78 against 69 - Security & auth, 73 against 56 - Transparency & trust, 80 against 72 Also in its favour: - A hosted endpoint, with nothing to install - 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 | Category | Weight | Ghost | Storyblok | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 80 | 79 | Ghost +1 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 51 | 68 | Storyblok +17 | | Agent ergonomics | 13% (16.2 this run) | 69 | 78 | Storyblok +9 | | Security & auth | 14% (17.5 this run) | 56 | 73 | Storyblok +17 | | Payments & pricing | 10% (12.5 this run) | 50 | 35 | Ghost +15 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 85 | 80 | Ghost +5 | | Transparency & trust | 7% (8.8 this run) | 72 | 80 | Storyblok +8 | | Negative events | ≤15 | -7 | -3 | | | **Total** | | **58.3 · C** | **67.7 · B** | | ## Facts side by side | Fact | Ghost | Storyblok | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Ghost Foundation | Storyblok GmbH | | Hosted endpoint | no (local only) | `https://mapi.storyblok.com/v1` | | Transports | HTTP | HTTP, Streamable HTTP | | Auth | API key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | MIT, copyright Ghost Foundation. Ghost(Pro) is a paid hosting service under the Ghost Foundation's terms | Proprietary service under Storyblok's terms. The SDKs, API clients and CLI in storyblok/monoblok are MIT | | Tools exposed | none | 7 | | Read-only variant documented | no | no | | llms.txt | yes | yes | | Last release | 2026-10-07 | 2026-10-02 | | Terms last updated | no date given | couldn't be read | | Privacy policy last updated | no date given | 2025-10-06 | | Customer content may train models | not found in the text | couldn't be read | | Terms restrict automated access | yes | couldn't be read | | Terms restrict benchmarking | not found in the text | couldn't be read | | Terms or service can change without notice | not found in the text | couldn't be read | | Arbitration or class-action waiver | not found in the text | couldn't be read | | Popularity | 56k stars, 24k npm/wk | 68 stars, 433k npm/wk | ## Verdicts **Ghost.** A create needs only a title, updates are checked against `updated_at` so a stale write is refused, and a Contributor's staff token can draft without being able to publish. The Admin API has no OpenAPI file and one fixed permission set per integration, and 20 security advisories were published between 3 September and 1 October 2026. **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 ### Ghost 1. Sign a fresh HS256 token for each batch of calls. Decode the hex secret to bytes, set `kid` to the key id, `aud` to `/admin/` and `exp` at most 5 minutes ahead 2. Set `status` to `draft` on every create unless told to publish, and publish later with a PUT that sets `status` to `published` 3. GET the post before each PUT and send its `updated_at` back. Tags and authors in a PUT replace the existing lists 4. Send content as a Lexical JSON string, or add `?source=html` and send `html`. The HTML conversion is lossy unless wrapped in an HTML card 5. Page through lists with `limit` up to 100 and `page`. Since Ghost 6.0 `limit=all` returns 100 items without an error ### 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__` 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, Ghost or Storyblok? Storyblok scores 67.7 (B) on agent readiness against Ghost's 58.3 (C), and leads in 4 of 7 scored categories. Ghost leads on payments & pricing and maintenance & community. ### Do Ghost and Storyblok need an API key? Ghost needs an API key. Storyblok takes an API key or an OAuth sign-in. ### Can an agent call Ghost and Storyblok without installing anything? No hosted endpoint is listed for Ghost. Storyblok has a hosted endpoint at https://mapi.storyblok.com/v1. ### Are Ghost and Storyblok open source? Ghost is open source (MIT, copyright Ghost Foundation. Ghost(Pro) is a paid hosting service under the Ghost Foundation's terms). No open-source release is listed for Storyblok. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/ghost-vs-storyblok.json, and with the fewest tokens: https://www.anchorterminal.com/compare/ghost-vs-storyblok.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "ghost", "b": "storyblok"}`. From a terminal: `anchor compare ghost storyblok` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/ghost.json and https://www.anchorterminal.com/api/v1/tools/storyblok.json ## Other comparisons with Ghost or Storyblok - [Contentstack vs Ghost](https://www.anchorterminal.com/compare/contentstack-vs-ghost.md) - [Contentstack vs Storyblok](https://www.anchorterminal.com/compare/contentstack-vs-storyblok.md) - [DatoCMS vs Ghost](https://www.anchorterminal.com/compare/datocms-vs-ghost.md) - [DatoCMS vs Storyblok](https://www.anchorterminal.com/compare/datocms-vs-storyblok.md) - [Directus vs Ghost](https://www.anchorterminal.com/compare/directus-vs-ghost.md) - [Directus vs Storyblok](https://www.anchorterminal.com/compare/directus-vs-storyblok.md) - [Ghost vs Payload](https://www.anchorterminal.com/compare/ghost-vs-payload.md) - [Ghost vs Sanity](https://www.anchorterminal.com/compare/ghost-vs-sanity.md) - [Ghost vs Strapi](https://www.anchorterminal.com/compare/ghost-vs-strapi.md) - [Ghost vs Webflow](https://www.anchorterminal.com/compare/ghost-vs-webflow.md) - [Ghost vs WordPress](https://www.anchorterminal.com/compare/ghost-vs-wordpress.md) - [Payload vs Storyblok](https://www.anchorterminal.com/compare/payload-vs-storyblok.md) - [Sanity vs Storyblok](https://www.anchorterminal.com/compare/sanity-vs-storyblok.md) - [Storyblok vs Strapi](https://www.anchorterminal.com/compare/storyblok-vs-strapi.md) - [Storyblok vs Webflow](https://www.anchorterminal.com/compare/storyblok-vs-webflow.md) - [Storyblok vs WordPress](https://www.anchorterminal.com/compare/storyblok-vs-wordpress.md)