Search
OxiCloud provides authenticated file and folder search with simple query parameters, advanced JSON criteria, pagination, recursive traversal, and in-memory result caching.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/search/ | Simple search using query parameters |
POST | /api/search/advanced | Advanced search with a JSON body |
GET | /api/search/suggest | Lightweight autocomplete suggestions |
DELETE | /api/search/cache | Clear the search results cache |
All search endpoints require authentication.
Simple Search Parameters
| Parameter | Description |
|---|---|
query | Text to search in file and folder names |
type | Comma-separated file extensions |
created_after / created_before | Filter by creation time |
modified_after / modified_before | Filter by modification time |
min_size / max_size | Filter by file size in bytes |
folder_id | Restrict search scope to one folder |
recursive | Search subfolders, defaults to true |
limit | Maximum results, defaults to 100 |
offset | Pagination offset |
sort_by | relevance, name, name_desc, date, date_desc, size, or size_desc |
Example
bash
curl -H "Authorization: Bearer $TOKEN" \
"https://oxicloud.example.com/api/search/?query=report&type=pdf,docx&recursive=true&limit=20"Advanced Search
json
{
"name_contains": "report",
"file_types": ["pdf", "docx"],
"min_size": 1024,
"folder_id": "folder-uuid",
"recursive": true,
"limit": 50,
"offset": 0
}Suggestions
Use /api/search/suggest?query=rep&limit=10 for quick autocomplete-style results. Suggestions can also be scoped to a folder with folder_id.
Result Caching
Search results are cached in memory using the search criteria and user ID as the cache key.
- Cache TTL: 5 minutes
- Max entries: 1000
- Manual invalidation:
DELETE /api/search/cache
Feature Flag
Search can be disabled with OXICLOUD_ENABLE_SEARCH=false.