Search API
Query across all platform entities with full-text, keyword, or semantic search. Search covers catalog records, operational entities, comments, document pages, and Data Question threads when those features are enabled and indexed.
Global Search
GET /search
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Search query |
space_id | uuid | Yes | Scope to specific space |
mode | string | No | Search strategy: auto (default), keyword, or semantic |
entity_types | string | No | Comma-separated entity types such as products,issues,meetings,users,documents,data_questions |
limit | integer | No | Max results per type (default: 10) |
Example Request
curl -X GET "https://api.qarion.com/search?q=customer&space_id=SPACE_UUID&mode=auto" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
Results are grouped by entity type:
{
"products": [
{
"id": "...",
"name": "Customer Events",
"description": "Raw event stream...",
"product_type": "table",
"score": 0.95
}
],
"issues": [
{
"id": "...",
"title": "Customer ID nulls",
"status": "open",
"score": 0.82
}
],
"meetings": [],
"users": [
{
"id": "...",
"name": "Customer Data Team",
"email": "customer-team@example.com",
"score": 0.75
}
]
}
Search Modes
The mode parameter controls the search strategy used:
| Mode | Description |
|---|---|
auto | (default) Uses keyword search and automatically adds semantic results when AI embeddings are configured |
keyword | Full-text keyword search only (Elasticsearch with PostgreSQL fallback) |
semantic | Vector-similarity search using AI embeddings — requires an embedding backend to be configured |
Keyword Search
curl -X GET "https://api.qarion.com/search?q=revenue+metrics&space_id=...&mode=keyword" \
-H "Authorization: Bearer YOUR_API_KEY"
Keyword search uses Elasticsearch fuzzy matching with field-weighted scoring:
| Field | Weight | Description |
|---|---|---|
| Name/Title | High | Primary identifier |
| Description | Medium | Summary text |
| Tags | Medium | Category labels |
| Documentation | Low | Long-form content |
Published document pages are indexed after publish or tree metadata updates and removed after deletion. Data Question threads are reindexed after thread or message changes so search results stay aligned with the latest discussion.
Fuzzy matching handles typos: custmer → customer, anlytics → analytics.
Semantic Search
curl -X GET "https://api.qarion.com/search?q=tables+about+customer+spending&space_id=...&mode=semantic" \
-H "Authorization: Bearer YOUR_API_KEY"
Semantic search converts the query into a vector embedding and finds products whose metadata vectors are closest in meaning. This is useful for intent-based queries where exact keywords may not appear in the data.
Semantic search requires an embedding backend to be configured. Qarion defaults to the
localbackend (sentence-transformers) which works out of the box.
Highlighting
Keyword search results include highlighted matches (when available):
{
"name": "<em>Customer</em> Events",
"description": "Raw event stream for <em>customer</em> tracking"
}
Entity-Specific Search
Products Only
GET /search?q=metrics&space_id=...&entity_types=products
Multiple Types
GET /search?q=order&space_id=...&entity_types=products,issues
Search Performance
- Results are cached for 60 seconds
- Maximum 50 results per entity type
- For large result sets, use pagination via the catalog API
Related Endpoints
- Catalog API — For filtered product listing with pagination
- Issues API — For filtered issue queries
- Documents API — For document-page lifecycle and indexing behavior
- Data Questions API — For searchable Q&A threads