QANATIX
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
  }
}
FieldDescription
scoreRelevance score (0-1, DBSF normalized). Identifier matches = 1.0.
metadata.search_modeStrategy used: hybrid, identifier, or degraded
vertical_dataYour structured data, exactly as ingested
metadata.processing_time_msServer-side query time in milliseconds

Response formats

Add format to get different output shapes:

{"query": "M8 bolt", "format": "compact"}
FormatDescriptionBest for
jsonComplete JSON (default)Applications
compactMarkdown table, ~120 tokens/resultLLM context windows, MCP
yamlAbbreviated YAML, ~200 tokens/resultReadability

See Response Formats for examples.

On this page