GET /api/data/
Retrieve paginated timeline data with filtering, sorting, and time range queries. Uses lazy evaluation for out-of-core processing.Path Parameters
CSV filename returned from
/upload endpoint (e.g., Security_evtx_1704067200.csv)Query Parameters
Page number (1-indexed)
Records per page (max: 1000)
Global search query (case-insensitive, searches all columns)
Filter events after this timestamp (inclusive)
Filter events before this timestamp (inclusive)
Column-specific filters (e.g.,
{"EventID":"4624","User":"admin"})Column name to sort by (alternative:
sort[0][field] for Tabulator.js compatibility)Sort direction (alternative:
sort[0][dir])Response Schema
Current page number
Total number of pages
Total records matching filters
Total records in file (before filters)
Array of timeline events (objects with dynamic schema)
Earliest timestamp in filtered dataset
Latest timestamp in filtered dataset
Examples
Response Example
GET /api/histogram/
Generate time-series histogram with event distribution, peaks, and outlier detection.Path Parameters
CSV filename from upload
Query Parameters
EventID to exclude from histogram (e.g.,
4624 for logon noise reduction)Time range start
Time range end
Global search filter
Column-specific filters
Row IDs for subset histogram (e.g.,
["5","20","100"])Response Schema
X-axis labels (timestamps or time buckets)
Chart.js dataset objects with event counts per bucket
Human-readable summary (e.g., “High activity spike detected at 2024-01-01 14:00”)
Example
Response Example
POST /api/forensic_report
Generate comprehensive forensic analysis with parallel execution of:- Timeline analysis (peaks, gaps, anomalies)
- Context extraction (users, IPs, processes)
- Threat hunting (suspicious patterns)
- Sigma rule matching (86 rules)
- YARA scanning
- MITRE ATT&CK mapping
- Cross-source correlation
- Session profiling
- Risk scoring (Smart Risk Engine M4)
- Threat intelligence enrichment
Request Body
CSV filename to analyze
Global search filter
Column-specific filters
Row IDs for subset analysis
Time range start
Time range end
Sort column
Sort direction
Response Schema
Number of events analyzed
Source filename
Most common tactic/event type (e.g., “Win EventID 4688: Process Creation”)
Most active user/IP
Overall risk assessment
Numeric risk score
Risk justification factors (e.g., [“Sigma critical hit: Mimikatz detected”, “Lateral movement detected”])
Events per second (activity rate)
Analysis results from 4 parallel tasks:
- Timeline: Peaks, gaps, time range
- Context: Users, IPs, hosts, paths, event IDs
- Hunting: Suspicious patterns, network connections, logon events
- Identity: Top processes, rare executions, asset inventory
Matched Sigma rules with evidence rows
Rule name
Severity level
MITRE ATT&CK technique ID (e.g., “T1059.001”)
Total matching events
First 150 matching rows with forensic context columns
All matching row IDs (up to 500)
YARA rule matches (scans first 5MB of CSV text)
MITRE ATT&CK tactics derived from Sigma hits
Cross-file correlation chains (user, IP, process pivots)
Session behavior profiles (dwell time, request patterns)
Detected execution artifacts (Prefetch, ShimCache, AmCache)
IOC enrichment from threat feeds (VirusTotal, AbuseIPDB, etc.)
Example
Response Example (Abbreviated)
Performance
Report generation uses parallel execution withasyncio.gather() (9 concurrent tasks):
- Timeline analysis: ~0.8s
- Context extraction: ~1.2s
- Hunting patterns: ~1.5s
- Identity analysis: ~1.0s
- Sigma matching: ~2.5s
- YARA scan: ~0.5s
- Correlation: ~1.8s
- Sessions: ~1.2s
- Execution artifacts: ~0.9s
- Total: ~3.5s (wall-clock time, 9 tasks in parallel)
Threat intelligence enrichment adds 5-30s depending on API rate limits.
POST /api/histogram_subset
Generate histogram for selected rows only (subset analysis).Request Body
CSV filename
Row IDs to include (e.g.,
["5", "20", "100"])Global search filter
Column filters
Time range start
Time range end
Response
Same schema as/api/histogram/{filename} with interpretation prefixed by "Filtered View: ".
GET /api/empty_columns/
Identify completely empty columns (all nulls or empty strings) for UI optimization.Query Parameters
Same filtering params as/api/data/{filename} (query, col_filters, start_time, end_time, selected_ids).
Response
Excludes internal columns (
_id, No., Original_No.) from empty check.GET /api/timeseries/
Advanced timeseries analysis with trend detection and peak identification using thechronos_timeseries_builder skill.
Response Schema
Trend direction (rising, falling, stable)
Detected peaks with timestamps and magnitudes
Chart.js-compatible dataset
Next Steps
Export Endpoints
Export filtered datasets in CSV, XLSX, PDF, HTML formats