🏠 HOME
// Features
🧠 Predictive AI Engine 🎯 Attack Surface Monitor 📋 Compliance Automation 👁 SOC Analyst Access ⚡ Breach Response 🔴 Threat Simulation
// Resources
📰 Security Blog 🔌 API Docs 📋 Changelog 🟢 System Status ⬇️ Downloads ✉ Contact GET LICENSE →

REST API v2

The SentinelPRO IA REST API gives you programmatic access to threats, assets, incidents, compliance data, and platform controls. Build integrations, automate response workflows, or embed security telemetry directly into your own dashboards.

API VERSION
v2.0 — Stable
PROTOCOL
HTTPS / TLS 1.3
FORMAT
JSON (UTF-8)
AUTH METHOD
Bearer Token
SPEC
OpenAPI 3.1
CHANGELOG
v2 — Sep 2025
⬡ NOTE — API v1 was removed in platform v4.0 (January 2026). All integrations must use v2 endpoints. See the migration guide.

API Keys

All API requests require a valid API key passed as a Bearer token in the Authorization header. Keys are scoped per license and tied to your plan permissions.

HEADER FORMAT
Authorization: Bearer sp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
⚠ SECURITY — Never expose API keys in client-side code, public repos, or logs. Rotate keys immediately if compromised via Settings → API Keys → Revoke.
Key PrefixTypeScope
sp_live_ProductionFull API access per plan permissions
sp_test_SandboxRead-only, mock responses, no real actions
sp_whk_WebhookVerify incoming webhook signatures only

Endpoints

PRODUCTION
https://api.sentinelpro-ai.com/v2
SANDBOX
https://sandbox.sentinelpro-ai.com/v2

All endpoints return Content-Type: application/json. Dates use ISO 8601 (UTC). IDs are prefixed strings (e.g. thr_01HXYZ).

Request Quotas

Limits are applied per API key per minute. Exceeded limits return HTTP 429. Remaining quota is returned in response headers on every request.

STARTER
120 req/min
1,000 req/day max
PROFESSIONAL
600 req/min
50,000 req/day max
ENTERPRISE
Unlimited
Custom SLA available
Response HeaderDescription
X-RateLimit-LimitYour plan's max requests per minute
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when window resets
Retry-AfterSeconds to wait after a 429 response

Error Codes

All errors return a consistent JSON body with error.code and error.message.

{ "error": { "code": "invalid_api_key", "message": "The API key provided is invalid or has been revoked.", "status": 401, "request_id": "req_01HXY9ABCDEF" } }
400
BAD_REQUEST
Missing or invalid request parameters.
401
UNAUTHORIZED
Invalid or missing API key.
403
FORBIDDEN
Key lacks permission for this action.
404
NOT_FOUND
Resource does not exist.
429
RATE_LIMITED
Too many requests. See Retry-After header.
500
INTERNAL_ERROR
Platform error. Retry with exponential backoff.

Threat Endpoints

Query, triage, and respond to active threats detected by the SentinelPRO IA engine.

GET /threats List all active threats ▶
QUERY PARAMETERS
ParameterTypeDescription
severityOPTstringFilter: critical, high, medium, low
statusOPTstringactive, resolved, investigating
limitOPTintegerMax results per page (default: 50, max: 200)
cursorOPTstringPagination cursor from previous response
fromOPTISO 8601Filter threats detected after this timestamp
RESPONSE
{ "data": [ { "id": "thr_01HXYZ9ABCDEF", "title": "Suspicious PowerShell execution", "severity": "critical", "status": "active", "host": "DESKTOP-04.acme.local", "mitre_tactic": "Execution", "mitre_technique": "T1059.001", "detected_at": "2026-03-09T08:14:32Z", "score": 97 } ], "pagination": { "cursor": "eyJpZCI6InRocl8wMUhYWVoifQ==", "has_more": true, "total": 47 } }
GET /threats/{id} Get a single threat with full detail ▶
PATH PARAMETERS
ParameterTypeDescription
idREQstringThreat ID (prefix: thr_)
RESPONSE
{ "id": "thr_01HXYZ9ABCDEF", "title": "Suspicious PowerShell execution", "severity": "critical", "status": "active", "host": "DESKTOP-04.acme.local", "process": { "name": "powershell.exe", "pid": 4892, "parent": "cmd.exe" }, "mitre": { "tactic": "Execution", "technique": "T1059.001", "subtechnique": "PowerShell" }, "iocs": ["185.220.101.47", "c2.malicious-domain.net"], "timeline": [...], "detected_at": "2026-03-09T08:14:32Z" }
POST /threats/{id}/resolve Mark a threat as resolved ▶
REQUEST BODY
FieldTypeDescription
resolutionREQstringmitigated, false_positive, accepted_risk
noteOPTstringFree-text analyst note (max 1000 chars)
POST /threats/{id}/kill Kill malicious process on endpoint ▶
⚠ DESTRUCTIVE — This action immediately terminates the process. Requires Professional or Enterprise plan.
REQUEST BODY
FieldTypeDescription
confirmREQbooleanMust be true to execute
isolate_hostOPTbooleanAlso isolate the endpoint from network

Asset Endpoints

GET /assets List all monitored assets ▶
QUERY PARAMETERS
ParameterTypeDescription
typeOPTstringendpoint, cloud_resource, domain, ip
risk_score_minOPTintegerFilter assets with risk score ≥ this value (0–100)
RESPONSE
{ "data": [ { "id": "ast_01HXYZ9CLOUD", "type": "cloud_resource", "name": "prod-data-bucket", "provider": "aws", "region": "eu-west-1", "risk_score": 88, "exposures": ["public_read_acl", "no_versioning"], "last_scanned": "2026-03-09T06:00:00Z" } ], "pagination": { "cursor": null, "has_more": false, "total": 1 } }
POST /assets/{id}/scan Trigger an immediate scan of an asset ▶

Queues an immediate full scan. Returns a scan job ID. Poll GET /scans/{job_id} for status.

{ "job_id": "scn_01HXY2BCDEFG", "status": "queued", "estimated_duration_seconds": 45 }

Incident Endpoints

GET /incidents List all incidents ▶
{ "data": [ { "id": "inc_01HXYZ9INC01", "title": "Lateral movement detected — DESKTOP-04", "severity": "critical", "status": "investigating", "assignee": "[email protected]", "threat_count": 4, "created_at": "2026-03-09T08:20:00Z", "updated_at": "2026-03-09T09:11:00Z" } ], "pagination": { "cursor": null, "has_more": false, "total": 1 } }
POST /incidents Create a new incident manually ▶
REQUEST BODY
FieldTypeDescription
titleREQstringIncident title (max 200 chars)
severityREQstringcritical, high, medium, low
threat_idsOPTarrayArray of thr_ IDs to link
assigneeOPTstringEmail of assigned analyst

Webhook Events

Subscribe to real-time events via HTTPS POST to your endpoint. Payloads are signed with your webhook secret using HMAC-SHA256 in the X-SentinelPRO-Signature header.

threat.detected
Fires when the threat engine confirms a new threat above your configured severity threshold.
threat.resolved
Fires when a threat transitions to resolved, false_positive, or accepted_risk status.
threat.escalated
Fires when a threat severity is upgraded (e.g. medium → critical) based on new signals.
incident.created
Fires when a new incident is opened (manually or auto-correlated).
incident.updated
Fires on any incident field change: status, assignee, severity, or new threat linked.
asset.risk_changed
Fires when an asset's risk score crosses a configured threshold.
compliance.failing
Fires when a compliance framework control drops below passing threshold.
license.expiring
Fires 30, 14, and 7 days before license expiry.

Official Client Libraries

All SDKs are open-source, auto-generated from the OpenAPI 3.1 spec, and published under the MIT license.

🐍
Python
v2.1.0 — stable
pip install sentinelpro-ia
GitHub →
🟨
Node.js
v2.0.4 — stable
npm install @sentinelpro/sdk
GitHub →
🐹
Go
v2.0.1 — stable
go get github.com/sentinelpro/go-sdk
GitHub →
☕
Java
v2.0.0 — beta
Maven: com.sentinelpro:sdk:2.0.0
GitHub →

Try the API

⬡ API REQUEST SIMULATOR