🔧 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
# Using npm
npm install @flowcms/client-sdk
# Using yarn
yarn add @flowcms/client-sdk
# Using pnpm
pnpm add @flowcms/client-sdk
# Using pip
pip install flowcms-sdk
# Using poetry
poetry add flowcms-sdk
# Using go modules
go get github.com/flowcms/sdk-go@latest
# Gemfile
gem 'flowcms-sdk'
# Install
bundle install
Quick Start
Initialize the client with your API key. We recommend storing credentials in environment variables.
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:
content:read - Fetch published and draft entries
content:write - Create, update, and delete entries
media:manage - Upload and transform assets
webhooks:manage - Configure event listeners
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:
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.