curl "https://api.omophub.com/v1/search/suggest?query=diab&page_size=5&vocabulary_ids=SNOMED" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
response = requests.get(
"https://api.omophub.com/v1/search/suggest",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"query": "diab", "page_size": 5, "vocabulary_ids": "SNOMED"},
)
data = response.json()
const response = await fetch(
'https://api.omophub.com/v1/search/suggest?query=diab&page_size=5&vocabulary_ids=SNOMED',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const data = await response.json();
{
"success": true,
"data": {
"query": "diab",
"suggestions": [
{
"suggestion": "Type 2 diabetes mellitus",
"concept_id": 201826,
"concept_code": "44054006",
"vocabulary_id": "SNOMED",
"domain_id": "Condition",
"concept_class_id": "Clinical Finding",
"standard_concept": "S"
}
]
},
"meta": {
"request_id": "req_suggest_123",
"timestamp": "2026-09-05T12:00:00.000Z",
"vocab_release": "2026.2",
"search": {
"query": "diab",
"total_results": 1,
"filters_applied": {
"context": false
}
}
}
}
Search Suggest
curl "https://api.omophub.com/v1/search/suggest?query=diab&page_size=5&vocabulary_ids=SNOMED" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
response = requests.get(
"https://api.omophub.com/v1/search/suggest",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"query": "diab", "page_size": 5, "vocabulary_ids": "SNOMED"},
)
data = response.json()
const response = await fetch(
'https://api.omophub.com/v1/search/suggest?query=diab&page_size=5&vocabulary_ids=SNOMED',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const data = await response.json();
{
"success": true,
"data": {
"query": "diab",
"suggestions": [
{
"suggestion": "Type 2 diabetes mellitus",
"concept_id": 201826,
"concept_code": "44054006",
"vocabulary_id": "SNOMED",
"domain_id": "Condition",
"concept_class_id": "Clinical Finding",
"standard_concept": "S"
}
]
},
"meta": {
"request_id": "req_suggest_123",
"timestamp": "2026-09-05T12:00:00.000Z",
"vocab_release": "2026.2",
"search": {
"query": "diab",
"total_results": 1,
"filters_applied": {
"context": false
}
}
}
}
Overview
Returns valid OMOP concepts using exact published synonyms, concept-name prefixes and substrings, and source-code prefixes. The endpoint does not calculate or return a relevance or confidence score.Ordering
Clinical utility is the outer ordering tier under the API’s default ranking policy: questionnaire answer-list entries, survey values and LOINC structural parts rank last by default, and Standard concepts outrank non-standard ones. Within one utility tier, exact primary names and exact source codes lead, followed by exact published synonyms, name prefixes, code prefixes, and name substrings. Core clinical domains are preferred next, followed by shorter completion text, vocabulary authority, alphabetical name, andconcept_id.
Before that policy existed, this endpoint ordered by
standard_concept, LENGTH(concept_name), concept_name alone — effectively “the
shortest standard name starting with what you typed” — so diabetes returned the
LOINC answer-list entry named Diabetes (8 characters) ahead of
201820 Diabetes mellitus (17).
Synonym evidence is deliberately exact-only on this typeahead endpoint. Use
/v1/search/concepts for token, phrase,
and fuzzy synonym retrieval.Query Parameters
string
required
Partial concept name, exact synonym, or source-code prefix. Must contain
between 2 and 100 characters.
integer
default:"10"
Number of suggestions to return. Minimum 1, maximum 100.
string
Comma-separated vocabulary IDs, such as
SNOMED,ICD10CM.string
Comma-separated domain IDs, such as
Condition,Drug.string
Comma-separated concept classes. Explicit requests for
Answer, Survey,
Value, or another normally demoted class disable the default non-clinical
demotion for that filtered result set.boolean
default:"false"
When
true, adds a context object containing the suggestion’s vocabulary,
domain, and concept class.string
Vocabulary release to query. Defaults to the current release.
Response
object
Request and vocabulary-release metadata.
boolean
Whether the request succeeded.
object
curl "https://api.omophub.com/v1/search/suggest?query=diab&page_size=5&vocabulary_ids=SNOMED" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
response = requests.get(
"https://api.omophub.com/v1/search/suggest",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"query": "diab", "page_size": 5, "vocabulary_ids": "SNOMED"},
)
data = response.json()
const response = await fetch(
'https://api.omophub.com/v1/search/suggest?query=diab&page_size=5&vocabulary_ids=SNOMED',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const data = await response.json();
{
"success": true,
"data": {
"query": "diab",
"suggestions": [
{
"suggestion": "Type 2 diabetes mellitus",
"concept_id": 201826,
"concept_code": "44054006",
"vocabulary_id": "SNOMED",
"domain_id": "Condition",
"concept_class_id": "Clinical Finding",
"standard_concept": "S"
}
]
},
"meta": {
"request_id": "req_suggest_123",
"timestamp": "2026-09-05T12:00:00.000Z",
"vocab_release": "2026.2",
"search": {
"query": "diab",
"total_results": 1,
"filters_applied": {
"context": false
}
}
}
}
Errors
400 Bad Requestwhenqueryis missing or invalid, or a supported parameter is malformed.401 Unauthorizedwhen authentication is missing or invalid.403 Forbiddenwhen a requested vocabulary is restricted.429 Too Many Requestswhen the rate limit is exceeded.500 Internal Server Erroror503 Service Unavailablewhen suggestion retrieval fails.
Was this page helpful?