Skip to main content
curl -X GET "https://api.omophub.com/v1/concept-classes?include_stats=true" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": true,
  "data": {
    "concept_classes": [
      {
        "concept_class_id": "Clinical Finding",
        "concept_class_name": "Clinical Finding",
        "concept_class_concept_id": 441840,
        "concept_count": 425891,
        "vocabulary_coverage": ["SNOMED", "Read"]
      },
      {
        "concept_class_id": "Ingredient",
        "concept_class_name": "Ingredient",
        "concept_class_concept_id": 441828,
        "concept_count": 45678,
        "vocabulary_coverage": ["RxNorm", "SNOMED"]
      },
      {
        "concept_class_id": "Procedure",
        "concept_class_name": "Procedure",
        "concept_class_concept_id": 441838,
        "concept_count": 198765,
        "vocabulary_coverage": ["SNOMED", "HCPCS", "CPT4"]
      }
    ]
  },
  "meta": {
    "request_id": "req_abc123",
    "vocab_release": "2025.1",
    "timestamp": "2025-01-05T10:00:00Z"
  }
}
This endpoint returns concept classes, which provide categorization of medical concepts within their domains. Concept classes distinguish between different types of concepts like “Clinical Finding” vs “Disorder” within conditions, or “Ingredient” vs “Clinical Drug” within drugs.

Query Parameters

vocabulary_ids
string
Filter concept classes to those used by specific vocabularies. Comma-separated list.
Example: SNOMED,RxNorm,ICD10CM
include_stats
boolean
default:"false"
Include concept counts and vocabulary coverage for each concept class.

Response

success
boolean
Indicates if the request was successful.
data
object
Response data container.
meta
object
Response metadata.
curl -X GET "https://api.omophub.com/v1/concept-classes?include_stats=true" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": true,
  "data": {
    "concept_classes": [
      {
        "concept_class_id": "Clinical Finding",
        "concept_class_name": "Clinical Finding",
        "concept_class_concept_id": 441840,
        "concept_count": 425891,
        "vocabulary_coverage": ["SNOMED", "Read"]
      },
      {
        "concept_class_id": "Ingredient",
        "concept_class_name": "Ingredient",
        "concept_class_concept_id": 441828,
        "concept_count": 45678,
        "vocabulary_coverage": ["RxNorm", "SNOMED"]
      },
      {
        "concept_class_id": "Procedure",
        "concept_class_name": "Procedure",
        "concept_class_concept_id": 441838,
        "concept_count": 198765,
        "vocabulary_coverage": ["SNOMED", "HCPCS", "CPT4"]
      }
    ]
  },
  "meta": {
    "request_id": "req_abc123",
    "vocab_release": "2025.1",
    "timestamp": "2025-01-05T10:00:00Z"
  }
}

Usage Examples

All Concept Classes

Get all concept classes without statistics:
GET /v1/concept-classes

With Statistics

Get concept classes with concept counts and vocabulary coverage:
GET /v1/concept-classes?include_stats=true

Filter by Vocabulary

Get concept classes used by specific vocabularies:
GET /v1/concept-classes?vocabulary_ids=SNOMED,RxNorm&include_stats=true

Notes

  • Concept classes provide finer categorization than domains
  • Many concept classes are vocabulary-specific (e.g., “3-char billing code” for ICD codes)
  • When filtering by vocabulary, only concept classes that contain concepts from those vocabularies are returned
  • The vocabulary_coverage field shows which vocabularies contribute concepts to each class