Skip to main content
Hybrid semantic + keyword search across all indexed content in a project. Returns raw text chunks with source context and relevance scores. Use this when you need results to reason over; use Ask for a synthesized answer.

When to Use

  • Find content matching a natural language query (e.g., “fire-rated doors”, “concrete specification”)
  • Retrieve raw text chunks to reason over in the agent’s context
  • Search across blocks, features, and files simultaneously
  • The user asks to “find” or “search for” specific content
Use Search when you need the raw results to do your own reasoning. Use Ask when the user wants a direct answer to a question.

Parameters

ParameterTypeRequiredDescription
project_idstringyesProject ID to search within
querystringyesNatural language search query (max 2000 chars)
limitnumbernoMaximum results to return (default: 20, max: 50)
source_typesstring[]noFilter by source type: "block", "feature", "file". Omit to search all.

Response

{
  "total": 5,
  "results": [
    {
      "id": "block:blk_a101_notes",
      "content": "All fire-rated doors shall comply with NFPA 80 and be listed by UL or equivalent...",
      "context": {
        "sheet_number": "A-101",
        "block_type": "General Notes",
        "drawing_name": "Arch Set Rev B"
      },
      "score": 0.92,
      "source_type": "block",
      "source_id": "blk_a101_notes"
    },
    {
      "id": "feature:ftr_d104",
      "content": "Door 104, hollow metal, 45-min fire rating, hardware set HW-3",
      "context": {
        "sheet_number": "A-101",
        "block_type": "Plan",
        "feature_type": "door",
        "label": "104"
      },
      "score": 0.87,
      "source_type": "feature",
      "source_id": "ftr_d104"
    }
  ]
}
FieldTypeDescription
totalnumberNumber of results returned
results[].idstringComposite ID in source_type:source_id format
results[].contentstringMatched text chunk
results[].contextobjectSource context (sheet number, block type, drawing name, etc.)
results[].scorenumberRelevance score (higher is more relevant)
results[].source_typestring"block", "feature", or "file"
results[].source_idstringEntity ID for follow-up queries

Examples

Search for fire-rated doors

{
  "project_id": "prj_abc",
  "query": "fire-rated doors"
}

Search only in files

{
  "project_id": "prj_abc",
  "query": "concrete mix design specification",
  "source_types": ["file"],
  "limit": 10
}
  • Ask - Get a synthesized answer instead of raw results
  • Query - Structured queries when you know the exact entity and filters