Updates the threat bulletin.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| threat_bulletin_id | string | optional | Pass the threat bulletin ID. |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | required | Pass the title for the threat bulletin. |
| description | string | optional | Pass the description for the threat bulletin. |
| tags | array | optional | Pass the list of tags. |
| server_collections | array | optional | Pass the list of server collections. |
| status | string | optional | Pass the status of creation. |
Run it
Use the Request parameters panel to enter path IDs, query values, JSON body, and credentials. Then run any snippet below — all languages use the same values. Base URL: https://cs-testv2.cyware.com/ctixapi (change in API Settings).
Playground
Request parameters
Edit values here before running any snippet below (cURL, JavaScript, or Python). Code blocks are reference only — your inputs above are what gets sent.
Open API (HMAC signature) · Get credentials from Cyware Admin → Open API → Generate Credentials.
Signature and Expires are generated when you run a request. Access ID and Secret Key stay in memory for this tab only.
Credentials from Authentication auto-fill here for this product. If fields are empty after connecting, refresh this page or open the product docs again.
curl --request PUT \
--url "https://cs-testv2.cyware.com/ctixapi/conversion/threat-bulletin/e0ff6847-8657-4419-9b00-2e5b688e7827/?AccessID=%3Cyour%20access%20id%3E&Signature=%3Cyour%20signature%3E&Expires=%3Cyour%20expires%3E" \
--data '{
"title": "my_bulletin",
"description": "my_bulletin",
"tags": [],
"server_collections": [],
"status": "DRAFT"
}'View-only example — running live API calls requires a role with snippet testing access.
const url = "https://cs-testv2.cyware.com/ctixapi/conversion/threat-bulletin/e0ff6847-8657-4419-9b00-2e5b688e7827/?AccessID=%3Cyour%20access%20id%3E&Signature=%3Cyour%20signature%3E&Expires=%3Cyour%20expires%3E";
const response = await fetch(url, {
method: "PUT",
headers: {},
body: JSON.stringify({
"title": "my_bulletin",
"description": "my_bulletin",
"tags": [],
"server_collections": [],
"status": "DRAFT"
}),
});
const text = await response.text();
let data;
try { data = JSON.parse(text); } catch { data = text; }
console.log(response.status, data);View-only example — running live API calls requires a role with snippet testing access.
import requests
url = "https://cs-testv2.cyware.com/ctixapi/conversion/threat-bulletin/e0ff6847-8657-4419-9b00-2e5b688e7827/"
params = {
"AccessID": "<your access id>",
"Signature": "<your signature>",
"Expires": "<your expires>"
}
headers = {}
payload = {
"title": "my_bulletin",
"description": "my_bulletin",
"tags": [],
"server_collections": [],
"status": "DRAFT"
}
response = requests.request("PUT", url, params=params, headers=headers, json=payload)
print(response.status_code)
print(response.text)View-only example — running live API calls requires a role with snippet testing access.
{
"title": "my_bulletin",
"description": "my_bulletin",
"tags": [],
"server_collections": [],
"status": "DRAFT"
}View-only example — running live API calls requires a role with snippet testing access.
{
"id": "c96e8a8a-d9d6-4c2f-8def-9d08d628b157",
"title": "my_bulletin",
"created": 1708925624,
"modified": 1708926876,
"report_id": "13ad990c-2125-4546-89b3-fce8db538eeb",
"created_by": "a2b82e81-8e7d-4e68-8a36-3d2d9cd518ad",
"modified_by": "a2b82e81-8e7d-4e68-8a36-3d2d9cd518ad",
"status": "DRAFT",
"tags": [],
"description": "my_bulletin",
"tlp": {},
"server_collections": {},
"client_collections": {},
"received": false,
"published_on": {},
"attachments": [],
"metadata": "{\"is_added_object\":false,\"height\":640,\"width\":1064}",
"published": false,
"confidence": "MEDIUM"
}View-only example — running live API calls requires a role with snippet testing access.