Skip to main content

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.

GET /search

Query Parameters

ParameterTypeRequiredDescription
qstringYesSearch query
space_iduuidYesScope to specific space
modestringNoSearch strategy: auto (default), keyword, or semantic
entity_typesstringNoComma-separated entity types such as products,issues,meetings,users,documents,data_questions
limitintegerNoMax 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:

ModeDescription
auto(default) Uses keyword search and automatically adds semantic results when AI embeddings are configured
keywordFull-text keyword search only (Elasticsearch with PostgreSQL fallback)
semanticVector-similarity search using AI embeddings — requires an embedding backend to be configured
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:

FieldWeightDescription
Name/TitleHighPrimary identifier
DescriptionMediumSummary text
TagsMediumCategory labels
DocumentationLowLong-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: custmercustomer, anlyticsanalytics.

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 local backend (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"
}

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