Sessions¶
Sessions are the core execution unit for pentest work.
Endpoints¶
GET /api/v1/sessionsPOST /api/v1/sessionsGET /api/v1/sessions/{session_id}PATCH /api/v1/sessions/{session_id}GET /api/v1/sessions/{session_id}/eventsPATCH /api/v1/sessions/{session_id}/statusPATCH /api/v1/sessions/{session_id}/project
Session lifecycle¶
The documented statuses are:
haltedqueuedactiveactive_autocompletefailed
Create a session¶
curl -sS -X POST "https://app.vulnetic.ai/api/v1/sessions" \
-H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL" \
-H "Content-Type: application/json" \
-d '{
"address": "https://app.example.com",
"scope": "Authenticated production web application test.",
"project_id": "11111111-1111-1111-1111-111111111111",
"session_time_limit_seconds": 14400,
"allow_automatic_task_creation": true,
"session_type": "pentest"
}'
The create endpoint is described as creating a new halted session.
Session status endpoint¶
curl -sS -X PATCH "https://app.vulnetic.ai/api/v1/sessions/22222222-2222-2222-2222-222222222222/status" \
-H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL" \
-H "Content-Type: application/json" \
-d '{
"status": "active_auto"
}'
Note
The contract exposes create-session and update-status primitives separately, but direct execution control may not be enabled for every integration workflow. Use this endpoint only if Vulnetic has explicitly enabled lifecycle control for your integration.
List sessions¶
curl -sS "https://app.vulnetic.ai/api/v1/sessions?project_id=11111111-1111-1111-1111-111111111111&status=active_auto&include_total=false" \
-H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL"
Update session details¶
curl -sS -X PATCH "https://app.vulnetic.ai/api/v1/sessions/22222222-2222-2222-2222-222222222222" \
-H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL" \
-H "Content-Type: application/json" \
-d '{
"scope": "Authenticated production web application and admin console test.",
"session_time_limit_seconds": 21600
}'
Assign a session to a project¶
curl -sS -X PATCH "https://app.vulnetic.ai/api/v1/sessions/22222222-2222-2222-2222-222222222222/project" \
-H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL" \
-H "Content-Type: application/json" \
-d '{
"project_id": "11111111-1111-1111-1111-111111111111"
}'
Read session events¶
curl -sS "https://app.vulnetic.ai/api/v1/sessions/22222222-2222-2222-2222-222222222222/events" \
-H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL"
Example event item:
{
"id": 1042,
"session_id": "22222222-2222-2222-2222-222222222222",
"task": "Enumerate authenticated routes",
"short_task": "Route enumeration",
"command": "ffuf -w routes.txt -u https://app.example.com/FUZZ",
"output": "...",
"annotations": {
"tags": ["recon"]
},
"analysis": "Potential admin route discovered",
"created_at": "2026-04-13T18:16:00Z",
"updated_at": "2026-04-13T18:16:03Z",
"parent_id": null,
"validate_finding_id": null,
"status": "complete",
"position": 14
}