Create a basic (standard) report in Intel Exchange.
NOTE Do not use this endpoint to create advanced reports.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | required | Pass the type of report to be created. |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | required | Pass the name of the report. |
| type | string | required | Pass the type of report to be created. |
| basic_report_type | string | optional | Pass the type of basic report to be created. |
| shared_type | string | required | Pass the share type value. |
| saved_search | object | required | Pass the saved search or custom query details used for generating the report. You can use the List Saved Search endpoint to retrieve the required details. |
| schedule | object | required | Pass the schedule details such as repeat type, start date and time, duration time, duration value, and repeat value. |
| file_types | array | required | Pass the report type. |
| columns | array | required | Pass the list of columns to be displayed in a basic report. |
| internal_recipients | object | optional | Pass the list of internal recipients with whom to share the report. |
| query_key | string | optional | Pass the key to sort data in the report. |
| external_recipients | object | optional | Pass the list of external recipients (outside Intel Exchange) with whom to share the report. |
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/ingestion/reports/?type=basic&AccessID=%3Cyour%20access%20id%3E&Signature=%3Cyour%20signature%3E&Expires=%3Cyour%20expires%3E" \
--data '{
"name": "Intel Exchange report",
"type": "basic",
"basic_report_type": "custom",
"shared_type": "global",
"saved_search": {},
"schedule": {},
"file_types": [
"csv"
],
"columns": [
{}
],
"internal_recipients": {},
"query_key": "",
"external_recipients": {}
}'View-only example — running live API calls requires a role with snippet testing access.
const url = "https://cs-testv2.cyware.com/ctixapi/ingestion/reports/?type=basic&AccessID=%3Cyour%20access%20id%3E&Signature=%3Cyour%20signature%3E&Expires=%3Cyour%20expires%3E";
const response = await fetch(url, {
method: "POST",
headers: {},
body: JSON.stringify({
"name": "Intel Exchange report",
"type": "basic",
"basic_report_type": "custom",
"shared_type": "global",
"saved_search": {},
"schedule": {},
"file_types": [
"csv"
],
"columns": [
{}
],
"internal_recipients": {},
"query_key": "",
"external_recipients": {}
}),
});
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/ingestion/reports/"
params = {
"type": "basic",
"AccessID": "<your access id>",
"Signature": "<your signature>",
"Expires": "<your expires>"
}
headers = {}
payload = {
"name": "Intel Exchange report",
"type": "basic",
"basic_report_type": "custom",
"shared_type": "global",
"saved_search": {},
"schedule": {},
"file_types": [
"csv"
],
"columns": [
{}
],
"internal_recipients": {},
"query_key": "",
"external_recipients": {}
}
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.
{
"name": "Intel Exchange report",
"type": "basic",
"basic_report_type": "custom",
"shared_type": "global",
"saved_search": {},
"schedule": {},
"file_types": [
"csv"
],
"columns": [
{}
],
"internal_recipients": {},
"query_key": "",
"external_recipients": {}
}View-only example — running live API calls requires a role with snippet testing access.
{
"basic_report_type": "custom",
"columns": [
{}
],
"created": 1692188813,
"created_by": {},
"date_last_run": {},
"external_recipients": {},
"file_types": [
"csv"
],
"id": "334c3ff3-bfcc-402c-ad6a-e13cb830a602",
"internal_recipients": {},
"modified": 1692188813,
"modified_by": {},
"name": "Vulnerability Report",
"query_key": "ctix_created",
"saved_search": {},
"schedule": {},
"shared_type": "global",
"type": "basic"
}View-only example — running live API calls requires a role with snippet testing access.