Health & Monitoring API Endpoints
Overview
Endpoints for system health checks, monitoring, and diagnostics.
Endpoint Summary
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/v1/health |
GET | None | Basic health check |
/v1/health/deep |
GET | Admin | Deep health check |
/v1/filters/leagues |
GET | None | Get leagues filter |
/v1/filters/sports |
GET | None | Get sports filter |
/v1/filters/teams |
GET | None | Get teams filter |
/v1/filters/periods |
GET | None | Get periods filter |
Health Checks
GET /v1/health
Description: Basic health check endpoint. Returns OK if the API is running.
Response:
{
"status": "Healthy",
"timestamp": "2025-11-29T12:00:00Z"
}
GET /v1/health/deep
Description: Deep health check that tests all dependencies.
Authentication: Admin JWT required
Response: DeepHealthResponse
{
"status": "Healthy",
"timestamp": "2025-11-29T12:00:00Z",
"version": "1.0.0",
"environment": "production",
"uptime": "5d 12h 30m",
"checks": {
"database": {
"status": "Healthy",
"responseTime": 12,
"details": "SQL Server connected"
},
"cache": {
"status": "Healthy",
"responseTime": 2,
"details": "Redis connected"
},
"externalApis": {
"status": "Healthy",
"responseTime": 45,
"details": "All external APIs responsive"
},
"storage": {
"status": "Healthy",
"details": "Blob storage accessible"
},
"queue": {
"status": "Healthy",
"details": "Message queue connected"
}
},
"metrics": {
"requestsPerSecond": 125,
"activeConnections": 342,
"memoryUsage": "512MB",
"cpuUsage": "23%"
}
}
Health Status Values:
Healthy- All systems operationalDegraded- Partial functionalityUnhealthy- Critical systems down
Filter Endpoints
These endpoints provide filter options for UI dropdowns and queries.
GET /v1/filters/leagues
Description: Retrieves available leagues for filtering.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
sportId |
int | Filter by sport |
active |
bool | Only active leagues |
Response: LeaguesFilterResponse
{
"leagues": [
{"id": 1, "name": "NFL", "sportId": 1, "sportName": "Football"},
{"id": 2, "name": "NCAAF", "sportId": 1, "sportName": "Football"},
{"id": 3, "name": "NBA", "sportId": 2, "sportName": "Basketball"},
{"id": 4, "name": "NCAAB", "sportId": 2, "sportName": "Basketball"},
{"id": 5, "name": "MLB", "sportId": 3, "sportName": "Baseball"},
{"id": 6, "name": "NHL", "sportId": 4, "sportName": "Hockey"}
]
}
GET /v1/filters/sports
Description: Retrieves available sports for filtering.
Response: SportsFilterResponse
{
"sports": [
{"id": 1, "name": "Football", "code": "FB", "active": true},
{"id": 2, "name": "Basketball", "code": "BK", "active": true},
{"id": 3, "name": "Baseball", "code": "BB", "active": true},
{"id": 4, "name": "Hockey", "code": "HK", "active": true},
{"id": 5, "name": "Soccer", "code": "SC", "active": true}
]
}
GET /v1/filters/teams
Description: Retrieves available teams for filtering.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
sportId |
int | Filter by sport |
leagueId |
int | Filter by league |
search |
string | Search team name |
Response: TeamsFilterResponse
{
"teams": [
{"id": 1, "name": "Kansas City Chiefs", "leagueId": 1, "abbreviation": "KC"},
{"id": 2, "name": "Buffalo Bills", "leagueId": 1, "abbreviation": "BUF"},
{"id": 3, "name": "Philadelphia Eagles", "leagueId": 1, "abbreviation": "PHI"}
]
}
GET /v1/filters/periods
Description: Retrieves available time periods for filtering.
Response: PeriodsFilterResponse
{
"periods": [
{"id": "today", "name": "Today", "description": "Games today"},
{"id": "tomorrow", "name": "Tomorrow", "description": "Games tomorrow"},
{"id": "this-week", "name": "This Week", "description": "Games this week"},
{"id": "next-week", "name": "Next Week", "description": "Games next week"},
{"id": "this-month", "name": "This Month", "description": "Games this month"},
{"id": "season", "name": "Current Season", "description": "Full season"}
]
}
Examples
Basic Health Check
curl -X GET "https://api.example.com/v1/health"
Deep Health Check (Admin)
curl -X GET "https://api.example.com/v1/health/deep" \
-H "Authorization: Bearer eyJ..."
Get Leagues Filter
curl -X GET "https://api.example.com/v1/filters/leagues?sportId=1"
Get Sports Filter
curl -X GET "https://api.example.com/v1/filters/sports"
Get Teams Filter
curl -X GET "https://api.example.com/v1/filters/teams?leagueId=1&search=chiefs"
Related Endpoints
- Vendors - Vendor status
- Data Providers - Provider status