Skip to main content
GET
/
v1
/
organizations
/
{organizationId}
/
projects
/
{projectId}
/
content
List Content
curl --request GET \
  --url https://api.example.com/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

page
number
default:"1"
Page number
limit
number
default:"20"
Items per page
type
string
Filter by ContentType ID
tag
string
Filter by tag ID (can be repeated for multiple tags)
status
string
Filter by status: draft, modified, published, unpublished, or deleted
Full-text search term
sort
string
Sort field and direction (e.g., name:asc, updatedAt:desc)
locale
string
Filter by locale
from
string
Created date range start (ISO format)
to
string
Created date range end (ISO format)

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": "[email protected]",
        "locale": "en-US"
      },
      "createdAt": "2024-03-21T10:00:00Z",
      "updatedAt": "2024-03-21T14:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "pages": 3
  }
}

Advanced Filtering (POST Method)

For complex queries, use the POST method with a JSON request body:
POST /v1/organizations/{organizationId}/projects/{projectId}/content

Request Body

{
  "filter": {
    "type": {
      "eq": "article"
    },
    "tags": {
      "all": ["technology", "ai"]
    },
    "status": {
      "eq": "published"
    },
    "metadata.author": {
      "eq": "[email protected]"
    },
    "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"}}
neNot equals{"status": {"ne": "archived"}}
inIn array{"type": {"in": ["article", "blog"]}}
ninNot in array{"tags": {"nin": ["draft", "private"]}}
allContains all values{"tags": {"all": ["featured", "news"]}}
anyContains any values{"tags": {"any": ["tech", "ai"]}}
gtGreater than{"version": {"gt": 1}}
gteGreater than or equal{"createdAt": {"gte": "2024-01-01"}}
ltLess than{"version": {"lt": 3}}
lteLess than or equal{"updatedAt": {"lte": "2024-12-31"}}
likePattern matching{"name": {"like": "intro%"}}
existsField exists{"publishedAt": {"exists": true}}

Available Sort Fields

FieldDescription
nameSort by resource name
createdAtSort by creation date
updatedAtSort by last modification date (default)
typeSort by content type
When no sort is specified, content is sorted by updatedAt:desc by default.

Code Examples

curl -X GET "https://api.metabind.ai/v1/organizations/org123/projects/proj456/content?type=article&status=published&sort=updatedAt:desc" \
  -H "Authorization: Bearer YOUR_API_KEY"