Basic Search
Search for concepts by text:Parameters
Filter by Vocabulary
Restrict search to specific vocabularies:Filter by Domain
Search within specific domains:Filter by Concept Class
Search for specific concept classes:Standard Concepts Only
Filter to standard concepts:Search with Synonyms
Include concept synonyms in search:Combined Filters
Autocomplete
Get suggestions as the user types:autocomplete() returns the list of suggestions directly - it reads suggestions out of the
response envelope for you, so there is no ["suggestions"] key left to index. Each compact
suggestion contains the matched suggestion, its type, and the number of matching concepts.
Autocomplete returns grouped typeahead values, not concept records. Use basic
search when you need concept IDs and other concept metadata.
Pagination
Manual Pagination
Auto-Pagination Iterator
Iterate through all results automatically:Advanced Search
Use advanced search with additional filtering options and facets:Advanced Search Parameters
Relationship Filters
Apply relationship-based filtering:Semantic Search
Search for concepts using natural language with neural embeddings. Semantic search understands meaning, not just keywords.Semantic Search Parameters
Semantic Search Iterator
Iterate through all semantic search results with automatic pagination:Async Semantic Search
Bulk Lexical Search
Search for multiple queries in a single API call (up to 50 queries). Much more efficient than individual calls when you have many terms to look up.Bulk Search Parameters
With Shared Defaults
Bulk Semantic Search
Search for multiple natural-language queries using neural embeddings in a single call (up to 25 queries).Bulk Semantic Parameters
Async Bulk Search
Find Similar Concepts
Find concepts similar to a reference concept or query. Provide exactly one of:concept_id, concept_name, or query.
Similar Concepts Parameters
include_invalid=True is supported only with algorithm="lexical". The
embedding index contains valid concepts only, so combining it with semantic
or hybrid returns a 400 naming the combination rather than silently
ignoring the filter.Pagination
similar() returns a pagination key alongside similar_concepts and
search_metadata:
total_candidates counts the concepts that cleared similarity_threshold
inside a bounded candidate pool — not the concepts evaluated. It and the
pagination totals may therefore be lower bounds —
similar["search_metadata"]["totals_are_lower_bound"] says when. Reachable depth
is bounded at roughly 500 / page_size pages — the pool is a constant 500
candidates, so a score never changes with page_size; a page past the end returns an
empty list with has_next: False, not an error.
Result Fields
Algorithm Comparison
hybrid fuses both signals as 0.7 x semantic + 0.3 x lexical. Every candidate
is scored by that rule, with a signal neither retrieval established counting as
0. So a concept sharing no words with the query keeps only 0.7 x its semantic
score, and one the embedding search did not return keeps only 0.3 x its lexical
score — capping it at 0.3. Hybrid scores sit on a different scale from both
semantic and lexical scores, and the same similarity_threshold is stricter
than in either. Lower the threshold for hybrid, use semantic for conceptual
matches that share no vocabulary, or use lexical for exact name and code
matches: hybrid is not a superset of the other two. If
the embedding
service is unavailable it serves its lexical half and reports
algorithm_used: "lexical" with degraded_from: "hybrid" rather than failing.