Appearance
Status API
Monitor IPCom server health, performance, and detailed system information.
Status Endpoint
Returns a comprehensive status report of the IPCom server, including uptime, version, resource usage, device and database statistics, output status, websocket connections, modem status, and license information.
Request
http
GET /api/statusAuthentication Required: Must include JWT token in Authorization header.
Example Request
bash
curl -X GET "http://your-server-ip:port/api/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response
Success (200 OK)
json
{
"start_time": 1697539200,
"uptime": 12345,
"current_time": 1697540545,
"local_time_zone": "Europe/Vilnius",
"version": "5.0.0",
"release": "R123",
"tcp_connection_counts": {"Receiver1": 5, "Receiver2": 2},
"cpu_usage": 12.5,
"avg_cpu_usage": 10.2,
"device_tracker": {
"device_count_uid": 100,
"device_count_oid": 50,
"expiry_count": 2,
"online_count": 90,
"offline_count": 10,
"sms_mode_count": 5,
"ram_uid": 2048,
"ram_oid": 1024
},
"database": {
"db_version": "1",
"event_count": 123456,
"device_cache_oid_count": 50,
"device_cache_oid_ram_count": 1024,
"device_cache_partial_uid_count": 20,
"device_cache_partial_uid_ram_count": 512,
"table_sizes": {"events": 100000, "devices": 5000}
},
"output": {"outputName": {"destination": 10}},
"instance_name": "MainInstance",
"linux": {
"cpu_time": 123456,
"ram": 4096
},
"endpoint_call_counts": {"/api/status": 100, "/api/login": 200},
"websocket": {
"connected_users": [{"loginname":"user1","ip":"192.168.1.100"}]
},
"api_cert": {
"status": "valid",
"expiration_time": 1698000000
},
"data_history": {
"hourly_events": [{"time":1697539200,"count":100,"average":10.5}],
"tcp_connection_history": {"Receiver1": [5,6,7]}
},
"modem_status": {
"Modem1": {
"current_init_step": "initialized",
"initialization_error": "",
"is_failed": false,
"no_pings": false,
"network_status": "online"
}
},
"output_filters": {
"outputName": {
"maps_by_receiver_count": 10,
"maps_by_oid_count": 5,
"maps_by_subgroup_count": 2,
"maps_by_classif_count": 1,
"maps_by_event_code_count": 3,
"total_discarded_count": 0,
"total_event_time_count": 1000
}
},
"license": {
"status": 1,
"licensed_to": "Company",
"object_limit": 1000,
"user_limit": 100,
"features": {"19": true, "20": true}
}
}Response Structure
Main Status Response
| Field | Type | Description |
|---|---|---|
start_time | uint64 | Server start time (Unix timestamp) |
uptime | uint64 | Server uptime in seconds |
current_time | uint64 | Current server time (Unix timestamp, Linux only) |
local_time_zone | string | Server timezone (Linux only) |
version | string | Server version |
release | string | Release identifier |
tcp_connection_counts | object | Active TCP connections by receiver |
cpu_usage | float64 | Current CPU usage percentage |
avg_cpu_usage | float64 | Average CPU usage percentage |
device_tracker | object | Device tracking statistics |
database | object | Database status and statistics |
output | object | Output connection statistics |
instance_name | string | Server instance name |
linux | object | Linux system details |
endpoint_call_counts | object | API endpoint usage statistics |
websocket | object | WebSocket connection status |
api_cert | object | API certificate information |
data_history | object | Historical data statistics |
modem_status | object | Modem status by modem name |
output_filters | object | Output filter statistics |
license | object | License information and limits |
Device Tracker
| Field | Type | Description |
|---|---|---|
device_count_uid | int | Number of devices with UID |
device_count_oid | int | Number of devices with OID |
expiry_count | int | Number of expired devices |
online_count | int | Number of online devices |
offline_count | int | Number of offline devices |
sms_mode_count | int | Number of devices in SMS mode |
ram_uid | uint64 | Memory usage for UID devices |
ram_oid | uint64 | Memory usage for OID devices |
Database Status
| Field | Type | Description |
|---|---|---|
db_version | string | Database schema version |
event_count | int64 | Total number of events |
device_cache_oid_count | int | OID device cache count |
device_cache_oid_ram_count | uint64 | OID device cache memory usage |
device_cache_partial_uid_count | int | Partial UID device cache count |
device_cache_partial_uid_ram_count | uint64 | Partial UID device cache memory |
table_sizes | object | Size of database tables |
Linux Details
| Field | Type | Description |
|---|---|---|
cpu_time | uint64 | Total CPU time used |
ram | uint64 | Total RAM usage in MB |
WebSocket Status
| Field | Type | Description |
|---|---|---|
connected_users | array | List of connected WebSocket users |
Connected User Object
| Field | Type | Description |
|---|---|---|
loginname | string | Username of connected user |
ip | string | IP address of connected user |
API Certificate Status
| Field | Type | Description |
|---|---|---|
status | string | Certificate validity status |
expiration_time | int64 | Certificate expiration time (Unix timestamp) |
Data History
| Field | Type | Description |
|---|---|---|
hourly_events | array | Hourly event statistics |
tcp_connection_history | object | Historical TCP connection data |
Hourly Event Count Object
| Field | Type | Description |
|---|---|---|
time | int64 | Hour timestamp |
count | int64 | Number of events in that hour |
average | float64 | Average events per minute in that hour |
Modem Status
| Field | Type | Description |
|---|---|---|
current_init_step | string | Current initialization step |
initialization_error | string | Initialization error message (if any) |
is_failed | bool | Whether modem initialization failed |
no_pings | bool | Whether modem is not responding to pings |
network_status | string | Network connectivity status |
Filter Statistics
| Field | Type | Description |
|---|---|---|
maps_by_receiver_count | int64 | Number of receiver-based filter maps |
maps_by_oid_count | int64 | Number of OID-based filter maps |
maps_by_subgroup_count | int64 | Number of subgroup-based filter maps |
maps_by_classif_count | int64 | Number of classification-based filter maps |
maps_by_event_code_count | int64 | Number of event code-based filter maps |
total_discarded_count | int64 | Total number of discarded events |
total_event_time_count | int64 | Total event processing time |
License Status
| Field | Type | Description |
|---|---|---|
status | int | License status code |
licensed_to | string | License holder name |
object_limit | int | Maximum number of objects allowed |
user_limit | int | Maximum number of users allowed |
features | object | Licensed features (feature ID → enabled) |
Use Cases
Server Health Monitoring
bash
# Basic health check
curl -X GET "http://your-server-ip:port/api/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" | jq '.uptime, .cpu_usage, .avg_cpu_usage'Device Statistics
bash
# Get device counts
curl -X GET "http://your-server-ip:port/api/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" | jq '.device_tracker'Database Performance
bash
# Check database statistics
curl -X GET "http://your-server-ip:port/api/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" | jq '.database'License Information
bash
# Verify license status
curl -X GET "http://your-server-ip:port/api/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" | jq '.license'Monitoring Integration
The status endpoint is perfect for:
- Health checks: Monitor server uptime and CPU usage
- Capacity planning: Track device counts and memory usage
- Performance monitoring: Analyze database statistics and API usage
- License compliance: Monitor license limits and feature availability
- System diagnostics: Check modem status and network connectivity
Notes
- Authentication required: Must be logged in with valid JWT token
- Real-time data: All statistics reflect current server state
- Optional fields: Some fields (like
current_time,local_time_zone) are Linux-only - Comprehensive monitoring: Provides complete server health overview