Test your integration without real scans. With sandbox mode enabled, provisioning calls sent with the X-Aegis-Sandbox: true header are simulated, and the scenario endpoints let you choose which mock scan results (clean, warnings or critical) your test customers see.
Set the sandbox scenario POST /api/v1/sandbox/scenario
Auth: Bearer API key Rate limit: Not rate limited (sandbox)
Choose which mock scan results sandbox endpoints report: clean (no issues), warnings (web ports) or critical (database ports exposed).
Body parameters Name Type Required Notes scenariostring Required The mock scenario to activate.one of: clean, warnings, critical
Example request Copy
curl -X POST 'https://portal.example.com/api/v1/sandbox/scenario' \
-H 'Authorization: Bearer $AEGIS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"scenario": "critical"
}'Response: 200 Copy
{
"success": true,
"message": "Sandbox scenario updated",
"scenario": "critical"
}Errors Code Status Meaning 403403 Sandbox mode is not enabled for your account. 404404 Your account has no hosting-partner profile.
Create a sandbox endpoint POST /api/v1/sandbox/provision
Auth: Bearer API key Rate limit: Not rate limited (sandbox)
Create a simulated endpoint that reports mock scan data and never triggers real scans. Requires the X-Aegis-Sandbox: true header.
Body parameters Name Type Required Notes whmcs_product_idinteger Optional WHMCS product to associate with the mock endpoint. nicknamestring Optional Display name for the mock endpoint.max:255
Example request Copy
curl -X POST 'https://portal.example.com/api/v1/sandbox/provision' \
-H 'Authorization: Bearer $AEGIS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"whmcs_product_id": 12,
"nickname": "Test endpoint"
}'Response: 201 Copy
{
"success": true,
"sandbox": true,
"endpoint_id": "9f2c1e4a-5b6d-4e7f-8a9b-0c1d2e3f4a5b",
"ip_address": "192.0.2.24",
"nickname": "Test endpoint",
"message": "Sandbox endpoint created successfully (no real scans)"
}Errors Code Status Meaning 400400 The X-Aegis-Sandbox: true header is missing. SANDBOX_DISABLED403 Sandbox mode is not enabled for your account (it auto-disables after onboarding completes). 404404 Your account has no hosting-partner profile.
Suspend a sandbox endpoint POST /api/v1/sandbox/suspend
Auth: Bearer API key Rate limit: Not rate limited (sandbox)
Simulate suspending a sandbox endpoint. Requires the X-Aegis-Sandbox: true header.
Body parameters Name Type Required Notes endpoint_iduuid Required The sandbox endpoint UUID.
Example request Copy
curl -X POST 'https://portal.example.com/api/v1/sandbox/suspend' \
-H 'Authorization: Bearer $AEGIS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"endpoint_id": "9f2c1e4a-5b6d-4e7f-8a9b-0c1d2e3f4a5b"
}'Response: 200 Copy
{
"success": true,
"sandbox": true,
"message": "Sandbox endpoint suspended successfully (simulated)"
}Errors Code Status Meaning 400400 The X-Aegis-Sandbox: true header is missing. SANDBOX_DISABLED403 Sandbox mode is not enabled for your account.
Unsuspend a sandbox endpoint POST /api/v1/sandbox/unsuspend
Auth: Bearer API key Rate limit: Not rate limited (sandbox)
Simulate unsuspending a sandbox endpoint. Requires the X-Aegis-Sandbox: true header.
Body parameters Name Type Required Notes endpoint_iduuid Required The sandbox endpoint UUID.
Example request Copy
curl -X POST 'https://portal.example.com/api/v1/sandbox/unsuspend' \
-H 'Authorization: Bearer $AEGIS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"endpoint_id": "9f2c1e4a-5b6d-4e7f-8a9b-0c1d2e3f4a5b"
}'Response: 200 Copy
{
"success": true,
"sandbox": true,
"message": "Sandbox endpoint unsuspended successfully (simulated)"
}Errors Code Status Meaning 400400 The X-Aegis-Sandbox: true header is missing. SANDBOX_DISABLED403 Sandbox mode is not enabled for your account.
Terminate a sandbox endpoint POST /api/v1/sandbox/terminate
Auth: Bearer API key Rate limit: Not rate limited (sandbox)
Simulate terminating a sandbox endpoint (the mock endpoint is deleted). Requires the X-Aegis-Sandbox: true header.
Body parameters Name Type Required Notes endpoint_iduuid Required The sandbox endpoint UUID.
Example request Copy
curl -X POST 'https://portal.example.com/api/v1/sandbox/terminate' \
-H 'Authorization: Bearer $AEGIS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"endpoint_id": "9f2c1e4a-5b6d-4e7f-8a9b-0c1d2e3f4a5b"
}'Response: 200 Copy
{
"success": true,
"sandbox": true,
"message": "Sandbox endpoint terminated successfully (simulated)"
}Errors Code Status Meaning 400400 The X-Aegis-Sandbox: true header is missing. SANDBOX_DISABLED403 Sandbox mode is not enabled for your account.