Search

Semantic search finds information by meaning, not just keyword matching. Search across all your data using natural language queries.

Natural-Language Search

POST /v1/search/natural

Send a plain-language query and get back the most relevant matches by meaning. Scope is the caller's organization (taken from the access token); pass project_id to narrow to one project.

Request Body

{
  "query": "authentication flow for mobile users",
  "limit": 10,
  "project_id": "..."
}

Response

{
  "data": {
    "query": "authentication flow for mobile users",
    "chunkCount": 1,
    "chunks": [
      {
        "document_id": "...",
        "document_title": "Mobile Auth Spec",
        "content": "...",
        "similarity": 0.87
      }
    ]
  }
}

Vector & Hybrid Search

Callers that already have a query embedding can search directly: POST /v1/search/vector (similarity search) and POST /v1/search/hybrid (similarity search with additional reranking for improved relevance). Both accept an embedding string, an optional threshold (minimum 0.55), limit, and project_id.

How It Works

Search matches by meaning rather than exact keywords. Document content and entities are automatically indexed for semantic search.

When you search, your query is compared against indexed content and ranked by relevance. Results with higher similarity scores are more semantically relevant to your query. Matches are returned as document chunks.

Searchable Content

The search index covers the following content:

TypeWhat is Indexed
DocumentsText content, chunked for precision
EntitiesName, description, and field values

Search Tips

  • Use natural language queries: describe what you are looking for in plain English
  • Longer, more specific queries tend to produce better results
  • Filter by project_id to scope results to a specific project
  • Results with similarity scores above 0.7 are strongly relevant