API integration layer for linked biological objects. __Source:__ https://github.com/biolink/biolink-api/
Full LLM thinking from the 4-phase benchmark pipeline.
{
"service_type": "rest_api",
"base_url": "https://api.monarchinitiative.org",
"auth_method": "none",
"auth_config": {},
"endpoints": [
{
"path": "/v3/api/association",
"method": "GET",
"purpose": "Retrieve all associations for a given entity, or between two entities",
"params": {
"category": {"type": "array", "required": false},
"subject": {"type": "array", "required": false},
"subject_category": {"type": "array", "required": false},
"subject_namespace": {"type": "array", "required": false},
"subject_taxon": {"type": "array", "required": false},
"predicate": {"type": "array", "required": false},
"object": {"type": "array", "required": false},
"object_category": {"type": "array", "required": false},
"object_namespace": {"type": "array", "required": false},
"object_taxon": {"type": "array", "required": false},
"entity": {"type": "array", "required": false},
"primary_knowledge_source": {"type": "array", "required": false},
"direct": {"type": "boolean", "required": false},
"facet_fields": {"type": "array", "required": false},
"facet_queries": {"type": "array", "required": false},
"filter_queries": {"type": "array", "required": false},
"compact": {"type": "boolean", "required": false},
"query": {"type": "string", "required": false},
"format": {"type": "string", "required": false},
"limit": {"type": "integer", "required": false},
"offset": {"type": "integer", "required": false}
},
"response_format": "json",
"is_primary": true
},
{
"path": "/v3/api/case-phenotype-matrix/{disease_id}",
"method": "GET",
"purpose": "Returns a matrix of cases (patients) and their phenotypes for a given disease",
"params": {
"disease_id": {"type": "string", "required": true},
"direct": {"type": "boolean", "required": false}
},
"response_format": "json",
"is_primary": false
}
],
"pricing_model": {
"type": "free_tier",
"details": {},
"free_tier": null,
"paid_tiers": []
},
"rate_limits": {
"rpm": null,
"tpm": null,
"daily": null,
"concurrent": null
},
"capabilities": [
"knowledge_graph",
"gene_disease_phenotype_associations",
"case_phenotype_matrix",
"cross_species_integration"
],
"agent_readiness": {
"supports_x402": false,
"supports_streaming": false,
"has_sandbox": false,
"sdks": [],
"agent_auth_methods": ["public"]
}
}```json
{
"tests": [
{
"name": "root_connectivity",
"endpoint": "/",
"method": "GET",
"headers": {},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns API root metadata confirming service is reachable",
"metrics": ["latency", "status_code"],
"validation": {"field": null, "type": "any"}
},
{
"name": "version_info",
"endpoint": "/v3/api/version",
"method": "GET",
"headers": {},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns the deployed monarch-kg release version metadata",
"metrics": ["latency", "status_code"],
"validation": {"field": null, "type": "object"}
},
{
"name": "search_phenotype_happy",
"endpoint": "/v3/api/search",
"method": "GET",
"headers": {},
"payload": null,
"query": {"q": "Fanconi anemia", "limit": 10},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns SearchResults with items list for a known disease label",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "items", "type": "array", "min_length": 1}
},
{
"name": "autocomplete_happy",
"endpoint": "/v3/api/autocomplete",
"method": "GET",
"headers": {},
"payload": null,
"query": {"q": "fanc"},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns SearchResults with autocomplete suggestions",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "items", "type": "array", "min_length": 1}
},
{
"name": "entity_by_id_happy",
"endpoint": "/v3/api/entity/MONDO:0019391",
"method": "GET",
"headers": {},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns Node entity details with association_counts for the given MONDO id",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "id", "type": "string"}
},
{
"name": "association_happy",
"endpoint": "/v3/api/association",
"method": "GET",
"headers": {},
"payload": null,
"query": {
"subject": "HGNC:4851",
"category": "biolink:CausalGeneToDiseaseAssociation",
"limit": 5
},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns AssociationResults with items for gene->disease associations",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "items", "type": "array", "min_length": 0}
},
{
"name": "association_compact_format",
"endpoint": "/v3/api/association",
"method": "GET",
"headers": {},
"payload": null,
"query": {
"entity": "MONDO:0007078",
"compact": true,
"limit": 5
},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns CompactAssociationResults with compact items",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "items", "type": "array", "min_length": 0}
},
{
"name": "case_phenotype_matrix_happy",
"endpoint": "/v3/api/case-phenotype-matrix/MONDO:0007078",
"method": "GET",
"headers": {},
"payload": null,
"query": {"direct": true, "limit": 50},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns CasePhenotypeMatrixResponse with disease_id, total_cases, total_phenotypes",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "disease_id", "type": "string"}
},
{
"name": "histopheno_happy",
"endpoint": "/v3/api/histopheno/MONDO:0019391",
"method": "GET",
"headers": {},
"payload": null,
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns HistoPheno with items array of body-system bins",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "items", "type": "array", "min_length": 1}
},
{
"name": "mappings_happy",
"endpoint": "/v3/api/mappings",
"method": "GET",
"headers": {},
"payload": null,
"query": {"entity_id": "MONDO:0007078", "limit": 5},
"expected_status": 200,
"intent": "happy_path",
"expected_behavior": "Returns MappingResults with SSSOM mapping items",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "items", "type": "array", "min_length": 0}
},
{
"name": "semsim_compare_post_happy",
"endpoint": "/v3/api/semsim/compare",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"payload": {
"subjects": ["MP:0010771", "MP:019/20 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| root_connectivity | GET / | 307 | 24ms |
| version_info | GET /v3/api/version | 200 | 13ms |
| search_phenotype_happy | GET /v3/api/search | 200 | 302ms |
| autocomplete_happy | GET /v3/api/autocomplete | 200 | 311ms |
| entity_by_id_happy | GET /v3/api/entity/MONDO:0019391 | 200 | 123ms |
| association_happy | GET /v3/api/association | 200 | 412ms |
| association_compact_format | GET /v3/api/association | 200 | 40ms |
| case_phenotype_matrix_happy | GET /v3/api/case-phenotype-matrix/MONDO:0007078 | 200 | 1366ms |
| histopheno_happy | GET /v3/api/histopheno/MONDO:0019391 | 200 | 18ms |
| mappings_happy | GET /v3/api/mappings | 200 | 49ms |
{"model": "deepseek", "data": {"overall": 72, "dimensions": {"token_efficiency": 7.0, "first_try_success": 8.0, "response_parseability": 9.0, "error_clarity": 3.0, "doc_quality": 6.0, "auth_simplicity": 10.0, "latency": 7.0, "consistency": 7.0}, "pricing_normalized": {"cost_per_1k_requests": 0.0, "cost_per_1m_input_tokens": null, "cost_per_1m_output_tokens": null, "free_tier_requests": null, "estimated_monthly_cost_light": 0.0, "estimated_monthly_cost_heavy": 0.0}, "issues": [{"severity": "high", "detail": "Validation is silently ignored: invalid enum category, limit exceeding max, and negative offset all returned 200 with default results instead of 422. An agent cannot tell its filters were dropped, leading to wrong conclusions from unfiltered data.", "endpoint": "/v3/api/association"}, {"severity": "medium", "detail": "Root endpoint returns 307 redirect instead of 200; agents may mishandle redirects and there is no explicit API discovery at /", "endpoint": "/"}, {"severity": "medium", "detail": "No auth and no rate-limit headers visible; heavy usage may be throttled without documented limits", "endpoint": "/v3/api/*"}, {"severity": "low", "detail": "Some happy-path endpoints return empty/null previews (e.g. /ground), and case-phenotype-matrix latency exceeds 1.3s", "endpoint": "/v3/api/case-phenotype-matrix/{disease_id}"}], "recommendations": ["Return 4xx (400/422) with structured error bodies when query params are invalid (bad enum, limit > max, negative offset) instead of silently falling back to defaults", "Add a 200 JSON discovery payload at / instead of a 307 redirect", "Document rate limits and include RateLimit headers on responses", "Publish a complete OpenAPI spec with per-parameter constraints, enums, and example requests/responses", "Provide structured error schema (error, detail, field-level errors) consistently across all endpoints", "Optimize case-phenotype-matrix latency below 500ms where possible"]}}Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/biolink-api">
<img src="https://prowl.world/badge/biolink-api.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard