📡 Content API
The Content API provides full CRUD operations for your CMS entries. It supports filtering, sorting, field projection, and real-time webhooks. All endpoints are versioned and served over HTTPS.
GET
/api/v2/content
Retrieve a paginated list of content entries matching the provided filters. Supports soft deletes, draft/published states, and custom field querying.
curl https://api.flowcms.io/v2/content \n -H "Authorization: Bearer $FLOW_API_KEY" \n -H "Content-Type: application/json" \n -d '{ "status": "published", "limit": 20, "sort": { "createdAt": "desc" }, "fields": ["id", "title", "slug", "author"] }'
const response = await fetch('https://api.flowcms.io/v2/content', { method: 'GET', headers: { 'Authorization': `Bearer ${FLOW_API_KEY}`, 'Accept': 'application/json' } }); const data = await response.json(); console.log(data.entries);
import requests response = requests.get( "https://api.flowcms.io/v2/content", headers={"Authorization": f"Bearer {FLOW_API_KEY}"}, params={ "status": "published", "limit": 20, "sort[createdAt]": "desc" } ) entries = response.json()["entries"]
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| status | string | No | Filter by entry status: draft, published, archived, or trashed |
| limit | integer | No | Number of entries to return (max: 100). Default: 20 |
| offset | integer | No | Number of entries to skip for pagination. Default: 0 |
| sort[field] | string | No | Sort direction: asc or desc. Supports nested fields. |
| fields[] | array | No | Specify which fields to return to reduce payload size. |
| filter[field]=value | string | No | Filter entries by custom field values. Supports operators: gt, lt, contains, in |
200 OK
{
"entries": [
{
"id": "entry_8xK2mP9vL",
"title": "Getting Started with FlowCMS",
"slug": "getting-started",
"status": "published",
"author": {
"id": "usr_7hN3qR2wT",
"name": "Alex Chen",
"email": "alex@flowcms.dev"
},
"createdAt": "2025-01-15T08:30:00Z",
"updatedAt": "2025-01-18T14:22:00Z"
}
],
"meta": {
"total": 142,
"limit": 20,
"offset": 0,
"hasMore": true,
"nextCursor": "eyJpZCI6ICJlbnRyeV84eEsybVA5dkwifQ=="
}
}
POST
/api/v2/content
Create a new content entry. Returns the created entry with all populated fields. Draft entries are assigned a unique slug automatically if omitted.
curl -X POST https://api.flowcms.io/v2/content \n -H "Authorization: Bearer $FLOW_API_KEY" \n -H "Content-Type: application/json" \n -d @payload.json
{
"title": "Advanced Querying Guide",
"slug": "advanced-querying",
"status": "draft",
"authorId": "usr_7hN3qR2wT",
"fields": {
"category": "developers",
"featuredImage": "media_9xL4pQ1wN",
"excerpt": "Learn how to build complex queries..."
}
}
© 2025 FlowCMS, Inc. All rights reserved.
API Status: Operational