mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-01-02 11:58:14 -05:00
4.7 KiB
Executable File
4.7 KiB
Executable File
Events API Endpoints
The Events API provides access to device event logs, allowing creation, retrieval, deletion, and summary of events over time.
Endpoints
1. Create Event
- POST
/events/create/<mac>Create an event for a device identified by its MAC address.
Request Body (JSON):
{
"ip": "192.168.1.10",
"event_type": "Device Down",
"additional_info": "Optional info about the event",
"pending_alert": 1,
"event_time": "2025-08-24T12:00:00Z"
}
-
Parameters:
ip(string, optional): IP address of the deviceevent_type(string, optional): Type of event (default"Device Down")additional_info(string, optional): Extra informationpending_alert(int, optional): 1 if alert email is pending (default 1)event_time(ISO datetime, optional): Event timestamp; defaults to current time
Response (JSON):
{
"success": true,
"message": "Event created for 00:11:22:33:44:55"
}
2. Get Events
- GET
/eventsRetrieve all events, optionally filtered by MAC address:
/events?mac=<mac>
Response:
{
"success": true,
"events": [
{
"eve_MAC": "00:11:22:33:44:55",
"eve_IP": "192.168.1.10",
"eve_DateTime": "2025-08-24T12:00:00Z",
"eve_EventType": "Device Down",
"eve_AdditionalInfo": "",
"eve_PendingAlertEmail": 1
}
]
}
3. Delete Events
- DELETE
/events/<mac>→ Delete events for a specific MAC - DELETE
/events→ Delete all events - DELETE
/events/<days>→ Delete events older than N days
Response:
{
"success": true,
"message": "Deleted events older than <days> days"
}
4. Get Recent Events
- GET
/events/recent→ Get events from the last 24 hours - GET
/events/<hours>→ Get events from the last N hours
Response (JSON):
{
"success": true,
"hours": 24,
"count": 5,
"events": [
{
"eve_DateTime": "2025-12-07 12:00:00",
"eve_EventType": "New Device",
"eve_MAC": "AA:BB:CC:DD:EE:FF",
"eve_IP": "192.168.1.100",
"eve_AdditionalInfo": "Device detected"
}
]
}
5. Get Latest Events
- GET
/events/lastGet the 10 most recent events.
Response (JSON):
{
"success": true,
"count": 10,
"events": [
{
"eve_DateTime": "2025-12-07 12:00:00",
"eve_EventType": "Device Down",
"eve_MAC": "AA:BB:CC:DD:EE:FF"
}
]
}
6. Event Totals Over a Period
- GET
/sessions/totals?period=<period>Return event and session totals over a given period.
Query Parameters:
| Parameter | Description |
|---|---|
period |
Time period for totals, e.g., "7 days", "1 month", "1 year", "100 years" |
Sample Response (JSON Array):
[120, 85, 5, 10, 3, 7]
Meaning of Values:
- Total events in the period
- Total sessions
- Missing sessions
- Voided events (
eve_EventType LIKE 'VOIDED%') - New device events (
eve_EventType LIKE 'New Device') - Device down events (
eve_EventType LIKE 'Device Down')
MCP Tools
Event endpoints are available as MCP Tools for AI assistant integration:
get_recent_alerts,get_last_events
📖 See MCP Server Bridge API for AI integration details.
Notes
- All endpoints require authorization (Bearer token). Unauthorized requests return HTTP 403:
{
"success": false,
"message": "ERROR: Not authorized",
"error": "Forbidden"
}
-
Events are stored in the Events table with the following fields:
eve_MAC,eve_IP,eve_DateTime,eve_EventType,eve_AdditionalInfo,eve_PendingAlertEmail. -
Event creation automatically logs activity for debugging.
Example curl Requests
Create Event:
curl -X POST "http://<server_ip>:<GRAPHQL_PORT>/events/create/00:11:22:33:44:55" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
--data '{
"ip": "192.168.1.10",
"event_type": "Device Down",
"additional_info": "Power outage",
"pending_alert": 1
}'
Get Events for a Device:
curl "http://<server_ip>:<GRAPHQL_PORT>/events?mac=00:11:22:33:44:55" \
-H "Authorization: Bearer <API_TOKEN>"
Delete Events Older Than 30 Days:
curl -X DELETE "http://<server_ip>:<GRAPHQL_PORT>/events/30" \
-H "Authorization: Bearer <API_TOKEN>"
Get Event Totals for 7 Days:
curl "http://<server_ip>:<GRAPHQL_PORT>/sessions/totals?period=7 days" \
-H "Authorization: Bearer <API_TOKEN>"