CTIX
Network live
CTIXPOST

Create Threat Bulletin

Source docs
POSThttps://cs-testv2.cyware.com/ctixapi/conversion/threat-bulletin/

Creates a threat bulletin.

Body Parameters

NameTypeRequiredDescription
titlestringrequired

Pass the title for the threat bulletin.

descriptionstringoptional

Pass the description for the threat bulletin.

statusstringoptional

Pass the status of the creation of the threat bulletin.

tlpstringoptional

Pass the TLP for the threat bulletin.

server_collectionsarrayoptional

Pass the list of server collections.

tagsarrayoptional

Pass the collection name.

attachmentsarrayoptional

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.

CTIXConnect to Intel ExchangeRequired to change data
Credentials required for POST

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.

Request body (JSON)Valid JSON
cURL
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.

JavaScript
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.

Python
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.

Request Body
{
  "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.

Example Response
{
  "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.