Skip to main content
Search for concepts by text:
results = client.search.basic("diabetes mellitus", page_size=20)
for concept in results["concepts"]:
    print(f"{concept['concept_id']}: {concept['concept_name']}")

Filter by Vocabulary

Restrict search to specific vocabularies:
results = client.search.basic(
    "heart attack",
    vocabulary_ids=["SNOMED", "ICD10CM"],
)

Filter by Domain

Search within specific domains:
results = client.search.basic(
    "aspirin",
    domain_ids=["Drug"],
    page_size=10,
)

Combined Filters

results = client.search.basic(
    "myocardial infarction",
    vocabulary_ids=["SNOMED"],
    domain_ids=["Condition"],
    page_size=20,
)

Autocomplete

Get suggestions as the user types:
result = client.search.autocomplete("diab", max_suggestions=10)
for suggestion in result["suggestions"]:
    print(suggestion["suggestion"])

Pagination

Manual Pagination

# Get first page
results = client.search.basic("diabetes", page=1, page_size=50)

# Access pagination metadata
pagination = results["meta"]["pagination"]
print(f"Total: {pagination['total_items']}")
print(f"Pages: {pagination['total_pages']}")
print(f"Has next: {pagination['has_next']}")

# Get next page
if pagination["has_next"]:
    results = client.search.basic("diabetes", page=2, page_size=50)

Auto-Pagination Iterator

Iterate through all results automatically:
count = 0
for concept in client.search.basic_iter("diabetes", page_size=100):
    print(concept["concept_name"])
    count += 1
    if count >= 500:  # Limit for demo
        break