🔧 SDKs & Client Libraries

Official client libraries for integrating FlowCMS into your applications. Our SDKs provide type-safe, ergonomic access to the FlowCMS API with built-in caching, retry logic, and real-time event streams.

💡 Pro Tip: All SDKs are automatically generated from our OpenAPI & GraphQL schemas. They are strictly version-aligned with the API. Always pin your SDK version to match your project's requirements.

Installation

JavaScript / Node.js
Python
Go
Ruby
Terminal
# Using npm npm install @flowcms/client-sdk # Using yarn yarn add @flowcms/client-sdk # Using pnpm pnpm add @flowcms/client-sdk
Terminal
# Using pip pip install flowcms-sdk # Using poetry poetry add flowcms-sdk
Terminal
# Using go modules go get github.com/flowcms/sdk-go@latest
Terminal / Gemfile
# Gemfile gem 'flowcms-sdk' # Install bundle install

Quick Start

Initialize the client with your API key. We recommend storing credentials in environment variables.

JavaScript / TypeScript
import { FlowCMS } from '@flowcms/client-sdk'; // Initialize with environment variable const flowcms = new FlowCMS({ apiKey: process.env.FLOWCMS_API_KEY, endpoint: 'https://api.flowcms.io/v3', timeout: 5000, retries: 3 }); // Fetch latest published entries async function getLatestArticles() { const entries = await flowcms.entries.findAll({ type: 'article', status: 'published', limit: 10, sort: '-publishedAt' }); console.log(`Found ${entries.data.length} articles`); return entries; } getLatestArticles();

Core Methods

📖 Read & Query

Full GraphQL & REST support. Filter, paginate, and aggregate content with type-safe builders.

✍️ Create & Update

Optimistic updates, transactional writes, and bulk operations with conflict resolution.

🔄 Real-time Sync

WebSocket streams for live content updates. Subscribe to channels and react instantly.

🖼️ Media Handling

Presigned URLs, automatic transformations, and asset optimization out of the box.

Authentication & Scopes

The SDK handles token refresh automatically. Configure scopes based on your use case:

Example: Scoped Client
const reader = new FlowCMS({ apiKey: process.env.FLOWCMS_READ_KEY, scopes: ['content:read'], cache: { ttl: 300 } // 5 min in-memory cache});

Environment Variables

Add these to your .env file:

.env
FLOWCMS_API_KEY=sk_live_abc123... FLOWCMS_ENDPOINT=https://api.flowcms.io/v3 FLOWCMS_PROJECT_ID=proj_x7y9z2 FLOWCMS_DEBUG=false

Need Help?

Check our full API reference, browse community examples, or reach out via Discord. For enterprise support, contact your account manager.