Lists
A "list" is a curated bundle of STIGs that a user or organization tracks
together (e.g. "All Windows STIGs for our Air Force ATO"). Most endpoints accept
either a SAMS user token or an integration token scoped to lists:read;
mutation endpoints require a SAMS user token.
List user/org lists
GET /api/v1/lists
- Name
include- Type
- string
- Description
Pass
slugsto include each list's STIG slugs in the response.
Response
{
"lists": [
{
"id": "list-uuid",
"name": "Critical Systems",
"description": "STIGs for critical infrastructure",
"tags": ["critical"],
"color": "#FF5733",
"icon": "shield",
"visibility": "shared",
"stigCount": 8,
"stigSlugs": ["rhel-08", "windows-server-2022"],
"createdById": "user-uuid",
"createdByEmail": "ada@example.com",
"organizationId": "org-uuid",
"createdAt": "2026-05-15T10:30:00Z",
"updatedAt": "2026-05-20T14:22:00Z"
}
]
}
SAMS tokens see the user's own lists plus any SHARED lists in their org.
Integration tokens see only the lists they have been explicitly assigned to.
Create a list
POST /api/v1/lists
- Name
name- Type
- string
- Description
List name.
- Name
description- Type
- string
- Description
Free-form description.
- Name
tags- Type
- array
- Description
Array of string tags.
- Name
color- Type
- string
- Description
Hex color.
- Name
icon- Type
- string
- Description
Icon key (free-form string).
- Name
visibility- Type
- string
- Description
PRIVATE(default) orSHARED.
Returns 201 with the new list. 400 if name is missing.
Get a list
GET /api/v1/lists/{id}
Returns the list record (without the STIG findings — use the STIGs sub-resource for that).
Returns 404 if not found or the caller has no access.
Update a list
PATCH /api/v1/lists/{id}
Body accepts any subset of name, description, tags, color, icon,
visibility. Returns the updated list.
Delete a list
DELETE /api/v1/lists/{id}
Soft-deletes the list. Items are recoverable for 30 days, after which the
/api/cron/purge-deleted-lists job hard-deletes them. Only the creator can
delete.
Response
{
"success": true,
"message": "List deleted. It can be recovered within 30 days."
}
Duplicate a list
POST /api/v1/lists/{id}/duplicate
Creates a private copy of the list (and its STIG memberships) owned by the
caller. The new list is always created with PRIVATE visibility regardless of
the source.
Returns 201 with the new list.
Export a list
GET /api/v1/lists/{id}/export
- Name
id- Type
- string
- Description
List ID.
- Name
format- Type
- string
- Description
Export format:
json(default) orcsv.
{
"list": {
"id": "list-uuid",
"name": "Critical Systems",
"description": "..."
},
"stigs": [
{
"slug": "rhel-08",
"title": "RHEL 8 STIG",
"version": "1.5.0",
"status": "Accepted",
"statusDate": "2024-11-15",
"findingCount": 342,
"catI": 45,
"catII": 182,
"catIII": 115,
"addedAt": "2026-05-16T08:15:00Z"
}
]
}
List STIGs in a list
GET /api/v1/lists/{id}/stigs
- Name
id- Type
- string
- Description
List ID.
- Name
include- Type
- string
- Description
Pass
findingsto include each STIG's full finding records.
- Name
severity- Type
- string
- Description
Comma-separated severity filter applied to the included findings:
high,medium,low. STIGs with no matching findings are dropped from the result when this filter is set.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
limit- Type
- integer
- Description
Items per page (default:
50, max:100).
Response
{
"list": {
"id": "list-uuid",
"name": "Critical Systems",
"stigCount": 8
},
"stigs": [
{
"slug": "rhel-08",
"title": "RHEL 8 STIG",
"version": "1.5.0",
"status": "Accepted",
"statusDate": "2024-11-15",
"findingCount": 342,
"catI": 45,
"catII": 182,
"catIII": 115,
"addedAt": "2026-05-16T08:15:00Z",
"notes": "Critical system",
"findings": [
{
"groupId": "V-214010",
"ruleId": "SV-214010r814063_rule",
"ruleSeverity": "high",
"ruleTitle": "The Audit daemon must...",
"vulnDiscussion": "...",
"fixText": "...",
"checkContent": "..."
}
]
}
],
"pagination": { "page": 1, "limit": 50, "total": 8, "totalPages": 1 }
}
Add STIGs to a list
POST /api/v1/lists/{id}/stigs
- Name
slugs- Type
- array
- Description
Array of STIG slugs to add. Duplicates are silently ignored.
Response
{ "success": true, "added": 5, "total": 8 }
Remove STIGs from a list
DELETE /api/v1/lists/{id}/stigs
- Name
slugs- Type
- array
- Description
Array of STIG slugs to remove.
Response
{ "success": true, "removed": 2 }
Update a STIG entry's metadata
PUT /api/v1/lists/{id}/stigs/{stigSlug}
- Name
notes- Type
- string
- Description
Free-form notes for this STIG within this list.
- Name
position- Type
- integer
- Description
Display position (used for manual ordering in the UI).
Response
{
"stigSlug": "rhel-08",
"notes": "Critical system",
"position": 1,
"addedAt": "2026-05-16T08:15:00Z"
}
Returns 404 if the list or STIG entry is not found.