QCOS NavCore™ API Reference
Complete REST API Documentation
Copyright © 2024-2026 SoftQuantus Innovative OÜ. All Rights Reserved.
Overview
The NavCore API provides RESTful endpoints for accessing all Assured PNT functionality.
Base URL: http://localhost:8000
API Version: v1
Content Type: application/json
Authentication
All API endpoints require authentication via API key:
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:8000/api/v1/navcore/status
For development, you can disable authentication in the configuration.
Core Endpoints
GET /api/v1/navcore/status
Get current PNT system status.
Response:
{
"status": "operational",
"mode": "nominal",
"integrity_status": "normal",
"satellites_tracked": 12,
"sensors_active": 4,
"holdover_active": false,
"last_update": "2024-12-20T10:30:00Z"
}
GET /api/v1/navcore/solution
Get full navigation solution with uncertainty.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
format | string | Output format: full, compact |
coordinate_system | string | WGS84, ECEF, ENU |
Response:
{
"position": {
"latitude_deg": 51.5074,
"longitude_deg": -0.1278,
"altitude_msl_m": 100.0,
"sigma_horizontal_m": 0.5,
"sigma_vertical_m": 1.0
},
"velocity": {
"north_ms": 5.0,
"east_ms": 3.0,
"down_ms": 0.1,
"ground_speed_ms": 5.83,
"ground_track_deg": 30.96,
"sigma_ms": 0.1
},
"attitude": {
"roll_deg": 0.0,
"pitch_deg": 0.0,
"heading_deg": 45.0,
"sigma_deg": 0.5
},
"time": {
"utc": "2024-12-20T10:30:00.123456Z",
"gps_week": 2295,
"gps_tow_s": 124800.123456,
"utc_offset_ns": 5.0,
"sigma_ns": 20.0
},
"integrity": {
"status": "normal",
"risk_level": 1e-9,
"protection_levels": {
"horizontal_m": 10.0,
"vertical_m": 15.0,
"time_ns": 50.0
}
},
"fault_flags": {
"gnss_valid": true,
"gnss_spoof_suspected": false,
"gnss_jam_detected": false,
"holdover_active": false,
"integrity_risk": 1e-9
},
"evidence_id": "EVD-20241220-103000-abc123"
}
GET /api/v1/navcore/integrity
Get detailed integrity assessment.
Response:
{
"status": "normal",
"risk_level": 1e-9,
"protection_levels": {
"horizontal_m": 10.0,
"vertical_m": 15.0,
"time_ns": 50.0,
"gravity_ugal": 1.0
},
"alert_limits": {
"horizontal_m": 40.0,
"vertical_m": 35.0
},
"integrity_available": true,
"geometry": {
"hdop": 1.2,
"vdop": 1.8,
"pdop": 2.2,
"satellites_used": 12
},
"consistency_checks": {
"position_consistent": true,
"velocity_consistent": true,
"clock_consistent": true,
"imu_consistent": true
}
}
GET /api/v1/navcore/alerts
Get active spoof/jam alerts.
Response:
{
"active_alerts": [
{
"alert_id": "ALT-001",
"type": "jam_suspected",
"severity": "warning",
"detection_time": "2024-12-20T10:25:00Z",
"affected_sources": ["GPS", "Galileo"],
"confidence": 0.85,
"indicators": [
"C/N0 drop on multiple satellites",
"AGC saturation"
],
"recommended_action": "Monitor, prepare holdover"
}
],
"alert_count": 1,
"last_scan": "2024-12-20T10:30:00Z"
}
GET /api/v1/navcore/holdover
Get holdover budget and status.
Response:
{
"holdover_active": false,
"holdover_capable": true,
"clock_type": "OCXO",
"budget": {
"total_seconds": 3600,
"remaining_seconds": 3600,
"used_seconds": 0,
"percentage_remaining": 100.0
},
"accuracy_degradation": {
"position_drift_rate_mpm": 0.1,
"time_drift_rate_ns_s": 0.01
},
"last_gnss_sync": "2024-12-20T10:30:00Z"
}
POST /api/v1/navcore/inject
Inject sensor measurement.
Request Body:
{
"sensor_id": "GNSS-001",
"measurement_type": "position",
"timestamp": "2024-12-20T10:30:00Z",
"data": {
"latitude_deg": 51.5074,
"longitude_deg": -0.1278,
"altitude_m": 100.0,
"accuracy_m": 2.0
}
}
Response:
{
"accepted": true,
"measurement_id": "MEAS-20241220-103000-001",
"processing_time_ms": 1.5
}
GET /api/v1/navcore/sensors
Get registered sensors.
Response:
{
"sensors": [
{
"sensor_id": "GNSS-001",
"type": "gnss_receiver",
"manufacturer": "u-blox",
"model": "ZED-F9P",
"status": "operational",
"last_reading": "2024-12-20T10:30:00Z"
},
{
"sensor_id": "IMU-001",
"type": "imu",
"manufacturer": "Honeywell",
"model": "HG1120",
"status": "operational",
"last_reading": "2024-12-20T10:30:00Z"
}
],
"total_count": 2,
"operational_count": 2
}
Quantum Processing Endpoints
GET /api/v1/navcore/quantum/status
Get quantum processing subsystem status.
Response:
{
"status": "operational",
"qec_engine": "active",
"sensors": {
"quantum_gravimeter": true,
"quantum_clock": true,
"quantum_gyroscope": false
},
"processing_mode": "hybrid",
"correction_level": "enhanced"
}
POST /api/v1/navcore/quantum/noise/characterize
Characterize sensor noise.
Request Body:
{
"sensor_id": "QG-001",
"time_series": [9.8067, 9.8066, 9.8068, ...],
"sample_rate_hz": 1000.0
}
Response:
{
"sensor_id": "QG-001",
"noise_type": "flicker",
"white_noise_floor": 1e-12,
"flicker_coefficient": 1e-14,
"resonance_frequencies": [50.0, 100.0],
"resonance_amplitudes": [1e-10, 5e-11],
"total_noise_variance": 1.2e-11,
"measurement_bandwidth_hz": 500.0
}
POST /api/v1/navcore/quantum/sequence/select
Select optimal dynamical decoupling sequence.
Request Body:
{
"sensor_id": "QG-001",
"interrogation_time_us": 100.0,
"platform_type": "aircraft"
}
Response:
{
"sequence_type": "CPMG",
"n_pulses": 16,
"total_time_us": 100.0,
"pulse_times": [6.25, 18.75, 31.25, ...],
"pulse_phases": [0.0, 0.0, 0.0, ...],
"expected_coherence": 0.95,
"improvement_factor": 5.2
}
POST /api/v1/navcore/quantum/process
Process quantum measurement with error correction.
Request Body:
{
"sensor_id": "QG-001",
"raw_signal": [0.1, 0.2, 0.15, ...],
"interrogation_time_us": 100.0,
"atom_number": 100000,
"apply_decoupling": true,
"unit": "m/s²"
}
Response:
{
"sensor_id": "QG-001",
"raw_value": 9.8067,
"corrected_value": 9.80665,
"uncertainty": 1e-9,
"coherence": 0.95,
"improvement_factor": 5.2,
"unit": "m/s²",
"processing_time_ms": 2.5
}
Compliance Endpoints
GET /api/v1/navcore/compliance/osnma/status
Get OSNMA authentication status.
Response:
{
"status": "operational",
"authenticated_satellites": 8,
"total_galileo_satellites": 10,
"key_chain_status": "verified",
"current_key_index": 1523,
"next_key_disclosure": "2024-12-20T10:31:00Z",
"authentication_rate": 80.0,
"last_authentication": "2024-12-20T10:30:00Z",
"warnings": []
}
GET /api/v1/navcore/compliance/osnma/satellites
Get per-satellite authentication status.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
constellation | string | Filter: GAL, GPS |
status_filter | string | Filter: authenticated, pending, failed |
Response:
{
"satellites": [
{
"svid": 1,
"constellation": "GAL",
"auth_status": "authenticated",
"last_verified": "2024-12-20T10:30:00Z",
"tag_count": 125,
"failed_count": 0,
"exclusion_reason": null
}
],
"authenticated_count": 8,
"pending_count": 2,
"failed_count": 0,
"excluded_count": 0
}
POST /api/v1/navcore/compliance/osnma/verify
Verify a navigation message.
Request Body:
{
"svid": 1,
"message_type": "INAV",
"subframe_data": "0A1B2C3D...",
"osnma_data": "FF00AA55...",
"tow": 124800,
"wn": 2295
}
Response:
{
"verified": true,
"svid": 1,
"message_type": "INAV",
"verification_time_ms": 1.2,
"key_index_used": 1523,
"mac_verified": true,
"data_integrity": true,
"warnings": []
}
GET /api/v1/navcore/compliance/nis2/status
Get NIS2 compliance status.
Response:
{
"entity_type": "essential",
"sector": "transport",
"overall_compliance": "partially_compliant",
"compliance_score": 85.0,
"article_21_coverage": {
"ART21-A": "compliant",
"ART21-B": "compliant",
"ART21-C": "partially_compliant",
"ART21-D": "compliant"
},
"reporting_deadline_days": 24,
"last_assessment": "2024-12-20T10:00:00Z",
"next_audit_due": "2025-12-20T00:00:00Z"
}
GET /api/v1/navcore/compliance/nis2/gaps
Get compliance gaps analysis.
Response:
{
"total_gaps": 3,
"critical_gaps": 0,
"high_priority_gaps": 1,
"gaps": [
{
"requirement_id": "ART21-C",
"requirement_name": "Supply chain security",
"current_status": "partially_compliant",
"gap_description": "Supplier assessment not complete",
"risk_level": "high",
"remediation_steps": [
"Complete supplier security assessments",
"Implement vendor risk management"
],
"estimated_effort_days": 30,
"priority": 1
}
],
"estimated_remediation_days": 45,
"compliance_roadmap": [
{
"phase": 1,
"items": ["ART21-C"],
"duration_days": 30
}
]
}
POST /api/v1/navcore/compliance/nis2/incident
Report a security incident.
Request Body:
{
"category": "AVAILABILITY",
"severity": "HIGH",
"title": "GNSS Service Disruption",
"description": "Complete loss of GNSS signal in area X",
"affected_systems": ["NAV-001", "NAV-002"],
"detection_time": "2024-12-20T10:00:00Z",
"containment_actions": ["Activated holdover mode"],
"indicators_of_compromise": ["Sudden C/N0 drop to 0"]
}
Response:
{
"incident_id": "INC-20241220100000",
"status": "recorded",
"category": "availability",
"severity": "high",
"reporting_deadline": "2024-12-23T10:00:00Z",
"csirt_notification_required": true,
"csirt_notification_deadline": "2024-12-21T10:00:00Z",
"evidence_retention_days": 1095,
"next_steps": [
"Notify national CSIRT within 24 hours",
"Preserve all logs and evidence",
"Continue containment activities"
]
}
Quantum RAIM Endpoints
GET /api/v1/navcore/raim/status
Get Quantum RAIM status.
Response:
{
"state": "available",
"satellites_tracked": 12,
"satellites_authenticated": 8,
"quantum_sensors_online": 2,
"classical_sensors_online": 3,
"integrity_available": true,
"last_check_time": "2024-12-20T10:30:00Z",
"fault_detected": false,
"exclusions_active": 0
}
GET /api/v1/navcore/raim/protection
Get current protection levels.
Response:
{
"horizontal_protection_level_m": 8.5,
"vertical_protection_level_m": 12.0,
"time_protection_level_ns": 45.0,
"gravity_protection_level_ugal": 5.0,
"horizontal_alert_limit_m": 40.0,
"vertical_alert_limit_m": 35.0,
"integrity_risk": 1e-7,
"hpl_valid": true,
"vpl_valid": true,
"geometry_factor": 1.8
}
POST /api/v1/navcore/raim/process
Process a RAIM epoch.
Request Body:
{
"timestamp": "2024-12-20T10:30:00Z",
"gnss_measurements": [
{
"svid": 1,
"constellation": "GPS",
"pseudorange_m": 22000000.0,
"cn0_dbhz": 45.0,
"elevation_deg": 60.0,
"azimuth_deg": 120.0,
"authenticated": false
}
],
"quantum_measurements": [
{
"sensor_id": "QG-001",
"sensor_role": "quantum_gravimeter",
"timestamp": "2024-12-20T10:30:00Z",
"value": 9.80665,
"unit": "m/s²",
"uncertainty": 1e-9,
"valid": true
}
]
}
Response:
{
"epoch_time": "2024-12-20T10:30:00Z",
"state": "available",
"position": {
"latitude_deg": 51.5074,
"longitude_deg": -0.1278,
"altitude_m": 100.0
},
"protection_levels": {
"horizontal_protection_level_m": 8.5,
"vertical_protection_level_m": 12.0,
"hpl_valid": true,
"vpl_valid": true
},
"satellites_used": [1, 3, 6, 11, 14, 22, 31],
"satellites_excluded": [],
"faults_detected": [],
"threats_detected": [],
"quantum_verification": {
"gravimeter_match": true,
"clock_match": true,
"discrepancy": 0.0
},
"processing_time_ms": 5.2
}
GET /api/v1/navcore/raim/threats
Get active threat detections.
Response:
{
"active_threats": [],
"threat_count": 0,
"highest_level": "none",
"system_recommendation": "Normal operation, no threats detected",
"last_scan_time": "2024-12-20T10:30:00Z"
}
GET /api/v1/navcore/raim/statistics
Get RAIM detection statistics.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
hours | int | Statistics period (1-720) |
Response:
{
"total_epochs_processed": 86400,
"faults_detected": 3,
"threats_detected": 1,
"spoofing_attempts": 0,
"jamming_events": 1,
"exclusions_performed": 5,
"quantum_confirmations": 3,
"false_alarm_rate": 1e-5,
"missed_detection_rate": 0.0,
"mean_detection_time_ms": 50.0,
"uptime_percent": 99.99,
"statistics_period_hours": 24
}
Standards Endpoints
GET /api/v1/navcore/standards/sosa/profiles
Get available SOSA slot profiles.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
form_factor | string | Filter: 3U, 6U |
Response:
{
"profiles": [
{
"profile_id": "SOSA_3U_PAYLOAD",
"form_factor": "3U",
"slot_type": "payload",
"power_watts": 100.0,
"cooling": "conduction",
"interfaces": ["PCIe", "Ethernet", "1PPS"],
"description": "Standard 3U payload slot"
}
],
"total_count": 5
}
POST /api/v1/navcore/standards/sosa/validate
Validate module for SOSA conformance.
Request Body:
{
"module_id": "NAVCORE-VPX",
"target_profile": "SOSA_3U_PAYLOAD",
"form_factor": "3U",
"power_consumption_watts": 25.0,
"thermal_dissipation_watts": 20.0,
"interfaces": ["PCIe", "Ethernet", "1PPS"]
}
Response:
{
"conformant": true,
"conformance_level": "full",
"profile_matched": "SOSA_3U_PAYLOAD",
"violations": [],
"warnings": [],
"recommendations": [],
"certification_path": "SOSA TS 1.1"
}
GET /api/v1/navcore/standards/time/network
Get time distribution network status.
Response:
{
"nodes": [
{
"node_id": "GM-001",
"node_type": "grandmaster",
"clock_class": "Class-6",
"sync_source": "GPS",
"sync_protocol": "IEEE-1588-2019",
"offset_ns": 0.0,
"jitter_ns": 1.0,
"holdover_capability_s": 86400,
"status": "locked"
}
],
"grandmaster_id": "GM-001",
"network_accuracy_ns": 1.5,
"white_rabbit_enabled": true,
"ieee_1588_profile": "G.8275.1"
}
GET /api/v1/navcore/standards/hal/sensors
Get HAL registered sensors.
Response:
{
"sensors": [
{
"sensor_id": "QG-001",
"sensor_type": "quantum_gravimeter",
"generation": "gen_2",
"manufacturer": "SoftQuantus",
"model": "QGRAV-1000",
"serial_number": "SN-001234",
"status": "healthy",
"last_reading_time": "2024-12-20T10:30:00Z",
"calibration_valid": true,
"calibration_expires": "2025-12-20T00:00:00Z",
"mtbf_hours": 50000,
"operating_hours": 1000,
"health_score": 0.98
}
],
"total_count": 1,
"healthy_count": 1,
"degraded_count": 0,
"failed_count": 0
}
Error Responses
All endpoints may return the following error responses:
400 Bad Request
{
"detail": "Invalid request parameter: xyz"
}
401 Unauthorized
{
"detail": "Invalid or missing API key"
}
404 Not Found
{
"detail": "Resource not found"
}
500 Internal Server Error
{
"detail": "Internal server error",
"error_id": "ERR-20241220-abc123"
}
Rate Limiting
API endpoints are rate limited:
| Endpoint Type | Limit |
|---|---|
| Read (GET) | 1000 req/min |
| Write (POST) | 100 req/min |
| Processing | 10 req/min |
Rate limit headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1703068260
Webhooks
Configure webhooks for real-time alerts:
POST /api/v1/navcore/webhooks
{
"url": "https://your-server.com/webhook",
"events": ["alert.spoof", "alert.jam", "integrity.degraded"],
"secret": "your-webhook-secret"
}
Webhook payload:
{
"event": "alert.spoof",
"timestamp": "2024-12-20T10:30:00Z",
"data": {
"alert_id": "ALT-001",
"severity": "warning",
"details": {...}
},
"signature": "sha256=..."
}
This API reference is for QCOS NavCore™ v1.0.0