Skip to main content
GET
/
app
/
v1
/
organizations
/
{organizationId}
/
projects
/
{projectId}
/
content
List Content
curl --request GET \
  --url https://api.example.com/app/v1/organizations/{organizationId}/projects/{projectId}/content
{
  "data": [
    {}
  ],
  "pagination": {}
}
The Content API provides flexible search with both simple query parameters and advanced filtering through request bodies.

Path Parameters

organizationId
string
required
Organization ID
projectId
string
required
Project ID

Query Parameters

limit
number
default:"20"
Items per page
lastKey
string
Cursor for pagination (from previous response)
typeId
string
Filter by ContentType ID
tags
string
Filter by tags (comma-separated)
status
string
Filter by status: draft, modified, published, unpublished, or deleted
Full-text search term
query
string
Natural language query for semantic search
isTemplate
string
Filter by template status (true or false)
folderId
string
Filter by folder ID (use null to get unfiled content)

Response

data
Content[]
Array of content objects
pagination
object
Pagination information

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

OperatorDescriptionExample
eqEquals{"status": {"eq": "published"}}
neqNot equals{"status": {"neq": "deleted"}}
inIn array{"typeId": {"in": ["article", "blog"]}}
allContains all values (tags){"tags": {"all": ["featured", "news"]}}
anyContains any values (tags){"tags": {"any": ["tech", "ai"]}}
gteGreater than or equal (date){"updatedAt": {"gte": "2024-01-01"}}
lteLess than or equal (date){"updatedAt": {"lte": "2024-12-31"}}
gtGreater than (date){"updatedAt": {"gt": "2024-01-01"}}
ltLess than (date){"updatedAt": {"lt": "2024-12-31"}}
likePattern matching (name){"name": {"like": "intro"}}

Available Sort Fields

FieldDescription
updatedAtSort 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"