Skip to main content
Get up and running with the OMOPHub API in 5 minutes.

Prerequisites

You’ll need:

Step 1: Install the SDK

Step 2: Set Up Authentication

Never hardcode your API key in source code. Use environment variables or a secrets manager in production.

Step 3: Search for Concepts

Search across 11M+ concepts by keyword, then by meaning:
Semantic search uses neural embeddings to match by clinical meaning. Try it when keyword search doesn’t find what you need - it handles synonyms, abbreviations, and natural-language descriptions.

Step 4: Get Concept Details

Look up a specific concept by its OMOP concept_id:

Step 5: Navigate Hierarchies

Walk the ancestor / descendant tree to expand a concept set:

Step 6: Map Between Vocabularies

Translate codes across SNOMED, ICD-10, LOINC, RxNorm, and every other OMOP vocabulary:
For ETL workloads, the batch endpoint client.mappings.map(target_vocabulary="...", source_concepts=[...]) maps up to 100 concepts per request and counts as a single API call against your quota.

Step 7: Resolve a FHIR Code to OMOP

This is the single call no other terminology server offers - send a FHIR Coding (system URI + code), get back the OMOP standard concept, domain, mapping type, and the exact CDM target table for ETL placement:
The Resolver handles URI → OMOP vocabulary lookup, Maps to traversal for non-standard codes, and semantic fallback for display-text-only inputs in a single call. For the full response shape, batch variants, and the CodeableConcept endpoint, see the FHIR Integration guide.

Next Steps

FHIR Integration

The complete FHIR story - Resolver for ETL, Terminology Service for clients, and when to use which.

FHIR Terminology Service

$lookup, $translate, $validate-code, $expand, $subsumes reference.

AI & MCP Server

Connect Claude, Cursor, or VS Code to medical vocabularies via the MCP Server.

Python SDK

Full SDK reference: search, concepts, hierarchy, mappings, FHIR resolver.

Node.js / TypeScript SDK

Typed client with discriminated { data, error } returns and async iterators.

R SDK

R6 client for vocabulary access in R workflows.

API Reference

Complete endpoint documentation with request / response schemas.

Workflows

Real-world workflows: clinical coding, phenotype development, lab normalization, and more.

Common Issues

  • Check that your API key is correct and starts with oh_
  • Ensure the Authorization: Bearer <key> header format is exact
  • Verify the key at dashboard.omophub.com/api-keys
  • Free tier: 2 requests per second, monthly call quota per plan
  • Use batch endpoints (concepts, mappings, semantic search) to reduce call count - each batch counts as one API call
  • Respect the Retry-After response header
  • See Rate Limits for plan-specific limits
  • Try broader search terms or remove filters
  • Use semantic search for natural-language queries (Step 3)
  • Check vocabulary_id spelling - it’s SNOMED, not SNOMED-CT; ICD10CM, not ICD-10-CM
  • Confirm the target vocabulary is currently supported via client.vocabularies.list()