Environments
Environments represent physical or logical sites in your OT/ICS infrastructure. Each environment contains assets, which are matched against the CVE corpus to produce findings.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/environments | List all environments |
| POST | /api/v1/environments | Create environment |
| GET | /api/v1/environments/{env_id} | Get environment detail |
| PUT | /api/v1/environments/{env_id} | Update environment |
| DELETE | /api/v1/environments/{env_id} | Delete environment |
| GET | /api/v1/environments/{env_id}/summary | Risk summary |
| GET | /api/v1/environments/{env_id}/assets | List assets |
| POST | /api/v1/environments/{env_id}/assets | Add asset |
| PUT | /api/v1/environments/{env_id}/assets/{asset_id} | Update asset |
| DELETE | /api/v1/environments/{env_id}/assets/{asset_id} | Remove asset |
| POST | /api/v1/environments/{env_id}/assets/csv-preview | Preview CSV import |
| POST | /api/v1/environments/{env_id}/assets/csv-commit | Commit CSV import |
| GET | /api/v1/environments/template/csv | Download CSV template |
| POST | /api/v1/environments/{env_id}/matches/{match_id}/acknowledge | Acknowledge finding |
| POST | /api/v1/environments/{env_id}/matches/{match_id}/restore | Restore dismissed finding |
| GET | /api/v1/environments/{env_id}/tickets | List tickets |
| POST | /api/v1/environments/{env_id}/tickets | Create ticket |
| POST | /api/v1/environments/{env_id}/findings/share | Share findings |
Create an Environment
curl -X POST \
-H "Authorization: Bearer bs_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Water Treatment Plant Alpha",
"description": "Primary treatment facility",
"site_type": "water-treatment",
"criticality": "high"
}' \
"https://breachspider.com/api/v1/environments"
Add Assets
curl -X POST \
-H "Authorization: Bearer bs_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "SCADA Workstation 01",
"vendor": "Siemens",
"product": "SIMATIC S7-1500",
"version": "2.9.4",
"ip_address": "192.168.10.15",
"asset_type": "PLC",
"layer": "OT"
}' \
"https://breachspider.com/api/v1/environments/5/assets"
CSV Bulk Import
Download the template, fill it in, preview then commit.
# Step 1 - get template
curl -H "Authorization: Bearer bs_live_..." \
"https://breachspider.com/api/v1/environments/template/csv" \
-o asset_template.csv
# Step 2 - preview (dry run, no changes)
curl -X POST \
-H "Authorization: Bearer bs_live_..." \
-F "[email protected]" \
"https://breachspider.com/api/v1/environments/5/assets/csv-preview"
# Step 3 - commit if preview looks correct
curl -X POST \
-H "Authorization: Bearer bs_live_..." \
-F "[email protected]" \
"https://breachspider.com/api/v1/environments/5/assets/csv-commit"
Acknowledge a Finding
When your team has reviewed a CVE match and taken action:
curl -X POST \
-H "Authorization: Bearer bs_live_..." \
-H "Content-Type: application/json" \
-d '{
"reason": "compensating_control",
"notes": "Network segment isolated, vendor patch scheduled for next maintenance window"
}' \
"https://breachspider.com/api/v1/environments/5/matches/1234/acknowledge"
Acknowledgment reasons: not_applicable, compensating_control, accepted_risk, false_match, escalated