إنتقل إلى المحتوى الرئيسي

API reference

A2A protocol

Inter-agent communication uses JSON-RPC 2.0 over WebSocket (ACP / Agent Communication Protocol). Each agent listens on a dedicated port. The orchestrator dispatches tasks to specialists via ACP HandoffTool, which wraps JSON-RPC 2.0 requests with routing metadata.

Request format

{
"jsonrpc": "2.0",
"method": "analyze_threat",
"params": {
"alert_id": "ALRT-2026-05821",
"iocs": [{"type": "ip", "value": "45.33.32.156"}]
},
"id": "req-001"
}

Response format

{
"jsonrpc": "2.0",
"result": {
"severity": "high",
"confidence": 0.89,
"mitre_techniques": ["T1566.001"],
"iocs": [{"type": "domain", "value": "evil.example.com"}]
},
"id": "req-001"
}

Error format

{
"jsonrpc": "2.0",
"error": {
"code": -32601,
"message": "Method not found"
},
"id": "req-001"
}

REST endpoints

Auth

MethodPathDescriptionPermission
GET/api/v1/auth/providersList configured auth providersPublic
POST/api/v1/auth/tokenObtain JWT access tokenPublic
GET/api/v1/auth/oidc/loginInitiate OIDC login flowPublic
GET/api/v1/auth/oidc/callbackOIDC callback handlerPublic
GET/api/v1/auth/saml/loginInitiate SAML loginPublic
POST/api/v1/auth/saml/acsSAML assertion consumerPublic
POST/api/v1/auth/logoutInvalidate sessionAuthenticated
GET/api/v1/auth/api-keysList API keysAuthenticated
POST/api/v1/auth/api-keysCreate API keyAuthenticated
DELETE/api/v1/auth/api-keys/{key_id}Revoke API keyAuthenticated

Users

MethodPathDescriptionPermission
GET/api/v1/users/meCurrent user profileAuthenticated
GET/api/v1/usersList usersAdmin
POST/api/v1/usersCreate userAdmin
DELETE/api/v1/users/{username}Delete userAdmin

Alerts

MethodPathDescriptionPermission
GET/api/v1/alertsList alertsalerts:read
POST/api/v1/alertsCreate alertalerts:write
GET/api/v1/alerts/{alert_id}Get alert detailalerts:read
PATCH/api/v1/alerts/{alert_id}Update alertalerts:write
POST/api/v1/alerts/{alert_id}/acknowledgeAcknowledge alertalerts:write
POST/api/v1/alerts/{alert_id}/promotePromote alert to casealerts:write
POST/api/v1/alerts/{alert_id}/case-linkLink alert to existing casealerts:write

Cases

MethodPathDescriptionPermission
GET/api/v1/casesList casescases:read
POST/api/v1/casesCreate casecases:write
GET/api/v1/cases/{case_id}Get case detailcases:read
PATCH/api/v1/cases/{case_id}Update casecases:write
DELETE/api/v1/cases/{case_id}Delete casecases:write
GET/api/v1/cases/{case_id}/observablesList observablescases:read
POST/api/v1/cases/{case_id}/observablesAdd observablecases:write
GET/api/v1/cases/{case_id}/evidenceList evidencecases:read
POST/api/v1/cases/{case_id}/evidenceAdd evidencecases:write
GET/api/v1/cases/{case_id}/evidence/{evidence_id}/custodyCustody chaincases:read
GET/api/v1/cases/{case_id}/evidence/{evidence_id}/ledgerEvidence ledgercases:read
GET/api/v1/cases/{case_id}/commentsList commentscases:read
POST/api/v1/cases/{case_id}/commentsAdd commentcases:write
GET/api/v1/cases/{case_id}/tasksList taskscases:read
POST/api/v1/cases/{case_id}/tasksCreate taskcases:write
PATCH/api/v1/cases/{case_id}/tasks/{task_id}Update taskcases:write

SIEM / Detection

MethodPathDescriptionPermission
GET/api/v1/siem/logsSearch SIEM logssiem:read
POST/api/v1/siem/logs/ingestIngest log entrysiem:write
GET/api/v1/siem/huntsList hunt queriessiem:read
POST/api/v1/siem/huntsCreate hunt querysiem:write
PATCH/api/v1/siem/hunts/{hunt_id}Update hunt querysiem:write
POST/api/v1/siem/hunts/{hunt_id}/runRun hunt querysiem:write
GET/api/v1/detections/rulesList detection rulessiem:read
POST/api/v1/detections/rulesCreate detection rulesiem:write
PATCH/api/v1/detections/rules/{rule_id}Update detection rulesiem:write
POST/api/v1/detections/rules/{rule_id}/runRun detection rulesiem:write
GET/api/v1/detections/rules/{rule_id}/runsList rule runssiem:read
GET/api/v1/detections/metricsDetection metricssiem:read
GET/api/v1/detections/rules/{rule_id}/suppressionsList suppressionssiem:read
POST/api/v1/detections/rules/{rule_id}/suppressionsCreate suppressionsiem:write
GET/api/v1/detections/rules/{rule_id}/feedbackList feedbacksiem:read
POST/api/v1/detections/rules/{rule_id}/feedbackSubmit feedbacksiem:write
POST/api/v1/siem/logs/{log_id}/promotePromote log to rulesiem:write
GET/api/v1/siem/sourcesList log sourcessiem:read
GET/api/v1/siem/statsSIEM statisticssiem:read

EDR

MethodPathDescriptionPermission
GET/api/v1/edr/endpointsList endpointsedr:read
GET/api/v1/edr/endpoints/{endpoint_id}Endpoint detailedr:read
POST/api/v1/edr/endpoints/{endpoint_id}/isolateIsolate endpointedr:write
POST/api/v1/edr/endpoints/{endpoint_id}/unisolateRelease endpointedr:write
POST/api/v1/edr/endpoints/{endpoint_id}/scanScan endpointedr:write
GET/api/v1/edr/statsEDR statisticsedr:read

SOAR / Playbooks

MethodPathDescriptionPermission
GET/api/v1/playbooksList playbooksplaybooks:read
GET/api/v1/soar/playbooksList SOAR playbookssoar:read
POST/api/v1/soar/playbooksCreate SOAR playbooksoar:write
GET/api/v1/soar/playbooks/{playbook_id}Playbook detailsoar:read
POST/api/v1/soar/playbooks/{playbook_id}/toggleToggle playbooksoar:write
POST/api/v1/soar/playbooks/{playbook_id}/executeExecute playbooksoar:write
GET/api/v1/soar/executionsList executionssoar:read
GET/api/v1/soar/rulesList automation rulessoar:read
POST/api/v1/soar/rulesCreate automation rulesoar:write
POST/api/v1/soar/rules/{rule_id}/toggleToggle rulesoar:write
DELETE/api/v1/soar/rules/{rule_id}Delete rulesoar:write

Investigations

MethodPathDescriptionPermission
GET/api/v1/investigationsList investigationsinvestigations:read
GET/api/v1/investigations/{investigation_id}Investigation detailinvestigations:read
POST/api/v1/agents/investigateDispatch investigationinvestigations:write
POST/api/v1/orchestrator/dispatchOrchestrator dispatchinvestigations:write
GET/api/v1/orchestrator/historyDispatch historyinvestigations:read

Network

MethodPathDescriptionPermission
GET/api/v1/network-attacksList network attacksnetwork:read
GET/api/v1/network-attacks/{attack_id}Attack detailnetwork:read
POST/api/v1/network-attacks/{attack_id}/casePromote to casenetwork:write
POST/api/v1/network-attacks/{attack_id}/dispatchDispatch responsenetwork:write
GET/api/v1/network-telemetry/statusTelemetry statusnetwork:read
POST/api/v1/network-telemetry/ingestIngest telemetrynetwork:write
GET/api/v1/settings/network-telemetryTelemetry confignetwork:read
PUT/api/v1/settings/network-telemetryUpdate telemetry confignetwork:write
GET/api/v1/settings/network-telemetry/historyConfig historynetwork:read
POST/api/v1/settings/network-telemetry/history/{history_id}/rollbackRollback confignetwork:write
GET/api/v1/network-telemetry/coverageAttack coverage mapnetwork:read
GET/api/v1/network-security/findingsNetwork findingsnetwork:read
POST/api/v1/network-security/analyzeAnalyse network datanetwork:write
GET/api/v1/network-security/statusNetwork security statusnetwork:read

Agent Fleet

MethodPathDescriptionPermission
GET/api/v1/agents/{agent_id}/toolsList agent toolsagents:read
GET/api/v1/agents/{agent_id}/tool-callsList agent tool callsagents:read
GET/api/v1/mcp/healthMCP server healthagents:read
GET/api/v1/inference/statusInference backend statusagents:read

Chat

MethodPathDescriptionPermission
POST/api/v1/chat/completionsChat completionchat:write
POST/api/v1/chat/streamStream chat response (SSE)chat:read
GET/api/v1/chat/sessionsList chat sessionschat:read
POST/api/v1/chat/sessionsCreate chat sessionchat:write
GET/api/v1/chat/sessions/{session_id}Get chat sessionchat:read
DELETE/api/v1/chat/sessions/{session_id}Delete chat sessionchat:write

Both chat endpoints are rate limited per user (HTTP 429, AURORA-4290, with Retry-After when exceeded). User input is neutralized and any pasted or grounding data is fenced as untrusted before it reaches the model, and responses are scrubbed for secrets and system-prompt leakage. The streaming endpoint emits a report_generated event (or report_error on a malformed request) when the model returns a %%REPORT_REQUEST%% marker. See AI chat adversarial defense.

System

MethodPathDescriptionPermission
GET/api/v1/settings/runtimeRuntime configurationsystem:read
PATCH/api/v1/settings/runtimeUpdate runtime configsystem:write
GET/metricsPrometheus metricsAuthenticated

WebSocket

MethodPathDescriptionPermission
WS/api/v1/ws/alertsReal-time alert streamAuthenticated
WS/api/v1/ws/agent-thoughtsAgent reasoning streamAuthenticated
WS/api/v1/ws/investigation-receiptsInvestigation result streamAuthenticated
WS/api/v1/ws/agents/{agent_id}/tool-callsAgent tool call streamAuthenticated
WS/api/v1/ws/approvalsHuman approval notificationsAuthenticated

Error codes

All errors follow a consistent envelope. The code field uses the AURORA-XXXX taxonomy, where the first three digits mirror the HTTP status code.

CodeHTTP StatusMessage
AURORA-4010401Authentication required
AURORA-4011401Token expired
AURORA-4012401Invalid credentials
AURORA-4030403Insufficient permissions
AURORA-4031403Action denied by guardrail policy
AURORA-4040404Resource not found
AURORA-4041404Case not found
AURORA-4042404Alert not found
AURORA-4043404Agent not found
AURORA-4080408Human approval timed out
AURORA-4090409Resource conflict
AURORA-4091409Duplicate alert
AURORA-4220422Validation error
AURORA-4221422Playbook validation failed
AURORA-4222422Sigma rule validation failed
AURORA-4290429Rate limit exceeded
AURORA-5000500Internal server error
AURORA-5030503Service temporarily unavailable
AURORA-5031503LLM inference service unavailable
AURORA-5032503ClickHouse service unavailable

Error response envelope

{
"error": {
"code": "AURORA-4041",
"message": "Case not found",
"detail": null,
"timestamp": "2026-06-14T12:00:00.000Z",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}

API versioning headers

Every response includes these headers:

HeaderValueDescription
X-API-Version1.0Current API version
X-Request-IDuuidUnique request identifier for tracing
X-AuroraSOC-Modedry_run | monitor | activeSystem operation mode

Deprecated routes return additional headers:

HeaderExampleDescription
DeprecationtrueIndicates the route is deprecated
Sunset2026-12-31T00:00:00ZISO 8601 date when the route will be removed

Clients should monitor the Deprecation header and migrate before the Sunset date. The X-API-Version header allows clients to gate feature availability checks without inspecting the response body.