Skip to main content
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 matched suggestion, 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.
Use advanced search with additional filtering options and facets:

Advanced Search Parameters

Relationship Filters

Apply relationship-based filtering:
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.
Search for multiple queries in a single API call (up to 50 queries):

Bulk Search Parameters

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.