Overview
This lightweight endpoint quickly determines whether a concept has any relationships to other concepts. This is useful for UI components, validation logic, or filtering concepts that are isolated vs. connected in the terminology network.
Path Parameters
The unique OMOP concept ID to check for relationships
Query Parameters
Comma-separated list of relationship types to check (e.g., “Maps to”, “Is a”)
Comma-separated list of vocabulary IDs to limit relationship check
Include reverse relationships (concepts that relate to this concept)
Include relationships to invalid/deprecated concepts
Specific vocabulary release version (e.g., “2024.1”)
Response
Indicates whether the request was successful
Response data containing relationship check results The concept ID that was checked
Whether this concept has any relationships matching the specified criteria
Summary information about relationships (when has_relations is true) Total number of relationships found
Number of outbound relationships (from this concept)
Number of inbound relationships (to this concept)
Array of relationship types found (up to 10 most common)
Array of vocabularies that have related concepts (up to 10)
Whether concept has mappings to standard concepts
Details about what was checked included_relationship_types
Relationship types included in the check
Vocabularies included in the check
included_reverse_relations
Whether reverse relationships were checked
included_invalid_relations
Whether invalid relationships were checked
Response metadata and API information Unique request identifier for debugging
ISO 8601 timestamp of the response
Vocabulary release version used
cURL
Python
JavaScript
cURL (filtered check)
Python (batch validation)
curl -X GET "https://api.omophub.com/v1/concepts/201826/relations/any" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"success" : true ,
"data" : {
"concept_id" : 201826 ,
"has_relations" : true ,
"relation_summary" : {
"total_count" : 15 ,
"outbound_count" : 8 ,
"inbound_count" : 7 ,
"relationship_types" : [ "Maps to" , "Is a" , "Has finding site" , "May be a" ],
"connected_vocabularies" : [ "SNOMED" , "ICD10CM" , "ICD9CM" ],
"has_standard_mappings" : true
},
"checks_performed" : {
"included_relationship_types" : [ "all" ],
"included_vocabularies" : [ "all" ],
"included_reverse_relations" : true ,
"included_invalid_relations" : false
}
},
"meta" : {
"request_id" : "req_check_relations_123" ,
"timestamp" : "2024-12-22T10:00:00Z" ,
"vocab_release" : "2025.2"
}
}
Usage Examples
Simple Relationship Check
Check if a concept has any relationships:
curl -X GET "https://api.omophub.com/v1/concepts/201826/relations/any" \
-H "Authorization: Bearer YOUR_API_KEY"
Check for Standard Mappings
Check if concept has “Maps to” relationships:
curl -G "https://api.omophub.com/v1/concepts/201826/relations/any" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "relationship_types=Maps to"
Check Cross-Vocabulary Relations
Check relationships to specific vocabularies:
curl -X GET "https://api.omophub.com/v1/concepts/201826/relations/any?vocabulary_ids=ICD10CM,ICD9CM" \
-H "Authorization: Bearer YOUR_API_KEY"
Batch Checking in Applications
Use in loops or batch processing to filter connected concepts:
const conceptIds = [ 201826 , 4182210 , 313217 ];
const connectedConcepts = [];
for ( const id of conceptIds ) {
const response = await fetch ( `/v1/concepts/ ${ id } /relations/any` );
const result = await response . json ();
const data = result . data ;
if ( data . has_relations && data . relation_summary . has_standard_mappings ) {
connectedConcepts . push ({
concept_id: id ,
relation_count: data . relation_summary . total_count
});
}
}
Important Notes
Performance optimized - Much faster than fetching full relationship data
Filtering support - All the same filters as the full relations endpoint
UI integration - Perfect for showing relationship icons or badges
Batch processing - Ideal for filtering large concept lists
Standard mappings - The has_standard_mappings
flag is useful for data quality checks