Skip to content

GET /v1/projects/{id}/stack

The stack is the list of vendors and products monitored for a project. Each item also defines a minimum severity threshold above which a CVE alert is triggered.

GET /api/v1/projects/{project_id}/stack
Authorization: Bearer twa_your_key_here
ParameterTypeDescription
project_idUUIDProject identifier

Returns an array (a project can have multiple stacks, typically just one).

[
{
"id": "018e5555-0000-7000-8000-000000000020",
"name": "Stack",
"project_id": "018e1234-abcd-7000-8000-000000000010",
"items": [
{
"id": "018e5555-0000-7000-8000-000000000021",
"item_type": "vendor",
"value": "apache",
"min_severity": "HIGH"
},
{
"id": "018e5555-0000-7000-8000-000000000022",
"item_type": "product",
"value": "nginx",
"min_severity": "CRITICAL"
},
{
"id": "018e5555-0000-7000-8000-000000000023",
"item_type": "product",
"value": "log4j",
"min_severity": "MEDIUM"
}
]
}
]
FieldTypeDescription
idstring (UUID)Stack identifier
namestringStack name (usually "Stack")
project_idstring (UUID) | nullAssociated project
itemsarrayMonitoring items
FieldTypeDescription
idstring (UUID)Item identifier
item_type"vendor" | "product"Monitoring type
valuestringMonitored value (vendor or product name, lowercase)
min_severitystringMinimum threshold: CRITICAL, HIGH, MEDIUM, LOW, NONE
item_typeBehaviour
vendorAll CVEs affecting any product from this vendor
productCVEs affecting this specific product, regardless of vendor
CodeDetailCause
404Projet introuvableproject_id does not exist
403Accès refusé à ce projetProject exists but not accessible

List all monitored products for a project

Fenêtre de terminal
curl -s \
-H "Authorization: Bearer twa_your_key_here" \
"https://app.techwatchalert.com/api/v1/projects/018e1234-abcd-7000-8000-000000000010/stack" \
| jq '.[0].items[] | select(.item_type == "product") | .value'

Check if a product is being monitored

import httpx
BASE_URL = "https://app.techwatchalert.com/api/v1"
headers = {"Authorization": "Bearer twa_your_key_here"}
project_id = "018e1234-abcd-7000-8000-000000000010"
stacks = httpx.get(f"{BASE_URL}/projects/{project_id}/stack", headers=headers).json()
watched = {
item["value"]
for stack in stacks
for item in stack["items"]
}
print("nginx monitored:", "nginx" in watched)