Creates a threat bulletin.
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. |
| status | string | optional | Pass the status of the creation of the threat bulletin. |
| tlp | string | optional | Pass the TLP for the threat bulletin. |
| server_collections | array | optional | Pass the list of server collections. |
| tags | array | optional | Pass the collection name. |
| attachments | array | optional | Pass the list of attachments. |
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 POST \
--url "https://cs-testv2.cyware.com/ctixapi/conversion/threat-bulletin/?AccessID=%3Cyour%20access%20id%3E&Signature=%3Cyour%20signature%3E&Expires=%3Cyour%20expires%3E" \
--data '{
"title": "yoyo",
"description": "<table class='' style='width: 91%; margin-left: calc(9%);'><tbody> <tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-new='1.2.1.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>1.2.1.1</td></tr><tr :data-new='3.3.2.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>3.3.2.1</td></tr><tr :data-new='33.22.1.11'><td style='width: 50.0000%;' class=''>ipv4</td><td style='width: 50.0000%;'>33.22.1.11</td></tr><tr :data-new='google.com'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-new='Graphite'><td style='width: 50.0000%;'>Malware</td><td style='width: 50.0000%;'>Graphite</td></tr></tbody></table><table class='' style='width: 91%; margin-left: calc(9%);'><tbody><tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-cql='b24f49e0-a411-4a0a-9b57-6e2628fe299f'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>testing3.com</td></tr><tr :data-cql='05e7ca93-4135-491a-8c52-02ff16137b55'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>94.140.112.178</td></tr><tr :data-cql='663cafd3-e74a-4ed1-89d2-a151c0343b2c'><td style='width: 50.0000%;'>ipv4</td><td style='width: 50.0000%;'>12.22.33.44</td></tr><tr :data-cql='e926e6bb-7125-4037-90e5-1a820f1a8523'><td style='width: 50.0000%;>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-cql='60db773b-387c-4cbb-b23a-6e7e73924d21'><td style='width: 50.0000%;'>Identity</td><td style='width: 50.0000%;'>Media</td></tr></tbody></table>'",
"status": "CREATED",
"tlp": "RED",
"server_collections": [
{}
],
"tags": [
{}
],
"attachments": [
{}
]
}'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/?AccessID=%3Cyour%20access%20id%3E&Signature=%3Cyour%20signature%3E&Expires=%3Cyour%20expires%3E";
const response = await fetch(url, {
method: "POST",
headers: {},
body: JSON.stringify({
"title": "yoyo",
"description": "<table class='' style='width: 91%; margin-left: calc(9%);'><tbody> <tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-new='1.2.1.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>1.2.1.1</td></tr><tr :data-new='3.3.2.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>3.3.2.1</td></tr><tr :data-new='33.22.1.11'><td style='width: 50.0000%;' class=''>ipv4</td><td style='width: 50.0000%;'>33.22.1.11</td></tr><tr :data-new='google.com'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-new='Graphite'><td style='width: 50.0000%;'>Malware</td><td style='width: 50.0000%;'>Graphite</td></tr></tbody></table><table class='' style='width: 91%; margin-left: calc(9%);'><tbody><tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-cql='b24f49e0-a411-4a0a-9b57-6e2628fe299f'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>testing3.com</td></tr><tr :data-cql='05e7ca93-4135-491a-8c52-02ff16137b55'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>94.140.112.178</td></tr><tr :data-cql='663cafd3-e74a-4ed1-89d2-a151c0343b2c'><td style='width: 50.0000%;'>ipv4</td><td style='width: 50.0000%;'>12.22.33.44</td></tr><tr :data-cql='e926e6bb-7125-4037-90e5-1a820f1a8523'><td style='width: 50.0000%;>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-cql='60db773b-387c-4cbb-b23a-6e7e73924d21'><td style='width: 50.0000%;'>Identity</td><td style='width: 50.0000%;'>Media</td></tr></tbody></table>'",
"status": "CREATED",
"tlp": "RED",
"server_collections": [
{}
],
"tags": [
{}
],
"attachments": [
{}
]
}),
});
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/"
params = {
"AccessID": "<your access id>",
"Signature": "<your signature>",
"Expires": "<your expires>"
}
headers = {}
payload = {
"title": "yoyo",
"description": "<table class='' style='width: 91%; margin-left: calc(9%);'><tbody> <tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-new='1.2.1.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>1.2.1.1</td></tr><tr :data-new='3.3.2.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>3.3.2.1</td></tr><tr :data-new='33.22.1.11'><td style='width: 50.0000%;' class=''>ipv4</td><td style='width: 50.0000%;'>33.22.1.11</td></tr><tr :data-new='google.com'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-new='Graphite'><td style='width: 50.0000%;'>Malware</td><td style='width: 50.0000%;'>Graphite</td></tr></tbody></table><table class='' style='width: 91%; margin-left: calc(9%);'><tbody><tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-cql='b24f49e0-a411-4a0a-9b57-6e2628fe299f'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>testing3.com</td></tr><tr :data-cql='05e7ca93-4135-491a-8c52-02ff16137b55'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>94.140.112.178</td></tr><tr :data-cql='663cafd3-e74a-4ed1-89d2-a151c0343b2c'><td style='width: 50.0000%;'>ipv4</td><td style='width: 50.0000%;'>12.22.33.44</td></tr><tr :data-cql='e926e6bb-7125-4037-90e5-1a820f1a8523'><td style='width: 50.0000%;>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-cql='60db773b-387c-4cbb-b23a-6e7e73924d21'><td style='width: 50.0000%;'>Identity</td><td style='width: 50.0000%;'>Media</td></tr></tbody></table>'",
"status": "CREATED",
"tlp": "RED",
"server_collections": [
{}
],
"tags": [
{}
],
"attachments": [
{}
]
}
response = requests.request("POST", 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": "yoyo",
"description": "<table class='' style='width: 91%; margin-left: calc(9%);'><tbody> <tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-new='1.2.1.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>1.2.1.1</td></tr><tr :data-new='3.3.2.1'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>3.3.2.1</td></tr><tr :data-new='33.22.1.11'><td style='width: 50.0000%;' class=''>ipv4</td><td style='width: 50.0000%;'>33.22.1.11</td></tr><tr :data-new='google.com'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-new='Graphite'><td style='width: 50.0000%;'>Malware</td><td style='width: 50.0000%;'>Graphite</td></tr></tbody></table><table class='' style='width: 91%; margin-left: calc(9%);'><tbody><tr><td style='width: 50.0000%;'>Object Type</td><td style='width: 50.0000%;' class=''>Value</td></tr><tr :data-cql='b24f49e0-a411-4a0a-9b57-6e2628fe299f'><td style='width: 50.0000%;'>Domain</td><td style='width: 50.0000%;'>testing3.com</td></tr><tr :data-cql='05e7ca93-4135-491a-8c52-02ff16137b55'><td style='width: 50.0000%;'>Ipv4</td><td style='width: 50.0000%;'>94.140.112.178</td></tr><tr :data-cql='663cafd3-e74a-4ed1-89d2-a151c0343b2c'><td style='width: 50.0000%;'>ipv4</td><td style='width: 50.0000%;'>12.22.33.44</td></tr><tr :data-cql='e926e6bb-7125-4037-90e5-1a820f1a8523'><td style='width: 50.0000%;>Domain</td><td style='width: 50.0000%;'>google.com</td></tr><tr :data-cql='60db773b-387c-4cbb-b23a-6e7e73924d21'><td style='width: 50.0000%;'>Identity</td><td style='width: 50.0000%;'>Media</td></tr></tbody></table>'",
"status": "CREATED",
"tlp": "RED",
"server_collections": [
{}
],
"tags": [
{}
],
"attachments": [
{}
]
}View-only example — running live API calls requires a role with snippet testing access.
{
"id": "4d01804f-86b8-48d7-9afd-a1bbb65e7bc3",
"created": "2022-02-12T18:05:16.830634Z",
"modified": "2022-02-12T18:05:16.830634Z",
"object_id": {},
"created_by": "38f5828c-74b6-43b5-91f3-4f653ddf85c6",
"modified_by": "38f5828c-74b6-43b5-91f3-4f653ddf85c6",
"name": "my_bulletin1",
"status": "DRAFT",
"tags": "[{\"colour_code\": null, \"created\": 1627778138.196819, \"modified_by\": \"system@default.tld\", \"name\": \"espionage\", \"modified\": 1627778138.197279, \"id\": \"2a1218ae-8560-4c5b-a4d0-edadd25f9710\", \"created_by\": \"system@default.tld\"}, {\"colour_code\": null, \"created\": 1626170193.96807, \"modified_by\": \"system@default.tld\", \"name\": \"APT29\", \"modified\": 1626170193.968943, \"id\": \"8f60e945-a5bc-4d76-ae5f-d83bea1d7b6d\", \"created_by\": \"system@default.tld\"}, {\"colour_code\": null, \"created\": 1628756542.839106, \"modified_by\": \"system@default.tld\", \"name\": \"wellmail\", \"modified\": 1628756542.839431, \"id\": \"9283f065-f057-4ed5-8bcc-f2aa162514c3\", \"created_by\": \"system@default.tld\"}, {\"colour_code\": null, \"created\": 1628756542.83903, \"modified_by\": \"system@default.tld\", \"name\": \"wellmess\", \"modified\": 1628756542.839391, \"id\": \"9a58306f-81df-4f36-8e3a-fb425c7b3b4e\", \"created_by\": \"system@default.tld\"}]",
"score": {},
"tlp": {},
"server_collections": "[]"
}View-only example — running live API calls requires a role with snippet testing access.