Getting Started
First Query
Run your first search query against QANATIX.
Your first query
Once you have an API key and have ingested some data, you can search.
REST API
curl -X POST https://api.qanatix.com/api/v1/search/manufacturing \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"query": "stainless M8 bolt ISO 4017", "limit": 5}'Python
import httpx
async def search():
async with httpx.AsyncClient() as client:
resp = await client.post(
"https://api.qanatix.com/api/v1/search/manufacturing",
headers={"Authorization": "Bearer sk_live_abc123..."},
json={"query": "stainless M8 bolt ISO 4017", "limit": 5},
)
data = resp.json()
for r in data["results"]:
print(f"{r['score']:.2f} {r['name']}")TypeScript
const resp = await fetch(
"https://api.qanatix.com/api/v1/search/manufacturing",
{
method: "POST",
headers: {
Authorization: "Bearer sk_live_abc123...",
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "stainless M8 bolt ISO 4017", limit: 5 }),
},
);
const data = await resp.json();
data.results.forEach((r) => console.log(`${r.score} ${r.name}`));MCP (Claude)
If you've connected QANATIX to Claude, just ask:
Find ISO 4017 stainless M8 bolts from EU suppliers
Claude calls qanatix_search() automatically.
Understanding the response
{
"results": [
{
"entity_id": "550e8400-...",
"name": "Stainless Steel Hex Head Bolt M8x40 ISO 4017",
"score": 0.87,
"vertical": "manufacturing",
"entity_type": "fastener",
"vertical_data": {
"part_number": "SS-M8-40-A2",
"material": "Stainless Steel A2",
"standard": "ISO 4017",
"price_eur": 0.12,
"in_stock": true
},
"description_llm": "...",
"source_type": "file_upload",
"updated_at": "2026-03-05T14:30:00Z"
}
],
"pagination": {
"offset": 0,
"limit": 5,
"has_more": false
},
"metadata": {
"search_mode": "hybrid",
"query_type": "keyword",
"processing_time_ms": 42,
"total_estimate": 1,
"zero_result_fallback_used": false,
"reranked": true,
"cache_hit": false
}
}| Field | Description |
|---|---|
score | Relevance score (0-1, DBSF normalized). Identifier matches = 1.0. |
metadata.search_mode | Strategy used: hybrid, identifier, or degraded |
vertical_data | Your structured data, exactly as ingested |
metadata.processing_time_ms | Server-side query time in milliseconds |
Response formats
Add format to get different output shapes:
{"query": "M8 bolt", "format": "compact"}| Format | Description | Best for |
|---|---|---|
json | Complete JSON (default) | Applications |
compact | Markdown table, ~120 tokens/result | LLM context windows, MCP |
yaml | Abbreviated YAML, ~200 tokens/result | Readability |
See Response Formats for examples.