Skip to main content

Assets start in your system

Ingest requests carry your asset_id, so search results can join back to your database, CRM, support ticket, observability platform, or call log without ID translation.

Asset classes define search scope

asset_class is how you draw the boundary around what gets searched together. For most products, it maps to the entity your customers think in terms of:
  • one end customer
  • one workspace
  • one project
  • one support queue
If you’re building customer-facing search, scope by asset_class or explicit asset_ids. Global search (scope: "all") searches across your indexed assets.

Indexing surface types

types controls what gets indexed and searched. Most voice AI use cases want all three:

Indexing is async

Ingest returns a task_id immediately. The actual indexing happens in the background. Poll until ready or failed.
Task states: pendingindexingready (or failed).

Search returns timestamped matches

Results include start_ms and end_ms: millisecond offsets into the source recording.
threshold controls how strict the match has to be. Default is 0.5. Raise it to get fewer, higher-confidence results.

Your data stays yours

The API returns: asset_id, asset_class, types, scores, and timestamps. Provider IDs, index keys, and pipeline details stay behind the API.

TypeScript SDK

Inputs, outputs, and error types for the TypeScript client.