Software — Endpoints Reference
Programmatic access to the AlloyScan software catalog: list software products, change a product's compliance classification (its Software group), and review change history on the catalog.
Note: Endpoint paths and request schemas reflect AlloyScan REST conventions but may differ by release. Additional endpoints may be available — confirm against your instance's OpenAPI document.
All paths assume the base URL https://<your-instance>.alloyservice.com and require a bearer token in the Authorization header. See API Authentication.
Background
The software catalog is keyed by product name and version. Each Software Product carries a softwareGroup classification:
| Value | Meaning |
|---|---|
Regular |
Default — neither required nor forbidden |
Required |
Compliance flag — product is expected on in-scope devices |
Forbidden |
Compliance flag — product must not appear on in-scope devices |
Classification changes appear in the site Change log as Modified.
Endpoints
GET /api/v1/software
List software products in the catalog.
Request
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit |
query | integer | No | Max items to return (default 50) |
offset |
query | integer | No | Pagination offset |
groupBy |
query | string | No | One of name-version (default) or name |
softwareGroup |
query | string | No | Filter to Regular, Required, or Forbidden |
q |
query | string | No | Free-text query against product name |
Response 200
{
"items": [
{
"id": "<product-uuid>",
"name": "<product-name>",
"version": "<version>",
"publisher": "<publisher>",
"softwareGroup": "Regular",
"installations": 124
}
],
"total": 5421
}
When groupBy=name, items aggregate over versions and version is omitted.
GET /api/v1/software/{id}
Get a single software product by ID. Returns the full record including detected versions and the count of installations.
Response 200
{
"id": "<product-uuid>",
"name": "<product-name>",
"version": "<version>",
"publisher": "<publisher>",
"softwareGroup": "Required",
"installations": 124,
"firstSeen": "2025-11-02T10:00:00Z",
"lastSeen": "2026-04-23T12:34:56Z"
}
PATCH /api/v1/software/{id}
Change the compliance classification of a software product.
Request body
{ "softwareGroup": "Required" }
softwareGroup accepts Regular, Required, or Forbidden.
Response 200 — Returns the updated software product.
Errors
| Code | Meaning |
|---|---|
| 400 | Validation failed (unknown softwareGroup value) |
| 401 | Missing or invalid bearer token |
| 403 | Token lacks Administrator-equivalent privilege |
| 404 | Software product not found |
GET /api/v1/software/{id}/installations
List devices on which a given software product is currently installed.
Request
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit |
query | integer | No | Max items to return (default 50) |
offset |
query | integer | No | Pagination offset |
Response 200
{
"items": [
{
"deviceId": "<device-uuid>",
"deviceName": "<device-name>",
"installedVersion": "<version>",
"installDate": "2025-12-12T08:00:00Z"
}
],
"total": 124
}
GET /api/v1/software/change-history
List change events on the software catalog (additions, modifications, deletions). Mirrors the in-product Software change history view.
Request
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
from |
query | ISO 8601 date-time | No | Start of the window |
to |
query | ISO 8601 date-time | No | End of the window |
verb |
query | string | No | One of Added, Modified, Deleted |
Response 200
{
"items": [
{
"verb": "Modified",
"entity": "Software",
"entityId": "<product-uuid>",
"field": "softwareGroup",
"from": "Regular",
"to": "Required",
"actor": "<user-or-app-name>",
"timestamp": "2026-04-23T12:00:00Z"
}
],
"total": 17
}
Note: The full set of group filters and the exact change-history schema is finalising. Confirm against your instance's OpenAPI document.