Skip to content

Knowledge Management · Beta

ButterCMS
API integration

Ship Knowledge Management features without building the integration. Full ButterCMS API access via Proxy and 20+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
ButterCMS

Use Cases

Why integrate with ButterCMS

Common scenarios for SaaS companies building ButterCMS integrations for their customers.

01

Embed ButterCMS in marketing automation platforms

Email and campaign SaaS tools can let users pull published blog posts, landing pages, and featured images directly from ButterCMS into newsletters and drip campaigns, eliminating manual copy-paste workflows.

02

Power AI knowledge agents and site search

RAG chatbots and enterprise search platforms can ingest clean, structured content from ButterCMS pages and posts on a schedule, producing higher-quality embeddings than web scraping and keeping answers current with the customer's published content.

03

Automate localization pipelines

Translation management systems can detect new ButterCMS pages and posts, translate them externally, and push localized variants back with the correct locale parameter — turning a manual CSV process into a two-way sync.

04

Syndicate content to external channels

Social media schedulers, partner portals, and content distribution tools can consume ButterCMS posts and RSS/Atom feeds to auto-publish content across channels the moment it goes live in the CMS.

05

Enrich commerce and CDP experiences

E-commerce platforms and customer data platforms can map product IDs or audience segments to ButterCMS content collections, letting marketers attach editorial copy, banners, or personalized variants without engineering involvement.

What You Can Build

Ship these features with Truto + ButterCMS

Concrete product features your team can ship faster by leveraging Truto’s ButterCMS integration instead of building from scratch.

01

Blog post importer with author and category enrichment

List ButterCMS posts and hydrate each record with author, category, and tag metadata using the dedicated lookup endpoints for a fully structured content object.

02

Two-way page and post sync

Read pages and posts from ButterCMS, apply external edits or translations, and write updates back via create, update, or partial-update operations on pages, posts, and content collections.

03

Content search widget

Expose ButterCMS's page and post search endpoints inside your product so end users can query their own CMS content directly from your UI.

04

RSS, Atom, and sitemap ingestion

Consume the standards-compliant feed endpoints to power syndication, SEO monitoring, or feed-based content distribution features without parsing HTML.

05

Collections-based structured data manager

Use the contents endpoints to let end users manage reusable structured records like FAQs, testimonials, or product specs from inside your application.

06

Bulk content migration and backfill

Use the write endpoints for pages, posts, and contents to run programmatic imports from legacy systems, taking advantage of ButterCMS's asynchronous 202 Accepted processing for large jobs.

SuperAI

ButterCMS AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_butter_cms_pages

Retrieve a paginated list of ButterCMS pages for a given page type, or all Single Pages when page_type is `*`. Returns: slug, name, page_type, published, updated, fields. Field filtering and ordering apply to Page Type endpoints, not Single Pages. Required: page_type.

create_a_butter_cms_page

Create a new ButterCMS page via the Write API with support for multiple locales and automatic media uploads. The page type schema must already exist in your account; pages are created as draft by default and processing is asynchronous. Returns: status. Required: title, slug, page_type, fields.

update_a_butter_cms_page_by_id

Update an existing ButterCMS page via the Write API using a partial PATCH (PUT is supported for backwards compatibility). Only included fields are modified; title and slug are immutable. Page updates are asynchronous; scheduling is not supported. Returns: status, examples, name. Required: id, page_type.

get_single_butter_cms_page_by_id

Retrieve a specific ButterCMS page by page type and slug (id). Use `*` as page_type to look up a Single Page when the type is unknown. Returns: slug, name, page_type, published, updated, fields. Required: page_type, id.

list_all_butter_cms_pages_searches

Search ButterCMS pages by text query, returning matching pages sorted by relevancy. Only direct page content is searched; references are excluded from search but still included in the response based on levels. Returns: slug, name, page_type, published, updated, fields. Required: query.

list_all_butter_cms_contents

Retrieve items from a ButterCMS Collection with filtering, pagination, and relationship serialization. Collection fields are user-defined in the dashboard and vary by collection. Returns: meta. Required: collection_key.

create_a_butter_cms_content

Create a new item in a ButterCMS Collection via the Write API. Field structure must match the collection schema configured in the dashboard. Processing is asynchronous (202 Accepted). Returns: status. Required: key, fields.

update_a_butter_cms_content_by_id

Fully update (PUT) a ButterCMS Collection item, replacing the item with the provided data. Use PUT when you need complete field synchronization; processing is asynchronous (202 Accepted). Returns: status. Required: id, collection_key, fields.

delete_a_butter_cms_content_by_id

Soft-delete a ButterCMS Collection item by id, marking it deleted while preserving data for potential recovery. The item no longer appears in collection listings or standard API responses. Returns an empty 204 response on success. Required: id, collection_key.

butter_cms_contents_partial_update

Partially update (PATCH) a ButterCMS Collection item, modifying only the specified fields while preserving all other content. Processing is asynchronous (202 Accepted). Returns: status. Required: id, collection_key.

list_all_butter_cms_posts

Retrieve a paginated list of published ButterCMS blog posts sorted by publication date (newest first). Use exclude_body to reduce payload size on listing pages; filter by author_slug, category_slug, or tag_slug. Returns: url, id, _id.

create_a_butter_cms_post

Create a new ButterCMS blog post via the Write API with support for author assignment, categories, tags, and media integration. Posts default to draft; processing is asynchronous (202 Accepted). Scheduling is not supported on create. Returns: status, example. Required: title.

update_a_butter_cms_post_by_id

Partially update an existing ButterCMS blog post by id, modifying only the provided fields while preserving omitted ones. Use locale to update or create a specific locale variant. Scheduling parameters may be ignored with warning fields in the response. Returns: status, example. Required: id.

delete_a_butter_cms_post_by_id

Soft-delete a ButterCMS blog post by id, removing it from public listings, search, and feeds while preserving content for potential recovery. Use locale to target a specific locale variant. Returns an empty 204 response on success. Required: id.

get_single_butter_cms_post_by_id

Retrieve a specific ButterCMS blog post by slug (id), including content regardless of publication status (published, draft, or scheduled). Ideal for individual post pages and preview workflows. Returns: url, id, _id. Required: id.

list_all_butter_cms_authors

Retrieve all ButterCMS blog post authors with profile information. Pass include=recent_posts to enrich each author with recent posts; use locale to filter those posts. Returns: slug, first_name, last_name, email, bio, title, profile_image.

get_single_butter_cms_author_by_id

Retrieve a ButterCMS author by slug (id), including profile details and optional recent posts. Returns: slug, first_name, last_name, email, bio, title, profile_image. Required: id.

list_all_butter_cms_categories

Retrieve all ButterCMS blog post categories that contain published posts. Pass include=recent_posts to attach recent posts per category; use locale to filter those posts. Returns: name, slug, recent_posts.

get_single_butter_cms_category_by_id

Retrieve a ButterCMS blog post category by slug (id), optionally including recent posts. Returns: name, slug, recent_posts. Required: id.

list_all_butter_cms_tags

Retrieve all ButterCMS blog post tags that contain published posts. Pass include=recent_posts to attach recent posts per tag; use locale to filter those posts. Returns: name, slug, recent_posts.

get_single_butter_cms_tag_by_id

Retrieve a ButterCMS blog post tag by slug (id), optionally including recent posts. Returns: name, slug, recent_posts. Required: id.

list_all_butter_cms_posts_searches

Search ButterCMS blog posts with full-text search across titles and body content, ranked by relevance. An empty query returns no results; use exclude_body to omit the body field and reduce response size. Returns: url, id, _id.

list_all_butter_cms_feeds_rses

Generate a standards-compliant RSS 2.0 XML feed of ButterCMS blog posts for syndication and feed readers. Filter with category_slug, tag_slug, or locale. Returns the complete RSS 2.0 XML feed string.

list_all_butter_cms_feeds_atoms

Generate a standards-compliant Atom 1.0 XML feed of ButterCMS blog posts for syndication, with richer metadata than RSS. Filter with category_slug, tag_slug, or locale. Returns the complete Atom 1.0 XML feed string.

list_all_butter_cms_feeds_sitemaps

Generate a standards-compliant XML sitemap of ButterCMS blog posts for search engine discovery (sitemaps.org protocol). Filter with category_slug, tag_slug, or locale. Returns the complete XML sitemap string with loc and lastmod entries.

Why Truto

Why use Truto’s MCP server for ButterCMS

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with ButterCMS in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s ButterCMS account

Use Truto’s frontend SDK to connect your customer’s ButterCMS account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call ButterCMS

Truto’s Proxy API is a 1-to-1 mapping of the ButterCMS API. You call us, we call ButterCMS, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate ButterCMS’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about ButterCMS on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for the ButterCMS integration?

ButterCMS uses API key authentication. Truto handles the secure storage and injection of each end user's API key, so you don't have to build a credential vault or key rotation logic for the integration.

Which ButterCMS resources can I read and write through Truto?

You can read and write pages, posts, and content collections; read authors, categories, and tags; and read RSS, Atom, and sitemap feeds. Search endpoints are available for both pages and posts.

Does the integration support ButterCMS's write API for bulk updates?

Yes. Create, update, partial update (PATCH), and delete operations are supported on posts and content collections, and create/update are supported on pages. ButterCMS processes write operations asynchronously and returns 202 Accepted, which makes it suitable for bulk imports.

How do we handle localization and multi-locale content?

ButterCMS accepts a locale parameter on its content endpoints, so you can read and write locale-specific variants of pages and posts. This is what powers two-way sync workflows with translation management systems.

How fresh is the data — is there webhook support?

The integration is currently polling-based against ButterCMS's REST API. You can schedule sync jobs at whatever cadence your product needs to keep content current, and use the search endpoints to efficiently detect new or updated records.

Can we filter posts by tag, category, or author?

Yes. The list posts endpoint supports filtering by author slug, category slug, tag slug, and locale, so you can build features like tag-based newsletters or author-specific content feeds without pulling the full dataset.

ButterCMS

Get ButterCMS integrated into your app

Our team understands what it takes to make a ButterCMS integration successful. A short, crisp 30 minute call with folks who understand the problem.