Quickstart
Zero to first search query in 5 minutes.
Quickstart
Get your first search result from QANATIX in under 5 minutes.
1. Get an API key
curl -X POST https://api.qanatix.com/api/v1/auth/keys \
-H "X-Tenant-Id: your-tenant-id" \
-H "Content-Type: application/json" \
-d '{"name": "my-first-key", "scopes": ["search", "ingest", "entities"]}'Response:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "my-first-key",
"key": "sk_live_abc123...",
"scopes": ["search", "ingest", "entities"],
"message": "Store this key securely — it cannot be retrieved again."
}Save the key value. You'll use it in all subsequent requests.
2. Register a schema
Define a schema for your data. This tells QANATIX what fields to expect and validate.
curl -X POST https://api.qanatix.com/api/v1/schemas \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"vertical": "parts_catalog",
"entity_type": "fastener",
"json_schema": {
"type": "object",
"properties": {
"part_number": { "type": "string" },
"material": { "type": "string" },
"price_eur": { "type": "number" },
"in_stock": { "type": "boolean" }
},
"required": ["part_number"]
}
}'3. Ingest data
Push a batch of records:
curl -X POST https://api.qanatix.com/api/v1/ingest/parts_catalog/fastener/batch \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '[
{
"name": "Stainless Steel Bolt M8x40 A2",
"source_id": "ERP-001",
"part_number": "SS-M8-40-A2",
"material": "Stainless Steel A2",
"price_eur": 0.12,
"in_stock": true
},
{
"name": "Hex Nut M8 Grade 8 Zinc",
"source_id": "ERP-002",
"part_number": "HN-M8-G8-ZN",
"material": "Carbon Steel Zinc Plated",
"price_eur": 0.04,
"in_stock": true
}
]'Or upload a CSV file:
curl -X POST https://api.qanatix.com/api/v1/ingest/parts_catalog/fastener/upload \
-H "Authorization: Bearer sk_live_abc123..." \
-F "file=@parts.csv"QANATIX validates, normalizes, generates embeddings, and indexes automatically.
4. Search
curl -X POST https://api.qanatix.com/api/v1/search/parts_catalog \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"query": "stainless M8 bolt", "limit": 5}'Response:
{
"results": [
{
"entity_id": "...",
"name": "Stainless Steel Bolt M8x40 A2",
"score": 0.87,
"vertical": "parts_catalog",
"entity_type": "fastener",
"vertical_data": {
"part_number": "SS-M8-40-A2",
"material": "Stainless Steel A2",
"price_eur": 0.12,
"in_stock": true
}
}
],
"metadata": {
"search_mode": "hybrid",
"query_type": "keyword",
"processing_time_ms": 42,
"cache_hit": false
},
"pagination": {
"offset": 0,
"limit": 5,
"has_more": false
}
}5. Connect to Claude
Add QANATIX as an MCP tool in Claude Code:
claude mcp add --transport http qanatix https://api.qanatix.com/mcp/Or in Claude Desktop, add to your config:
{
"mcpServers": {
"qanatix": {
"url": "https://api.qanatix.com/mcp/",
"headers": {
"Authorization": "Bearer sk_live_abc123..."
}
}
}
}Then just ask Claude:
Find stainless M8 bolts in stock
Claude calls qanatix_search() automatically and returns results from your data.
Next steps
- Authentication — scopes, rotation, revocation
- Data Ingestion — all 10+ data sources
- Search — hybrid search, filters, response formats
- Integrations — Claude, GPT, LangChain, Cursor