Appearance
Typesense Search API
Overview
The Typesense Search API provides high-performance full-text search across multiple collections within a workspace. It enables filtering by file type, tags, date, orientation, and permissions using Typesense search engine.
Authentication
All requests require an Authorization token in the headers:
Authorization: Bearer YOUR_ACCESS_TOKENEndpoint
POST https://app.collage.inc/typesense/searchRequest Structure
json
{
"request": {
"q": "search query",
"collections": ["digital_assets", "digital_assets_categories", "dam_collections"],
"sort_by": "modified_at:desc"
},
"filterQuery": {
"digital_assets": "(visibility:=0)",
"digital_assets_categories": "(visibility:=0)",
"dam_collections": "(visibility:=0)"
},
"commonSearchParams": {
"query_by": "search_name",
"per_page": 5,
"page": 1
},
"workspace_id": "123456"
}Collections
digital_assets- Assetsdigital_assets_categories- Foldersdam_collections- Collages
Search Parameters
Basic Search
json
{
"request": {
"q": "test",
"collections": ["digital_assets", "digital_assets_categories", "dam_collections"],
"sort_by": "modified_at:desc"
},
"commonSearchParams": {
"query_by": "search_name",
"per_page": 10,
"page": 1
},
"workspace_id": "123456"
}Wildcard Search
Use q: "*" to retrieve all results:
json
{
"request": {
"q": "*",
"collections": ["digital_assets"],
"sort_by": "modified_at:desc"
}
}Filter Examples
Filter by File Type
json
{
"filterQuery": {
"digital_assets": "(file_type:=jpg || file_type:=png)"
}
}Filter by Tags
json
{
"filterQuery": {
"digital_assets": "(tags:=[book] && tags:=[car])"
}
}Filter by Orientation
json
{
"filterQuery": {
"digital_assets": "(orientation:=horizontal)"
}
}Filter by Date
json
{
"filterQuery": {
"digital_assets": "(modified_at:>=1739800483)",
"digital_assets_categories": "(modified_at:>=1739800483)",
"dam_collections": "(modified_at:>=1739800483)"
}
}Filter by Visibility
Public items:
json
{
"filterQuery": {
"digital_assets": "(visibility:=0)",
"digital_assets_categories": "(visibility:=0)",
"dam_collections": "(visibility:=0)"
}
}Private items:
json
{
"filterQuery": {
"digital_assets": "(visibility:!=0)",
"digital_assets_categories": "(visibility:!=0)",
"dam_collections": "(visibility:!=0)"
}
}Sorting
Sort results using sort_by parameter:
modified_at:desc- Most recently modifiedmodified_at:asc- Oldest firstcreated_at:desc- Most recently createdcreated_at:asc- Oldest first
Pagination
Control pagination with:
per_page- Items per page (default: 10)page- Page number (default: 1)
Response Structure
json
{
"results": [
{
"collection": "digital_assets",
"hits": [
{
"document": {
"id": "123",
"display_file_name": "example.jpg",
"file_type": "jpg",
"modified_at": 1739800483
}
}
],
"found": 100,
"page": 1,
"request_params": {
"q": "test",
"collection": "digital_assets"
}
}
]
}cURL Example
bash
curl --location 'https://app.collage.inc/typesense/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--data '{
"request": {
"q": "*",
"collections": ["digital_assets", "digital_assets_categories", "dam_collections"],
"sort_by": "modified_at:desc"
},
"filterQuery": {
"digital_assets": "(visibility:=0)",
"digital_assets_categories": "(visibility:=0)",
"dam_collections": "(visibility:=0)"
},
"commonSearchParams": {
"query_by": "search_name",
"per_page": 5,
"page": 1
},
"workspace_id": "123456"
}'Related Documentation
- API Services - Overview of API services
- Search Page - Frontend search implementation