Monitor API health, system status, and service availability
GET /healthGETGET /health/publicPUBLICThe health check endpoint provides real-time information about the API's operational status, service health, performance metrics, and any ongoing issues. Use this endpoint to monitor system health and implement automated health checks in your applications.
Get current health status of all critical services and components.
Monitor response times, throughput, and system performance indicators.
Receive notifications about service degradations and critical issues.
All systems operational
Reduced performance
Service disruption
curl -X GET https://api.markdownconverters.com/health \
-H "X-API-Key: your_api_key_here"Requires API key. Returns detailed service health and performance metrics.
# Public health check (no API key required)
curl -X GET https://api.markdownconverters.com/health/publicNo authentication required. Returns basic status information suitable for load balancers.
{
"status": "healthy",
"timestamp": "2024-01-01T12:00:00Z",
"version": "1.2.3",
"uptime_seconds": 2592000,
"services": {
"api_gateway": {
"status": "healthy",
"response_time_ms": 12,
"last_check": "2024-01-01T12:00:00Z"
},
"conversion_engine": {
"status": "healthy",
"active_workers": 25,
"queue_size": 0,
"avg_processing_time_ms": 2347,
"last_check": "2024-01-01T12:00:00Z"
},
"storage": {
"status": "healthy",
"available_space_gb": 5000,
"read_latency_ms": 8,
"write_latency_ms": 15,
"last_check": "2024-01-01T12:00:00Z"
},
"database": {
"status": "healthy",
"connection_pool_active": 15,
"connection_pool_idle": 5,
"query_latency_ms": 3,
"last_check": "2024-01-01T12:00:00Z"
},
"authentication": {
"status": "healthy",
"response_time_ms": 25,
"last_check": "2024-01-01T12:00:00Z"
}
},
"performance": {
"requests_per_minute": 1234,
"avg_response_time_ms": 234,
"success_rate": 0.998,
"active_connections": 156
},
"regions": {
"us-east-1": {
"status": "healthy",
"load": 0.45,
"latency_ms": 12
},
"us-west-2": {
"status": "healthy",
"load": 0.38,
"latency_ms": 15
},
"eu-west-1": {
"status": "healthy",
"load": 0.52,
"latency_ms": 18
}
},
"maintenance": {
"scheduled": false,
"next_window": "2024-01-15T02:00:00Z"
}
}{
"status": "degraded",
"timestamp": "2024-01-01T12:00:00Z",
"version": "1.2.3",
"uptime_seconds": 2592000,
"services": {
"api_gateway": {
"status": "healthy",
"response_time_ms": 12,
"last_check": "2024-01-01T12:00:00Z"
},
"conversion_engine": {
"status": "degraded",
"active_workers": 8,
"queue_size": 45,
"avg_processing_time_ms": 4567,
"last_check": "2024-01-01T12:00:00Z",
"issues": [
"High queue size detected",
"Processing time above normal threshold"
]
},
"storage": {
"status": "healthy",
"available_space_gb": 5000,
"read_latency_ms": 8,
"write_latency_ms": 15,
"last_check": "2024-01-01T12:00:00Z"
},
"database": {
"status": "healthy",
"connection_pool_active": 15,
"connection_pool_idle": 5,
"query_latency_ms": 3,
"last_check": "2024-01-01T12:00:00Z"
},
"authentication": {
"status": "healthy",
"response_time_ms": 25,
"last_check": "2024-01-01T12:00:00Z"
}
},
"performance": {
"requests_per_minute": 1234,
"avg_response_time_ms": 456,
"success_rate": 0.985,
"active_connections": 156
},
"alerts": [
{
"severity": "warning",
"message": "Conversion queue size above threshold",
"timestamp": "2024-01-01T11:55:00Z"
}
]
}{
"status": "unhealthy",
"timestamp": "2024-01-01T12:00:00Z",
"version": "1.2.3",
"uptime_seconds": 2592000,
"services": {
"api_gateway": {
"status": "healthy",
"response_time_ms": 12,
"last_check": "2024-01-01T12:00:00Z"
},
"conversion_engine": {
"status": "unhealthy",
"active_workers": 0,
"queue_size": 150,
"avg_processing_time_ms": null,
"last_check": "2024-01-01T12:00:00Z",
"error": "All conversion workers are down"
},
"storage": {
"status": "degraded",
"available_space_gb": 50,
"read_latency_ms": 45,
"write_latency_ms": 89,
"last_check": "2024-01-01T12:00:00Z",
"issues": [
"Low available storage space",
"High I/O latency"
]
},
"database": {
"status": "healthy",
"connection_pool_active": 15,
"connection_pool_idle": 5,
"query_latency_ms": 3,
"last_check": "2024-01-01T12:00:00Z"
},
"authentication": {
"status": "unhealthy",
"response_time_ms": null,
"last_check": "2024-01-01T11:58:00Z",
"error": "Service unreachable"
}
},
"performance": {
"requests_per_minute": 234,
"avg_response_time_ms": 2345,
"success_rate": 0.654,
"active_connections": 89
},
"alerts": [
{
"severity": "critical",
"message": "Conversion engine completely down",
"timestamp": "2024-01-01T11:45:00Z"
},
{
"severity": "critical",
"message": "Authentication service unreachable",
"timestamp": "2024-01-01T11:50:00Z"
}
]
}| Field | Type | Description |
|---|---|---|
| status | string | Overall system health (healthy, degraded, unhealthy) |
| timestamp | string | Current server time (ISO 8601) |
| version | string | Current API version |
| uptime_seconds | number | System uptime in seconds |
| Service | Health Fields | Description |
|---|---|---|
| api_gateway | status, response_time_ms | API gateway health and response times |
| conversion_engine | status, active_workers, queue_size | File conversion service health and capacity |
| storage | status, available_space_gb, latency_ms | File storage system health and performance |
| database | status, connection_pool, query_latency | Database health and connection status |
| authentication | status, response_time_ms | Authentication service health |
| Metric | Type | Description |
|---|---|---|
| requests_per_minute | number | Current API request rate |
| avg_response_time_ms | number | Average API response time |
| success_rate | number | Request success rate (0.0-1.0) |
| active_connections | number | Current active API connections |
Configure your load balancer to use the public health endpoint:
Health Check URL: https://api.markdownconverters.com/health/public
Interval: 30 seconds
Timeout: 5 seconds
Healthy threshold: 2 consecutive successes
Unhealthy threshold: 3 consecutive failuresUse the authenticated endpoint for detailed monitoring in your application:
// Monitor specific service health
if (healthResponse.services.conversion_engine.status === 'unhealthy') {
// Disable conversion features temporarily
showMaintenanceMessage();
}
// Check queue size for capacity planning
if (healthResponse.services.conversion_engine.queue_size > 50) {
// Implement request throttling
enableRateLimiting();
}