The Content API provides flexible search with both simple query parameters and advanced filtering through request bodies.
Path Parameters
Query Parameters
Cursor for pagination (from previous response)
Filter by tags (comma-separated)
Filter by status: draft, modified, published, unpublished, or deleted
Natural language query for semantic search
Filter by template status (true or false)
Filter by folder ID (use null to get unfiled content)
Response
Example Response
{
"data": [
{
"id": "cont124",
"typeId": "ct123",
"typeVersion": 2,
"version": 1,
"lastPublishedVersion": 1,
"packageVersion": "1.0.0",
"name": "Getting Started Guide",
"status": "published",
"isTemplate": false,
"content": { ... },
"tags": ["Tutorial"],
"metadata": {
"author": "jane.doe@metabind.ai",
"locale": "en-US"
},
"createdAt": "2024-03-21T10:00:00Z",
"updatedAt": "2024-03-21T14:30:00Z"
}
],
"pagination": {
"lastKey": "eyJwayI6Ik9SR..."
}
}
Advanced Filtering (POST Method)
For complex queries, use the POST method with a JSON request body:
POST /app/v1/organizations/{organizationId}/projects/{projectId}/content
Request Body
{
"filter": {
"type": {
"eq": "article"
},
"tags": {
"all": ["technology", "ai"]
},
"status": {
"eq": "published"
},
"metadata.author": {
"eq": "jane.doe@metabind.ai"
},
"createdAt": {
"gte": "2024-01-01T00:00:00Z",
"lte": "2024-12-31T23:59:59Z"
}
},
"sort": [
{ "field": "updatedAt", "order": "desc" },
{ "field": "name", "order": "asc" }
],
"page": 1,
"limit": 20
}
Filter Operators
| Operator | Description | Example |
|---|
eq | Equals | {"status": {"eq": "published"}} |
neq | Not equals | {"status": {"neq": "deleted"}} |
in | In array | {"typeId": {"in": ["article", "blog"]}} |
all | Contains all values (tags) | {"tags": {"all": ["featured", "news"]}} |
any | Contains any values (tags) | {"tags": {"any": ["tech", "ai"]}} |
gte | Greater than or equal (date) | {"updatedAt": {"gte": "2024-01-01"}} |
lte | Less than or equal (date) | {"updatedAt": {"lte": "2024-12-31"}} |
gt | Greater than (date) | {"updatedAt": {"gt": "2024-01-01"}} |
lt | Less than (date) | {"updatedAt": {"lt": "2024-12-31"}} |
like | Pattern matching (name) | {"name": {"like": "intro"}} |
Available Sort Fields
| Field | Description |
|---|
updatedAt | Sort by last modification date (only field supported) |
When no sort is specified, content is sorted by updatedAt:desc by default.
Code Examples
curl -X GET "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content?type=article&status=published&sort=updatedAt:desc" \
-H "Authorization: Bearer YOUR_JWT"