QANATIX
Search

Search REST API

Full reference for the search endpoint.

Search REST API

POST /api/v1/search/{vertical}

Search entities within a vertical using hybrid search.

Request

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": 20,
    "offset": 0,
    "rerank": true,
    "format": "json",
    "filters": {
      "in_stock": true,
      "country": "DE"
    }
  }'

Parameters

FieldTypeRequiredDefaultDescription
querystringyesSearch query, 1-500 characters
limitintegerno20Max results (1-100)
offsetintegerno0Pagination offset
rerankbooleannotrueEnable cross-encoder reranking
formatstringnojsonResponse format: json, compact, yaml
filtersobjectno{}Filters on vertical_data fields (supports _min, _max, _gt, _lt suffixes)

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,
        "country": "DE"
      },
      "description_llm": "...",
      "source_type": "file_upload",
      "updated_at": "2026-03-05T14:30:00Z"
    }
  ],
  "pagination": {
    "offset": 0,
    "limit": 20,
    "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,
    "timings": {
      "classify_ms": 0.1,
      "embed_ms": 18.2,
      "search_ms": 12.4,
      "hydrate_ms": 8.1
    }
  }
}

Response fields

FieldDescription
results[].scoreRelevance score (0-1, DBSF normalized). Identifier matches = 1.0.
results[].vertical_dataYour structured data
metadata.search_modeStrategy used: hybrid, identifier, degraded, or error
metadata.query_typeClassification: identifier, keyword, or semantic
metadata.processing_time_msTotal server-side time
metadata.rerankedWhether cross-encoder reranking was applied
metadata.cache_hitWhether response was served from cache
pagination.has_moreWhether more results exist beyond offset + limit

GET /api/v1/search/{vertical}

Same as POST, with query parameters:

curl "https://api.qanatix.com/api/v1/search/manufacturing?q=M8+bolt&limit=5" \
  -H "Authorization: Bearer sk_live_abc123..."
ParameterMaps toDefault
qquery (required, 1-500 chars)
limitlimit (1-100)20
offsetoffset0

Filters, rerank, and format are not supported via GET — use POST for those.

Error responses

StatusMeaning
400Invalid query or parameters
401Missing or invalid API key
404Vertical not found
429Rate limit exceeded
500Internal error

On this page