GET /v1/organizations/{org_id}/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.
Request
Section titled “Request”GET /api/v1/organizations/{org_id}/projects/{project_id}/stackAuthorization: Bearer twa_your_key_herePath Parameters
Section titled “Path Parameters”| Parameter | Type | Description |
|---|---|---|
org_id |
UUID |
Organization identifier |
project_id |
UUID |
Project identifier |
Response 200 OK
Section titled “Response 200 OK”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", "tags": [] }, { "id": "018e5555-0000-7000-8000-000000000022", "item_type": "product", "value": "nginx", "min_severity": "CRITICAL", "tags": [ { "id": "018ec0de-0000-7000-8000-0000000000a1", "name": "production", "color": "#ef4444" } ] }, { "id": "018e5555-0000-7000-8000-000000000023", "item_type": "product", "value": "log4j", "min_severity": "MEDIUM", "tags": [] } ] }]Fields — Stack
Section titled “Fields — Stack”| Field | Type | Description |
|---|---|---|
id |
string (UUID) |
Stack identifier |
name |
string |
Stack name (usually "Stack") |
project_id |
string (UUID) | null |
Associated project |
items |
array |
Monitoring items |
Fields — Item
Section titled “Fields — Item”| Field | Type | Description |
|---|---|---|
id |
string (UUID) |
Item identifier |
item_type |
"vendor" | "product" |
Monitoring type |
value |
string |
Monitored value (vendor or product name, lowercase) |
min_severity |
string | null |
CRITICAL, HIGH, MEDIUM, LOW or NONE (any CVE). null: the entry inherits the project’s prioritisation policy |
tags |
array<Tag> |
Tags assigned to this stack item. Each tag: { id, name, color } (color #rrggbb). Empty array if none. |
Item Types
Section titled “Item Types”item_type |
Behaviour |
|---|---|
vendor |
All CVEs affecting any product from this vendor |
product |
CVEs affecting this specific product, regardless of vendor |
Errors
Section titled “Errors”| Code | Detail | Cause |
|---|---|---|
404 |
Projet introuvable |
Project does not exist, belongs to another organization, or is outside the key’s project restriction |
403 |
Cette clé API n'a pas le droit d'accéder à cette ressource. |
The stack scope is missing from the key |
Examples
Section titled “Examples”List all monitored products for a project
curl -s \ -H "Authorization: Bearer twa_your_key_here" \ "https://app.techwatchalert.com/api/v1/organizations/018e5678-abcd-7000-8000-000000000001/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"}org_id = "018e5678-abcd-7000-8000-000000000001"project_id = "018e1234-abcd-7000-8000-000000000010"
stacks = httpx.get(f"{BASE_URL}/organizations/{org_id}/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)