Search
Searching content
Content can be searched for by invoking the /@search endpoint on any context:
GET /@search HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"image_field": "",
"image_scales": {},
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"image_field": "",
"image_scales": {},
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"image_field": "",
"image_scales": {},
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"exclude_from_nav": false,
"expires": null,
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"exclude_from_nav": false,
"markdown": "# Users\n\n",
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"image_field": "",
"image_scales": {},
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
},
{
"@id": "http://localhost:8080/",
"@type": "Site",
"title": "Welcome to Nick!",
"UID": "92a80817-f5b7-400d-8f58-b08126f0f09b",
"path": "/",
"Description": "Congratulations! You have successfully installed Nick.",
"Title": "Welcome to Nick!",
"Subject": null,
"is_folderish": true,
"markdown": "# Welcome to Nick!\n\nThis is the demo site of [Nick](https://nickcms.org) and is build with the [Volto](https://voltocms.com) frontend.\n\n## Demo\n\nYou can use this site to test the latest version of Nick. You can login with *username* **admin** and *password* **admin**.\n\nThis instance is reset every night so feel free to make any changes!\n\n",
"exclude_from_nav": null,
"Type": "Site",
"getId": "root",
"Creator": "admin",
"id": "root",
"image_field": "",
"image_scales": {},
"portal_type": "Site",
"review_state": "published",
"modified": "2022-04-02T20:00:00.000Z",
"Date": "2022-04-02T20:00:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:00:00.000Z",
"effective": "2022-04-02T20:00:00.000Z",
"getObjSize": 1806,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:00:00.000Z",
"EffectiveDate": "2022-04-02T20:00:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:00:00.000Z"
}
],
"items_total": 6
}
Searching text
When you specify the SearchableText parameter you can search for specific content:
GET /@search?SearchableText=news* HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
SearchableText: 'news*',
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"image_field": "",
"image_scales": {},
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
}
],
"items_total": 1
}
Sorting on title
You can also sort the search results on title:
GET /@search?sort_on=sortable_title HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
sort_on: 'sortable_title',
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
},
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"recurrence": null,
"start": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"markdown": "# Users\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
},
{
"@id": "http://localhost:8080/",
"@type": "Site",
"title": "Welcome to Nick!",
"UID": "92a80817-f5b7-400d-8f58-b08126f0f09b",
"path": "/",
"Description": "Congratulations! You have successfully installed Nick.",
"Title": "Welcome to Nick!",
"Subject": null,
"is_folderish": true,
"markdown": "# Welcome to Nick!\n\nThis is the demo site of [Nick](https://nickcms.org) and is build with the [Volto](https://voltocms.com) frontend.\n\n## Demo\n\nYou can use this site to test the latest version of Nick. You can login with *username* **admin** and *password* **admin**.\n\nThis instance is reset every night so feel free to make any changes!\n\n",
"exclude_from_nav": null,
"Type": "Site",
"getId": "root",
"Creator": "admin",
"id": "root",
"portal_type": "Site",
"review_state": "published",
"modified": "2022-04-02T20:00:00.000Z",
"Date": "2022-04-02T20:00:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:00:00.000Z",
"effective": "2022-04-02T20:00:00.000Z",
"getObjSize": 1806,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:00:00.000Z",
"EffectiveDate": "2022-04-02T20:00:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:00:00.000Z"
}
],
"items_total": 6
}
Sorting on date
You can also sort the search results on date:
GET /@search?sort_on=effective HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
sort_on: 'effective',
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/",
"@type": "Site",
"title": "Welcome to Nick!",
"UID": "92a80817-f5b7-400d-8f58-b08126f0f09b",
"path": "/",
"Description": "Congratulations! You have successfully installed Nick.",
"Title": "Welcome to Nick!",
"Subject": null,
"is_folderish": true,
"markdown": "# Welcome to Nick!\n\nThis is the demo site of [Nick](https://nickcms.org) and is build with the [Volto](https://voltocms.com) frontend.\n\n## Demo\n\nYou can use this site to test the latest version of Nick. You can login with *username* **admin** and *password* **admin**.\n\nThis instance is reset every night so feel free to make any changes!\n\n",
"exclude_from_nav": null,
"Type": "Site",
"getId": "root",
"Creator": "admin",
"id": "root",
"portal_type": "Site",
"review_state": "published",
"modified": "2022-04-02T20:00:00.000Z",
"Date": "2022-04-02T20:00:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:00:00.000Z",
"effective": "2022-04-02T20:00:00.000Z",
"getObjSize": 1806,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:00:00.000Z",
"EffectiveDate": "2022-04-02T20:00:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:00:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"markdown": "# Users\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
},
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
}
],
"items_total": 6
}
Sorting on unknown
When you sort on an unknown column it will be ignored:
GET /@search?sort_on=unknown HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
sort_on: 'unknown',
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"markdown": "# Users\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
},
{
"@id": "http://localhost:8080/",
"@type": "Site",
"title": "Welcome to Nick!",
"UID": "92a80817-f5b7-400d-8f58-b08126f0f09b",
"path": "/",
"Description": "Congratulations! You have successfully installed Nick.",
"Title": "Welcome to Nick!",
"Subject": null,
"is_folderish": true,
"markdown": "# Welcome to Nick!\n\nThis is the demo site of [Nick](https://nickcms.org) and is build with the [Volto](https://voltocms.com) frontend.\n\n## Demo\n\nYou can use this site to test the latest version of Nick. You can login with *username* **admin** and *password* **admin**.\n\nThis instance is reset every night so feel free to make any changes!\n\n",
"exclude_from_nav": null,
"Type": "Site",
"getId": "root",
"Creator": "admin",
"id": "root",
"portal_type": "Site",
"review_state": "published",
"modified": "2022-04-02T20:00:00.000Z",
"Date": "2022-04-02T20:00:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:00:00.000Z",
"effective": "2022-04-02T20:00:00.000Z",
"getObjSize": 1806,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:00:00.000Z",
"EffectiveDate": "2022-04-02T20:00:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:00:00.000Z"
}
],
"items_total": 6
}
Sorting reverse
You can also sort the search results reverse:
GET /@search?sort_on=sortable_title&sort_order=descending HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
sort_on: 'sortable_title',
sort_order: 'descending',
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/",
"@type": "Site",
"title": "Welcome to Nick!",
"UID": "92a80817-f5b7-400d-8f58-b08126f0f09b",
"path": "/",
"Description": "Congratulations! You have successfully installed Nick.",
"Title": "Welcome to Nick!",
"Subject": null,
"is_folderish": true,
"markdown": "# Welcome to Nick!\n\nThis is the demo site of [Nick](https://nickcms.org) and is build with the [Volto](https://voltocms.com) frontend.\n\n## Demo\n\nYou can use this site to test the latest version of Nick. You can login with *username* **admin** and *password* **admin**.\n\nThis instance is reset every night so feel free to make any changes!\n\n",
"exclude_from_nav": null,
"Type": "Site",
"getId": "root",
"Creator": "admin",
"id": "root",
"portal_type": "Site",
"review_state": "published",
"modified": "2022-04-02T20:00:00.000Z",
"Date": "2022-04-02T20:00:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:00:00.000Z",
"effective": "2022-04-02T20:00:00.000Z",
"getObjSize": 1806,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:00:00.000Z",
"EffectiveDate": "2022-04-02T20:00:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:00:00.000Z"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"exclude_from_nav": false,
"markdown": "# Users\n\n",
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"end": null,
"recurrence": null,
"start": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
},
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
}
],
"items_total": 6
}
Sorting depth
You can specify the depth used to search:
GET /@search?path.depth=1 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
'path.depth': 1,
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"markdown": "# Users\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
}
],
"items_total": 3
}
Sorting using batching
You can specify the batch size when searching:
GET /@search?b_size=2 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
b_size: 2,
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"end": null,
"start": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
}
],
"items_total": 2
}
Sorting using batch offset
You can specify the batch offset of the search:
GET /@search?b_size=3&b_start=2 HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
b_size: 3,
b_start: 2,
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"getId": "event-2",
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"markdown": "# Users\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"created": "2022-04-02T20:24:00.000Z",
"end": null,
"start": null,
"recurrence": null,
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
}
],
"items_total": 3
}
Sorting on unknown
It will ignore unknown parameters:
GET /@search?unknown HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
unknown: 'unknown',
},
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"recurrence": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"end": null,
"start": null,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"recurrence": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"end": null,
"start": null,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"id": "event-2",
"image_field": "",
"image_scales": {},
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"is_folderish": true,
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"title": "Event 2"
},
{
"@id": "http://localhost:8080/users",
"@type": "Folder",
"title": "Users",
"UID": "80994493-74ca-4b94-9a7c-145a33a6dd80",
"path": "/users",
"Description": null,
"Title": "Users",
"Subject": null,
"is_folderish": true,
"markdown": "# Users\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "users",
"Creator": "admin",
"id": "users",
"recurrence": null,
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:24:00.000Z",
"Date": "2022-04-02T20:24:00.000Z",
"expires": null,
"created": "2022-04-02T20:24:00.000Z",
"effective": "2022-04-02T20:24:00.000Z",
"getObjSize": 191,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"end": null,
"start": null,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:24:00.000Z",
"EffectiveDate": "2022-04-02T20:24:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:24:00.000Z"
},
{
"@id": "http://localhost:8080/",
"@type": "Site",
"title": "Welcome to Nick!",
"UID": "92a80817-f5b7-400d-8f58-b08126f0f09b",
"path": "/",
"Description": "Congratulations! You have successfully installed Nick.",
"Title": "Welcome to Nick!",
"Subject": null,
"is_folderish": true,
"markdown": "# Welcome to Nick!\n\nThis is the demo site of [Nick](https://nickcms.org) and is build with the [Volto](https://voltocms.com) frontend.\n\n## Demo\n\nYou can use this site to test the latest version of Nick. You can login with *username* **admin** and *password* **admin**.\n\nThis instance is reset every night so feel free to make any changes!\n\n",
"exclude_from_nav": null,
"Type": "Site",
"getId": "root",
"Creator": "admin",
"id": "root",
"recurrence": null,
"portal_type": "Site",
"review_state": "published",
"modified": "2022-04-02T20:00:00.000Z",
"Date": "2022-04-02T20:00:00.000Z",
"expires": null,
"created": "2022-04-02T20:00:00.000Z",
"effective": "2022-04-02T20:00:00.000Z",
"getObjSize": 1806,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"end": null,
"start": null,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:00:00.000Z",
"EffectiveDate": "2022-04-02T20:00:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:00:00.000Z"
}
],
"items_total": 6
}
Sorting querystring search
You can also search using a POST call and specify a querystring:
POST /@querystring-search HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
{
"query": [
{
"i": "SearchableText",
"o": "string.contains",
"v": "Event"
}
]
}
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.querystringSearch({
token: login.data.token,
});
This will return all content object:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/events",
"@type": "Folder",
"title": "Events",
"UID": "1a2123ba-14e8-4910-8e6b-c04a40d72a41",
"path": "/events",
"Description": null,
"Title": "Events",
"Subject": null,
"is_folderish": true,
"markdown": "# Events\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "events",
"Creator": "admin",
"id": "events",
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:30:00.000Z",
"Date": "2022-04-02T20:30:00.000Z",
"expires": null,
"created": "2022-04-02T20:30:00.000Z",
"effective": "2022-04-02T20:30:00.000Z",
"getObjSize": 248,
"image_field": "",
"image_scales": {},
"end": null,
"start": null,
"recurrence": null,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:30:00.000Z",
"EffectiveDate": "2022-04-02T20:30:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:30:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-1",
"@type": "Event",
"title": "Event 1",
"UID": "405ca717-0c68-43a0-88ac-629a82658675",
"path": "/events/event-1",
"Description": null,
"Title": "Event 1",
"Subject": ["event"],
"is_folderish": true,
"markdown": "# Event 1\n\nThis is the first event.\n\n",
"exclude_from_nav": false,
"Type": "Event",
"getId": "event-1",
"Creator": "admin",
"id": "event-1",
"end": "2026-04-08T12:49:11.379Z",
"start": "2026-04-01T12:49:09.565Z",
"portal_type": "Event",
"review_state": "published",
"modified": "2022-04-02T20:10:00.000Z",
"Date": "2022-04-02T20:10:00.000Z",
"expires": null,
"created": "2022-04-02T20:10:00.000Z",
"effective": "2022-04-02T20:10:00.000Z",
"getObjSize": 1090,
"image_field": "",
"image_scales": {},
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:10:00.000Z",
"EffectiveDate": "2022-04-02T20:10:00.000Z",
"recurrence": "DTSTART:20260401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20260408T124900Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:10:00.000Z"
},
{
"@id": "http://localhost:8080/events/event-2",
"@type": "Event",
"CreationDate": "2023-04-02T20:10:00.000Z",
"Creator": "admin",
"Date": "2023-04-02T20:10:00.000Z",
"Description": null,
"EffectiveDate": "2023-04-02T20:10:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2023-04-02T20:10:00.000Z",
"Subject": ["event"],
"Title": "Event 2",
"Type": "Event",
"UID": "455ca717-0c68-43a0-88ac-629a82658675",
"created": "2023-04-02T20:10:00.000Z",
"effective": "2023-04-02T20:10:00.000Z",
"end": "2025-04-08T12:49:11.379Z",
"exclude_from_nav": false,
"expires": null,
"getId": "event-2",
"getObjSize": 631,
"hasPreviewImage": false,
"id": "event-2",
"image_field": "",
"image_scales": {},
"is_folderish": true,
"markdown": "# Event 2\n\nThis is the first event.\n\n",
"listCreators": ["admin"],
"mime_type": null,
"modified": "2023-04-02T20:10:00.000Z",
"path": "/events/event-2",
"portal_type": "Event",
"review_state": "published",
"start": "2025-04-01T12:49:09.565Z",
"recurrence": "DTSTART:20250401T124909Z\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20250408T124900Z",
"title": "Event 2"
}
],
"items_total": 3
}
Searching using an embedding model
When AI is enabled in the config you can search based on embeddings. When you provide a SearchableText parameter it will be converted to an embedding and compared with all other embeddings in the site. You can set the similarity cut off in the config by specifying minSimilarity in the embed model settings. Results are automatically ordered by similarity but can be ordered differently when specified.
GET /@search?SearchableText=news* HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImZ1bGxuYW1lIjoiQWRtaW4iLCJpYXQiOjE2NDkzMTI0NDl9.RS1Ny_r0v7vIylFfK6q0JVJrkiDuTOh9iG9IL8xbzAk
Or use the client directly:
import { Client } from '@robgietema/nick';
const cli = Client.initialize({ apiPath: 'http://localhost:8080' });
const login = await cli.login({
data: { login: 'admin', password: 'admin' },
});
const { data } = await cli.search({
token: login.data.token,
query: {
SearchableText: 'news*',
},
});
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@id": "http://localhost:8080/@search",
"items": [
{
"@id": "http://localhost:8080/news",
"@type": "Folder",
"title": "News",
"UID": "32215c67-86de-462a-8cc0-eabcd2b39c26",
"path": "/news",
"Description": "News Items",
"Title": "News",
"Subject": null,
"is_folderish": true,
"markdown": "# News\n\n",
"exclude_from_nav": false,
"Type": "Folder",
"getId": "news",
"Creator": "admin",
"id": "news",
"image_field": "",
"image_scales": {},
"portal_type": "Folder",
"review_state": "published",
"modified": "2022-04-02T20:22:00.000Z",
"Date": "2022-04-02T20:22:00.000Z",
"expires": null,
"created": "2022-04-02T20:22:00.000Z",
"effective": "2022-04-02T20:22:00.000Z",
"getObjSize": 217,
"hasPreviewImage": false,
"listCreators": ["admin"],
"mime_type": null,
"CreationDate": "2022-04-02T20:22:00.000Z",
"EffectiveDate": "2022-04-02T20:22:00.000Z",
"ExpirationDate": null,
"ModificationDate": "2022-04-02T20:22:00.000Z",
"similarity": 0.8177864416434183
}
],
"items_total": 1
}