Skip to content

List

Retrieves a paginated list of objects for the specified content type. Each object includes a content type's fields and are defined by the default list layout, unless a different layout is specified using layout.

The endpoint supports pagination, filtering, and sorting, allowing clients to retrieve specific subsets of objects and control the order in which results are returned.

Because the structure of each object depends on the selected list layout and content type, the fields within the data array may vary between requests.


Endpoint

POST /{contentType}

Replace {contentType} with route of the content type you want to retrieve.

Example:

POST /articles

Note: The available content types depend on the API configuration.


Request Body

The endpoint accepts a JSON object containing pagination settings, an optional layout identifier, optional filters, and optional sorting instructions.

Example Request

{
    "page": 1,
    "pageSize": 10,
    "layout": 1,
    "filters": [],
    "ordering": {
        "field": "id",
        "order": "asc"
    }
}

Request Parameters

Field Type Required Description
page integer Yes The page number to retrieve. Page numbering starts at 1.
pageSize integer Yes The maximum number of objects to return per page.
layout integer No The ID of the list layout that determines which fields are included in each returned object. If omitted, the default list layout is used.
filters array No A list of filter criteria used to restrict the results. Pass an empty array ([]) when no filtering is required.
ordering object No Defines the field and direction used to sort the results.

Filtering

filters

The optional filters array allows you to narrow the result set by applying one or more filter criteria.

Each filter contains the following properties:

Field Type Required Description
field string Yes The name of the field within the object to filter, such as name, category, or created_at.
filter string Yes The filter operator to apply. Supported operators are listed below.
value varies Yes The value or values used by the filter. The expected type depends on the field and operator.

The field property refers to the name of a field in the object, not the filter operator or its data type. For example, use created_at to filter objects by their creation timestamp.

The filter property uses PrimeVue filter operators.

Supported Filter Operators

Operator Description
CONTAINS Matches values containing the specified text.
STARTS_WITH Matches values that start with the specified text.
ENDS_WITH Matches values that end with the specified text.
EQUALS Matches values equal to the specified value.
IN Matches values contained in a specified collection of values.
BETWEEN Matches values within a specified range.
NOT_EQUALS Matches values that are not equal to the specified value.
LESS_THAN Matches values less than the specified value.
LESS_THAN_OR_EQUAL_TO Matches values less than or equal to the specified value.
GREATER_THAN Matches values greater than the specified value.
GREATER_THAN_OR_EQUAL_TO Matches values greater than or equal to the specified value.
DATE_IS Matches dates equal to the specified date.
DATE_IS_NOT Matches dates that are not equal to the specified date.
DATE_BEFORE Matches dates before the specified date.
DATE_AFTER Matches dates after the specified date.

Example

The following example filters objects by an exact category value and by names containing the text de.

{
    "filters": [
        {
            "field": "category",
            "filter": "EQUALS",
            "value": 1
        },
        {
            "field": "name",
            "filter": "CONTAINS",
            "value": "de"
        }
    ]
}

Ordering

The optional ordering object specifies how the returned objects should be sorted.

Field Type Required Description
ordering.field string No The name of the field used to sort the results, such as id.
ordering.order string No The sort direction: asc for ascending or desc for descending order.

Example: Sort by ID in ascending order

{
    "ordering": {
        "field": "id",
        "order": "asc"
    }
}

Example: Sort by ID in descending order

{
    "ordering": {
        "field": "id",
        "order": "desc"
    }
}

Note: If sorting is omitted, the default ordering is determined by the API implementation.


Response

A successful request returns a 200 OK status code and a JSON response containing the requested objects and pagination metadata.

Status: 200 OK

Content-Type: application/json

Example Response

{
    "data": [],
    "pagination": {
        "page": 1,
        "pageSize": 10,
        "total": 10,
        "totalPages": 1
    }
}

The data array contains the objects returned for the requested page. The pagination object provides information about the current page and the overall result set.

When matching objects are available, the data array contains their details. If no objects match the request, the array may be empty.


Response Fields

Top-Level Fields

Field Type Description
data array The list of objects returned for the current page. The fields on each object depend on the content type and selected list layout.
pagination object Metadata describing the current page and the total number of matching objects.

Pagination Fields

Field Type Description
pagination.page integer The page number returned by the request.
pagination.pageSize integer The requested page size.
pagination.total integer The total number of matching objects across all pages.
pagination.totalPages integer The total number of pages available for the result set at the specified page size.

Understanding Pagination

The pagination metadata can be used to determine whether additional requests are required to retrieve the complete result set.

For example:

{
    "page": 1,
    "pageSize": 10,
    "total": 25,
    "totalPages": 3
}

This indicates that there are 25 matching objects in total, with up to 10 objects per page. The complete result set can therefore be retrieved across three pages.

To retrieve the next page, submit another request with page set to 2, keeping the other request parameters consistent where appropriate.


Data Object

Each object returned in the data array contains a set of standard system fields. Additional fields may be included depending on the requested content type and selected list layout.

Standard Fields

Field Type Description
id integer The unique identifier of the object.
created_at string The date and time when the object was created.
updated_at string The date and time when the object was last updated.
deleted_at string or null The date and time when the object was deleted, or null if the object has not been deleted.
author_id integer The identifier of the author who created the object.
group_id integer The identifier of the group to which the object belongs.

Timestamps are represented as ISO 8601 strings. For example, 2026-10-12T09:00:00Z represents a timestamp in UTC.

Additional Fields

Depending on the selected list layout and content type, an object may contain additional fields beyond the standard system fields.

For example, an article object might include fields such as a title or body, while another content type may expose a different set of properties.

The exact fields, types, and values of these additional properties are determined by the relevant content type and layout configuration.

Example Object

The following example shows an object containing only the standard system fields, with no additional layout-specific fields.

{
    "id": 1,
    "created_at": "2026-10-12T09:00:00Z",
    "updated_at": "2026-10-12T09:00:00Z",
    "deleted_at": null,
    "author_id": 1,
    "group_id": 1
}

Complete Example

The following example retrieves the first page of objects, requests up to 10 objects, uses layout 1, filters by category and name, and sorts the results by ID in ascending order.

Request

curl -X POST "https://api.example.com/{contentType}" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -d '{
        "page": 1,
        "pageSize": 10,
        "layout": 1,
        "filters": [
            {
                "field": "category",
                "filter": "EQUALS",
                "value": 1
            },
            {
                "field": "name",
                "filter": "CONTAINS",
                "value": "de"
            }
        ],
        "ordering": {
            "field": "id",
            "order": "asc"
        }
    }'

Replace the following placeholders before sending the request:

  • {contentType} — The content type to retrieve, such as articles, if supported by the API.
  • YOUR_TOKEN — A valid bearer authentication token.

Response

{
    "data": [
        {
            "id": 1,
            "name": "Desk",
            "category": 3,
            "created_at": "2026-10-12T09:00:00Z",
            "updated_at": "2026-10-12T09:00:00Z",
            "deleted_at": null,
            "author_id": 1,
            "group_id": 1
        }
    ],
    "pagination": {
        "page": 1,
        "pageSize": 10,
        "total": 1,
        "totalPages": 1
    }
}

Notes

  • Content type determines the endpoint. Replace {contentType} with the specific content type you want to query.
  • Layout determines the returned fields. The default list layout is used unless a different layout is specified.
  • Pagination applies to the result set. Use page and pageSize to retrieve results in manageable batches.
  • Filtering is optional. Use the documented filter operators to narrow results, or pass an empty filters array when no additional filtering is required.
  • Filter fields reference object properties. For example, use created_at to filter by creation timestamp.
  • Sorting is optional. Use ordering to request a specific field and sort direction.
  • Response objects may vary. Do not assume that all content types or layouts return identical object structures.
  • Timestamps use ISO 8601 formatting. Date and time values are returned as strings, while deleted_at may be null.