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: Each compact suggestion contains the matchedsuggestion, its type, and the number of
matching concepts.
domains still works as a deprecated alias for domain_ids, as does
max_suggestions for page_size. 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 with basic_all()
Fetch all results automatically and return as a tibble:The
basic_all() method returns a tibble, making it easy to integrate with
tidyverse workflows.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
Auto-Pagination with semantic_all()
Fetch all semantic search results automatically and return as a tibble:The
semantic_all() method returns a tibble, making it easy to integrate with
tidyverse workflows.Bulk Lexical Search
Search for multiple queries in a single API call (up to 50 queries):Bulk Search Parameters
Bulk Semantic Search
Search for multiple natural-language queries using neural embeddings (up to 25 queries):Bulk Semantic Parameters
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 element 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 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.