API

HyperSec HyperCollector API

The HyperSec HyperCollector API is provided by the collector-api service. The service by default is bound to http://localhost:3001.

Login

post

Get the JWT for a user with data from OAuth2 request form body.

Body
grant_typestringOptionalPattern: password
usernamestringRequired
passwordstringRequired
scopestringOptionalDefault: ""
client_idstringOptional
client_secretstringOptional
otpstringOptional
Responses
200
Successful Response
application/json
post
POST /api/v1/auth/login HTTP/1.1
Host: 
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 123

"grant_type='text'&username='text'&password='text'&scope=''&client_id='text'&client_secret='text'&otp='text'"
{
  "access_token": "text",
  "token_type": "text"
}

Read Users Me

get

Fetch the current logged-in user.

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/auth/me HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "first_name": "text",
  "surname": "text",
  "email": "[email protected]",
  "is_superuser": false,
  "is_approved": false,
  "otp_secret": "text",
  "id": 1
}

Create User Signup

post

Create new user without the need to be logged in.

Body
first_namestringOptional
surnamestringOptional
emailstring · emailRequired
is_superuserbooleanOptionalDefault: false
is_approvedbooleanOptionalDefault: false
otp_secretstringOptional
passwordstringRequired
Responses
201
Successful Response
application/json
post
POST /api/v1/auth/signup HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 142

{
  "first_name": "text",
  "surname": "text",
  "email": "[email protected]",
  "is_superuser": false,
  "is_approved": false,
  "otp_secret": "text",
  "password": "text"
}
{
  "first_name": "text",
  "surname": "text",
  "email": "[email protected]",
  "is_superuser": false,
  "is_approved": false,
  "otp_secret": "text",
  "id": 1
}

Update Password

put

password change for authenticated user

Authorizations
Query parameters
emailstringRequired
current_passwordstringRequired
new_passwordstringRequired
Responses
200
Successful Response
application/json
put
PUT /api/v1/usermgmt/password?email=text&current_password=text&new_password=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "first_name": "text",
  "surname": "text",
  "email": "[email protected]",
  "is_superuser": false,
  "is_approved": false,
  "otp_secret": "text"
}

Get All Users

get

for admin-role only: Fetch the all users

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/usermgmt/users HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "users": [
    {
      "first_name": "text",
      "surname": "text",
      "email": "[email protected]",
      "is_superuser": false,
      "is_approved": false,
      "otp_secret": "text"
    }
  ]
}

Update User

put

for admin-role only: update user

Authorizations
Query parameters
emailstringRequired
Body
first_namestringOptional
surnamestringOptional
is_superuserbooleanOptionalDefault: false
is_approvedbooleanOptionalDefault: false
otp_secretstringOptional
Responses
200
Successful Response
application/json
put
PUT /api/v1/usermgmt/users?email=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 99

{
  "first_name": "text",
  "surname": "text",
  "is_superuser": false,
  "is_approved": false,
  "otp_secret": "text"
}
{
  "first_name": "text",
  "surname": "text",
  "email": "[email protected]",
  "is_superuser": false,
  "is_approved": false,
  "otp_secret": "text"
}

Get Pending Users

get

for admin-role only: Fetch the all pending users

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/usermgmt/users/pending HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "users": [
    {
      "first_name": "text",
      "surname": "text",
      "email": "[email protected]",
      "is_superuser": false,
      "is_approved": false,
      "otp_secret": "text"
    }
  ]
}

Get Approved Users

get

for admin-role only: Fetch the all approved users

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/usermgmt/users/approved HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "users": [
    {
      "first_name": "text",
      "surname": "text",
      "email": "[email protected]",
      "is_superuser": false,
      "is_approved": false,
      "otp_secret": "text"
    }
  ]
}

Fetch System Hostname

get

Get system hostname

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/hostname HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "hostname": "text"
}

Update System Hostname

put

Update the system hostname.

Authorizations
Body
hostnamestringRequired
Responses
201
Successful Response
application/json
put
PUT /api/v1/system/hostname HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "hostname": "text"
}
{
  "hostname": "text"
}

Fetch Org Id

get

Get org id

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/org_id HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "org_id": "text"
}

Update System Org Id

put

Update the system hostname.

Authorizations
Body
org_idstringRequired
Responses
201
Successful Response
application/json
put
PUT /api/v1/system/org_id HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "org_id": "text"
}
{
  "org_id": "text"
}

Fetch Site Id

get

Get site id

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/site_id HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "site_id": "text"
}

Update System Site Id

put

Update the system hostname.

Authorizations
Body
site_idstringRequired
Responses
201
Successful Response
application/json
put
PUT /api/v1/system/site_id HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 18

{
  "site_id": "text"
}
{
  "site_id": "text"
}

Fetch Timezone

get

Get timezone id

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/timezone HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "timezone": "text"
}

Update System Timezone

put

Update the system hostname.

Authorizations
Body
timezonestringRequired
Responses
201
Successful Response
application/json
put
PUT /api/v1/system/timezone HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "timezone": "text"
}
{
  "timezone": "text"
}

Fetch System Uptime

get

Get system uptime since last boot

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/uptime HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "secs": 1,
  "human_readable": "text"
}

Fetch Network Ip Addresses

get

Get IP Usage Information for system

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/ip_addresses HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "ip_addresses": [
    "text"
  ]
}

Fetch Users

get

Get IP Usage Information for system

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/users HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "users": [
    {
      "username": "text",
      "terminal": "text",
      "host": "text",
      "logged_in": "text",
      "duration": "text",
      "active": false
    }
  ]
}

Fetch System Partitions

get

Retrieve partition usage on the system (real partitions)

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/partitions HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "partitions": [
    {
      "mount_point": "text",
      "disk_total_bytes": 1,
      "disk_total_human_readable": "text",
      "disk_used_bytes": 1,
      "disk_used_human_readable": "text",
      "disk_free_bytes": 1,
      "disk_free_human_readable": "text",
      "disk_usage_percent": 1
    }
  ]
}

Fetch System Information

get

Fetch all system information in one hit

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/system/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "users": [
    {
      "username": "text",
      "terminal": "text",
      "host": "text",
      "logged_in": "text",
      "duration": "text",
      "active": false
    }
  ],
  "partitions": [
    {
      "mount_point": "text",
      "disk_total_bytes": 1,
      "disk_total_human_readable": "text",
      "disk_used_bytes": 1,
      "disk_used_human_readable": "text",
      "disk_free_bytes": 1,
      "disk_free_human_readable": "text",
      "disk_usage_percent": 1
    }
  ],
  "ip_addresses": [
    "text"
  ],
  "uptime": {
    "secs": 1,
    "human_readable": "text"
  },
  "hostname": "text"
}

Setup Network Time Protocol

post

Setup Network Time Protocol

Authorizations
Body
Responses
200
Successful Response
application/json
post
POST /api/v1/networks/ntp HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "ip_addresses": [
    {
      "ip_address": "text",
      "port": "text"
    }
  ]
}
{
  "ip_addresses": [
    {
      "id": 1,
      "ip_address": "text",
      "port": "text"
    }
  ]
}

Delete Network Time Protocol

delete

Delete Network Time Protocol

Authorizations
Query parameters
ip_addressstringRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/networks/ntp?ip_address=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "NTP with IP Address: {ip_address} deleted."
}

Fetch All Network Time Protocol

get

Get all Network Time Protocol

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/networks/ntps HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "ip_addresses": [
    {
      "id": 1,
      "ip_address": "text",
      "port": "text"
    }
  ]
}

Fetch All Domain Name System

get

Get all Domain Name Systems

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/networks/dns HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "result": [
    {
      "id": 1,
      "ip_address": "text",
      "port": "text"
    }
  ]
}

Setup Domain Name System

post

Add Domain Name System

Authorizations
Body
Responses
200
Successful Response
application/json
post
POST /api/v1/networks/dns HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 51

{
  "hostnames": [
    {
      "ip_address": "text",
      "port": "text"
    }
  ]
}
{
  "result": [
    {
      "id": 1,
      "ip_address": "text",
      "port": "text"
    }
  ]
}

Delete Domain Name System

delete

Delete Domain Name System

Authorizations
Query parameters
ip_addressstringRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/networks/dns?ip_address=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "DNS with IP Address: {ip_address} deleted."
}

Create Static Route

post

Route all traffic

Authorizations
Body
Responses
200
Successful Response
application/json
post
POST /api/v1/networks/static-route HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 55

{
  "routes": [
    {
      "to": "text",
      "via": "text",
      "device": "text"
    }
  ]
}
{
  "routes": [
    {
      "id": 1,
      "to": "text",
      "via": "text",
      "device": "text"
    }
  ]
}

Delete Static Route

delete

Delete Static Route

Authorizations
Query parameters
static_route_idintegerRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/networks/static-route?static_route_id=1 HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "StaticRoute with ID: {id} deleted."
}

Fetch Static Routes

get

Get all Static Routes

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/networks/static-routes HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "routes": [
    {
      "id": 1,
      "to": "text",
      "via": "text",
      "device": "text"
    }
  ]
}

Fetch Ip Address Management

get

Get IP Address Event Receiver and Management Interfaces

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/networks/ip-mgmt HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "ip_management": [
    {
      "type": "text",
      "iface": "text",
      "family": "text",
      "ip_address": "text",
      "netmask": "text",
      "gateway": "text"
    }
  ]
}

Setup Ip Address Management

post

Add IP Address Event Receiver and Management Interfaces

Authorizations
Body
Responses
200
Successful Response
application/json
post
POST /api/v1/networks/ip-mgmt HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 190

{
  "mgmt": {
    "iface": "text",
    "family": "text",
    "ip_address": "text",
    "netmask": "text",
    "gateway": "text"
  },
  "event": {
    "iface": "text",
    "family": "text",
    "ip_address": "text",
    "netmask": "text",
    "gateway": "text"
  }
}
{
  "ip_management": [
    {
      "type": "text",
      "iface": "text",
      "family": "text",
      "ip_address": "text",
      "netmask": "text",
      "gateway": "text"
    }
  ]
}

Update Ip Address Management

put

Update ip management in the database.

Authorizations
Body
Responses
201
Successful Response
application/json
put
PUT /api/v1/networks/ip-mgmt HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 190

{
  "mgmt": {
    "iface": "text",
    "family": "text",
    "ip_address": "text",
    "netmask": "text",
    "gateway": "text"
  },
  "event": {
    "iface": "text",
    "family": "text",
    "ip_address": "text",
    "netmask": "text",
    "gateway": "text"
  }
}
{
  "ip_management": [
    {
      "type": "text",
      "iface": "text",
      "family": "text",
      "ip_address": "text",
      "netmask": "text",
      "gateway": "text"
    }
  ]
}

Delete Ip Address Management

delete

Delete IP Management Data

Authorizations
Query parameters
ip_typestringOptionalDefault: mgmt or event
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/networks/ip-mgmt HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "IPMgmt with type: {type} deleted."
}

Fetch Syslog Ports

get

Fetch all syslog port mappings

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/syslog/port HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "results": [
    {
      "id": 1,
      "port": 1,
      "label": "text",
      "protocols": [
        {
          "protocol": "text"
        }
      ]
    }
  ]
}

Create Syslog Port

post

Create a new syslog port listener in the database.

Authorizations
Body
idintegerOptional
portintegerOptional
labelstringOptional
Responses
201
Successful Response
application/json
post
POST /api/v1/syslog/port HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 66

{
  "id": 1,
  "port": 1,
  "label": "text",
  "protocols": [
    {
      "protocol": "text"
    }
  ]
}
{
  "id": 1,
  "port": 1,
  "label": "text",
  "protocols": [
    {
      "protocol": "text"
    }
  ]
}

Update Syslog Port

put

Update a syslog port listener in the database.

Authorizations
Body
idintegerOptional
portintegerOptional
labelstringOptional
Responses
201
Successful Response
application/json
put
PUT /api/v1/syslog/port HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 66

{
  "id": 1,
  "port": 1,
  "label": "text",
  "protocols": [
    {
      "protocol": "text"
    }
  ]
}
{
  "id": 1,
  "port": 1,
  "label": "text",
  "protocols": [
    {
      "protocol": "text"
    }
  ]
}

Delete Syslog Port

delete
Authorizations
Path parameters
portstringRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/syslog/port/{port} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "Syslog Port with Port: {port} deleted."
}

Fetch Service

get

Fetch a single service by Name

Authorizations
Path parameters
namestringRequired
Responses
200
Successful Response
application/json
get
GET /api/v1/service/{name} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "name": "service name",
  "type": "either source or sink",
  "module": "module",
  "enabled": false,
  "is_default": false,
  "tls": {
    "enabled": false,
    "verify_hostname": false,
    "verify_certificate": false,
    "passphrase": ""
  },
  "certificates": [
    {
      "filename": "text",
      "id": 1,
      "type": "text",
      "filesize": 0,
      "data": "text",
      "created": "2025-06-21T18:18:53.548Z",
      "modified": "2025-06-21T18:18:53.548Z"
    }
  ],
  "events": {
    "static_events": [
      {
        "id": 1,
        "type": "text"
      }
    ],
    "syslog_ports": [
      {
        "id": 1,
        "port": 1,
        "label": "text",
        "protocols": [
          {
            "protocol": "text"
          }
        ]
      }
    ]
  },
  "modules": {
    "sink": {
      "http": {
        "uri": "text",
        "method": "text",
        "compression": "text",
        "strategy": "text",
        "auth_user": "text",
        "auth_password": "text",
        "auth_token": "text"
      },
      "kafka": {
        "bootstrap_servers": "text",
        "compression": "text",
        "topic": "text",
        "sasl": true,
        "sasl_mechanism": "text",
        "sasl_username": "text",
        "sasl_password": "text"
      },
      "aws_s3": {
        "bucket": "text",
        "ssekms_key_id": "text",
        "storage_class": "text",
        "compression": "text",
        "endpoint": "text",
        "key_prefix": "text",
        "region": "text",
        "auth_access_key_id": "text",
        "auth_secret_access_key": "text"
      },
      "vector": {
        "address": "text"
      },
      "splunk_hec_logs": {
        "endpoint": "text"
      },
      "elasticsearch_sink": {
        "api_version": "text",
        "endpoints": [],
        "mode": "text",
        "bulk_action": "text",
        "bulk_index": "text",
        "data_stream_type": "text",
        "data_stream_dataset": "text",
        "data_stream_namespace": "text",
        "pipeline": "text",
        "tls_verify_certificate": true,
        "tls_verify_hostname": true
      },
      "clickhouse": {
        "endpoint": "text",
        "table": "text"
      }
    },
    "source": [
      {}
    ]
  }
}

Update Service

put

Update service in the database.

Authorizations
Path parameters
namestringRequired
Body
namestringOptionalDefault: service name
typestringOptionalDefault: either source or sink
modulestringOptionalDefault: module
enabledbooleanOptionalDefault: false
is_defaultbooleanOptionalDefault: false
Responses
201
Successful Response
application/json
put
PUT /api/v1/service/{name} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1403

{
  "name": "service name",
  "type": "either source or sink",
  "module": "module",
  "enabled": false,
  "is_default": false,
  "tls": {
    "enabled": false,
    "verify_hostname": false,
    "verify_certificate": false,
    "passphrase": ""
  },
  "certificates": [
    {
      "filename": "text"
    }
  ],
  "events": {
    "static_events": [
      {
        "id": 1
      }
    ],
    "syslog_ports": [
      {
        "id": 1
      }
    ]
  },
  "modules": {
    "sink": {
      "http": {
        "uri": "text",
        "method": "text",
        "compression": "text",
        "strategy": "text",
        "auth_user": "text",
        "auth_password": "text",
        "auth_token": "text"
      },
      "kafka": {
        "bootstrap_servers": "text",
        "compression": "text",
        "topic": "text",
        "sasl": true,
        "sasl_mechanism": "text",
        "sasl_username": "text",
        "sasl_password": "text"
      },
      "aws_s3": {
        "bucket": "text",
        "ssekms_key_id": "text",
        "storage_class": "text",
        "compression": "text",
        "endpoint": "text",
        "key_prefix": "text",
        "region": "text",
        "auth_access_key_id": "text",
        "auth_secret_access_key": "text"
      },
      "vector": {
        "address": "text"
      },
      "splunk_hec_logs": {
        "endpoint": "text"
      },
      "elasticsearch_sink": {
        "api_version": "text",
        "endpoints": [],
        "mode": "default, bulk, options: bulk, datastream",
        "bulk_action": "index, create, or template",
        "bulk_index": "string or template",
        "data_stream_type": "string or template",
        "data_stream_dataset": "string or template",
        "data_stream_namespace": "string or template",
        "pipeline": "pipeline-name",
        "tls_verify_certificate": false,
        "tls_verify_hostname": false
      },
      "clickhouse": {
        "endpoint": "text",
        "table": "text"
      }
    },
    "source": [
      {
        "source_type": "nxlog",
        "address": "0.0.0.0",
        "port": 8000
      }
    ]
  }
}
{
  "name": "service name",
  "type": "either source or sink",
  "module": "module",
  "enabled": false,
  "is_default": false,
  "tls": {
    "enabled": false,
    "verify_hostname": false,
    "verify_certificate": false,
    "passphrase": ""
  },
  "certificates": [
    {
      "filename": "text",
      "id": 1,
      "type": "text",
      "filesize": 0,
      "data": "text",
      "created": "2025-06-21T18:18:53.548Z",
      "modified": "2025-06-21T18:18:53.548Z"
    }
  ],
  "events": {
    "static_events": [
      {
        "id": 1,
        "type": "text"
      }
    ],
    "syslog_ports": [
      {
        "id": 1,
        "port": 1,
        "label": "text",
        "protocols": [
          {
            "protocol": "text"
          }
        ]
      }
    ]
  },
  "modules": {
    "sink": {
      "http": {
        "uri": "text",
        "method": "text",
        "compression": "text",
        "strategy": "text",
        "auth_user": "text",
        "auth_password": "text",
        "auth_token": "text"
      },
      "kafka": {
        "bootstrap_servers": "text",
        "compression": "text",
        "topic": "text",
        "sasl": true,
        "sasl_mechanism": "text",
        "sasl_username": "text",
        "sasl_password": "text"
      },
      "aws_s3": {
        "bucket": "text",
        "ssekms_key_id": "text",
        "storage_class": "text",
        "compression": "text",
        "endpoint": "text",
        "key_prefix": "text",
        "region": "text",
        "auth_access_key_id": "text",
        "auth_secret_access_key": "text"
      },
      "vector": {
        "address": "text"
      },
      "splunk_hec_logs": {
        "endpoint": "text"
      },
      "elasticsearch_sink": {
        "api_version": "text",
        "endpoints": [],
        "mode": "text",
        "bulk_action": "text",
        "bulk_index": "text",
        "data_stream_type": "text",
        "data_stream_dataset": "text",
        "data_stream_namespace": "text",
        "pipeline": "text",
        "tls_verify_certificate": true,
        "tls_verify_hostname": true
      },
      "clickhouse": {
        "endpoint": "text",
        "table": "text"
      }
    },
    "source": [
      {}
    ]
  }
}

Delete Service

delete

Delete service in the database.

Authorizations
Path parameters
namestringRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/service/{name} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "Service with Name: {name} deleted."
}

Fetch Services

get

Fetch all services

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/service/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "results": [
    {
      "name": "service name",
      "type": "either source or sink",
      "module": "module",
      "enabled": false,
      "is_default": false,
      "tls": {
        "enabled": false,
        "verify_hostname": false,
        "verify_certificate": false,
        "passphrase": ""
      },
      "certificates": [
        {
          "filename": "text",
          "id": 1,
          "type": "text",
          "filesize": 0,
          "data": "text",
          "created": "2025-06-21T18:18:53.548Z",
          "modified": "2025-06-21T18:18:53.548Z"
        }
      ],
      "events": {
        "static_events": [
          {
            "id": 1,
            "type": "text"
          }
        ],
        "syslog_ports": [
          {
            "id": 1,
            "port": 1,
            "label": "text",
            "protocols": [
              {
                "protocol": "text"
              }
            ]
          }
        ]
      },
      "modules": {
        "sink": {
          "http": {
            "uri": "text",
            "method": "text",
            "compression": "text",
            "strategy": "text",
            "auth_user": "text",
            "auth_password": "text",
            "auth_token": "text"
          },
          "kafka": {
            "bootstrap_servers": "text",
            "compression": "text",
            "topic": "text",
            "sasl": true,
            "sasl_mechanism": "text",
            "sasl_username": "text",
            "sasl_password": "text"
          },
          "aws_s3": {
            "bucket": "text",
            "ssekms_key_id": "text",
            "storage_class": "text",
            "compression": "text",
            "endpoint": "text",
            "key_prefix": "text",
            "region": "text",
            "auth_access_key_id": "text",
            "auth_secret_access_key": "text"
          },
          "vector": {
            "address": "text"
          },
          "splunk_hec_logs": {
            "endpoint": "text"
          },
          "elasticsearch_sink": {
            "api_version": "text",
            "endpoints": [],
            "mode": "text",
            "bulk_action": "text",
            "bulk_index": "text",
            "data_stream_type": "text",
            "data_stream_dataset": "text",
            "data_stream_namespace": "text",
            "pipeline": "text",
            "tls_verify_certificate": true,
            "tls_verify_hostname": true
          },
          "clickhouse": {
            "endpoint": "text",
            "table": "text"
          }
        },
        "source": [
          {}
        ]
      }
    }
  ]
}

Create Service

post

Create a new syslog port listener in the database.

Authorizations
Body
namestringOptionalDefault: service name
typestringOptionalDefault: either source or sink
modulestringOptionalDefault: module
enabledbooleanOptionalDefault: false
is_defaultbooleanOptionalDefault: false
Responses
201
Successful Response
application/json
post
POST /api/v1/service/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1403

{
  "name": "service name",
  "type": "either source or sink",
  "module": "module",
  "enabled": false,
  "is_default": false,
  "tls": {
    "enabled": false,
    "verify_hostname": false,
    "verify_certificate": false,
    "passphrase": ""
  },
  "certificates": [
    {
      "filename": "text"
    }
  ],
  "events": {
    "static_events": [
      {
        "id": 1
      }
    ],
    "syslog_ports": [
      {
        "id": 1
      }
    ]
  },
  "modules": {
    "sink": {
      "http": {
        "uri": "text",
        "method": "text",
        "compression": "text",
        "strategy": "text",
        "auth_user": "text",
        "auth_password": "text",
        "auth_token": "text"
      },
      "kafka": {
        "bootstrap_servers": "text",
        "compression": "text",
        "topic": "text",
        "sasl": true,
        "sasl_mechanism": "text",
        "sasl_username": "text",
        "sasl_password": "text"
      },
      "aws_s3": {
        "bucket": "text",
        "ssekms_key_id": "text",
        "storage_class": "text",
        "compression": "text",
        "endpoint": "text",
        "key_prefix": "text",
        "region": "text",
        "auth_access_key_id": "text",
        "auth_secret_access_key": "text"
      },
      "vector": {
        "address": "text"
      },
      "splunk_hec_logs": {
        "endpoint": "text"
      },
      "elasticsearch_sink": {
        "api_version": "text",
        "endpoints": [],
        "mode": "default, bulk, options: bulk, datastream",
        "bulk_action": "index, create, or template",
        "bulk_index": "string or template",
        "data_stream_type": "string or template",
        "data_stream_dataset": "string or template",
        "data_stream_namespace": "string or template",
        "pipeline": "pipeline-name",
        "tls_verify_certificate": false,
        "tls_verify_hostname": false
      },
      "clickhouse": {
        "endpoint": "text",
        "table": "text"
      }
    },
    "source": [
      {
        "source_type": "nxlog",
        "address": "0.0.0.0",
        "port": 8000
      }
    ]
  }
}
{
  "name": "service name",
  "type": "either source or sink",
  "module": "module",
  "enabled": false,
  "is_default": false,
  "tls": {
    "enabled": false,
    "verify_hostname": false,
    "verify_certificate": false,
    "passphrase": ""
  },
  "certificates": [
    {
      "filename": "text",
      "id": 1,
      "type": "text",
      "filesize": 0,
      "data": "text",
      "created": "2025-06-21T18:18:53.548Z",
      "modified": "2025-06-21T18:18:53.548Z"
    }
  ],
  "events": {
    "static_events": [
      {
        "id": 1,
        "type": "text"
      }
    ],
    "syslog_ports": [
      {
        "id": 1,
        "port": 1,
        "label": "text",
        "protocols": [
          {
            "protocol": "text"
          }
        ]
      }
    ]
  },
  "modules": {
    "sink": {
      "http": {
        "uri": "text",
        "method": "text",
        "compression": "text",
        "strategy": "text",
        "auth_user": "text",
        "auth_password": "text",
        "auth_token": "text"
      },
      "kafka": {
        "bootstrap_servers": "text",
        "compression": "text",
        "topic": "text",
        "sasl": true,
        "sasl_mechanism": "text",
        "sasl_username": "text",
        "sasl_password": "text"
      },
      "aws_s3": {
        "bucket": "text",
        "ssekms_key_id": "text",
        "storage_class": "text",
        "compression": "text",
        "endpoint": "text",
        "key_prefix": "text",
        "region": "text",
        "auth_access_key_id": "text",
        "auth_secret_access_key": "text"
      },
      "vector": {
        "address": "text"
      },
      "splunk_hec_logs": {
        "endpoint": "text"
      },
      "elasticsearch_sink": {
        "api_version": "text",
        "endpoints": [],
        "mode": "text",
        "bulk_action": "text",
        "bulk_index": "text",
        "data_stream_type": "text",
        "data_stream_dataset": "text",
        "data_stream_namespace": "text",
        "pipeline": "text",
        "tls_verify_certificate": true,
        "tls_verify_hostname": true
      },
      "clickhouse": {
        "endpoint": "text",
        "table": "text"
      }
    },
    "source": [
      {}
    ]
  }
}

Upload Cert

post

Upload/Create new certificate

Authorizations
Body
filestring · binaryRequired
file_typeundefined · enumRequired

An enumeration.

Possible values:
Responses
201
Successful Response
application/json
post
POST /api/v1/certs/upload HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 53

{
  "file": "binary",
  "file_type": "certificate_authority"
}
{
  "id": 1,
  "filename": "text",
  "type": "text",
  "filesize": 1,
  "data": "text",
  "file_extension": "text",
  "created": "2025-06-21T18:18:53.548Z",
  "modified": "2025-06-21T18:18:53.548Z"
}

Update Cert

put

Update filename in the database.

Authorizations
Path parameters
idintegerRequired
Body
filenamestringOptional
Responses
201
Successful Response
application/json
put
PUT /api/v1/certs/{id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "filename": "text"
}
{
  "id": 1,
  "filename": "text",
  "type": "text",
  "filesize": 1,
  "data": "text",
  "file_extension": "text",
  "created": "2025-06-21T18:18:53.548Z",
  "modified": "2025-06-21T18:18:53.548Z"
}

Delete Cert

delete

Delete certificates in the database and on disk.

Authorizations
Query parameters
cert_idintegerRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/certs/{id}?cert_id=1 HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "id": 1,
  "filename": "text",
  "type": "text",
  "filesize": 1,
  "data": "text",
  "file_extension": "text",
  "created": "2025-06-21T18:18:53.548Z",
  "modified": "2025-06-21T18:18:53.548Z"
}

Download Cert

get

Download certificate in the database.

Authorizations
Path parameters
idintegerRequired
Responses
200
Successful Response
application/json
get
GET /api/v1/certs/download/{id} HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "details": "Download File link should be available on successful request"
}

Fetch Certs

get

Fetch all syslog port mappings

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/certs/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "results": [
    {
      "id": 1,
      "filename": "text",
      "type": "text",
      "filesize": 1,
      "data": "text",
      "file_extension": "text",
      "created": "2025-06-21T18:18:53.548Z",
      "modified": "2025-06-21T18:18:53.548Z"
    }
  ]
}

Export Collector Configuration

get

Manually export a collector configuration backup file (.yaml)

Authorizations
Responses
200
Successful Response
application/json
Responseany
get
GET /api/v1/hypercloud/export HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

No content

Restore Collector Configuration

post

Restore Collector configuration from your configuration backup file (.yaml).

Authorizations
Body
config_yamlstring · binaryRequired
Responses
200
Successful Response
application/json
Responseany
post
POST /api/v1/hypercloud/restore HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 24

{
  "config_yaml": "binary"
}

No content

Run Ansible Playbook

post

Run ansible-playbook on config yml

Authorizations
Responses
200
Successful Response
application/json
Responseobject · ResponseRunAnsiblePlaybookApiV1HypercloudAnsiblePost
post
POST /api/v1/hypercloud/ansible HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{}

Fetch Static Events

get

Fetch all static_events available for sinks

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/events/static HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "results": [
    {
      "id": 1,
      "type": "text"
    }
  ]
}

Fetch Dynamic Events

get

Fetch all dynamic_events available for sinks (syslog ports)

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/events/dynamic HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "results": [
    {
      "id": 1,
      "port": 1,
      "label": "text",
      "protocols": [
        {
          "protocol": "text"
        }
      ]
    }
  ]
}

Get Vpn

get

Get vpn file details

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/vpn HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

{
  "id": 1,
  "filename": "filename.ovpn",
  "created": "2025-06-21T18:18:53.548Z",
  "modified": "2025-06-21T18:18:53.548Z",
  "filesize": 0,
  "autoconnect": false,
  "console": {
    "forward": false,
    "remote_address": "0.0.0.0",
    "remote_port": 0,
    "listen_address": "0.0.0.0",
    "listen_port": 0
  },
  "ANY_ADDITIONAL_PROPERTY": []
}

Upload Vpn

post

Upload/Create new VPN config file

Authorizations
Query parameters
autoconnectbooleanOptional
forwardbooleanOptional
remote_addressstringOptional
remote_portintegerOptional
listen_addressstringOptional
listen_portintegerOptional
Body
filestring · binaryRequired
Responses
201
Successful Response
application/json
post
POST /api/v1/vpn HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17

{
  "file": "binary"
}
{
  "id": 1,
  "filename": "filename.ovpn",
  "created": "2025-06-21T18:18:53.548Z",
  "modified": "2025-06-21T18:18:53.548Z",
  "filesize": 0,
  "autoconnect": false,
  "console": {
    "forward": false,
    "remote_address": "0.0.0.0",
    "remote_port": 0,
    "listen_address": "0.0.0.0",
    "listen_port": 0
  }
}

Update Vpn Settings

put

Update VPN Settings or Filename in the database and on disk.

Authorizations
Body
filenamestringOptional
autoconnectbooleanOptionalDefault: false
Responses
201
Successful Response
application/json
put
PUT /api/v1/vpn HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 153

{
  "filename": "text",
  "autoconnect": false,
  "console": {
    "forward": false,
    "remote_address": "0.0.0.0",
    "remote_port": 0,
    "listen_address": "0.0.0.0",
    "listen_port": 0
  }
}
{
  "id": 1,
  "filename": "filename.ovpn",
  "created": "2025-06-21T18:18:53.548Z",
  "modified": "2025-06-21T18:18:53.548Z",
  "filesize": 0,
  "autoconnect": false,
  "console": {
    "forward": false,
    "remote_address": "0.0.0.0",
    "remote_port": 0,
    "listen_address": "0.0.0.0",
    "listen_port": 0
  }
}

Delete Vpn

delete

Delete vpn file in the database and disk.

Authorizations
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/vpn HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "Successfully deleted VPN File"
}

Run Command On Vpn

post

Run command on vpn file

Authorizations
Query parameters
actionstring · enumOptionalDefault: startPossible values:
Responses
200
Successful Response
application/json
post
POST /api/v1/vpn/run HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "{action} command has been successful ran on vpn file"
}

Get Vpn Status

get

Get vpn file status

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/vpn/status HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "result": "active"
}

Fetch Advanced Settings

get

Fetch all advanced_settings

Authorizations
Responses
200
Successful Response
application/json
get
GET /api/v1/advanced/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
200

Successful Response

[
  {
    "id": 1,
    "label": "text",
    "value": "text",
    "description": "text",
    "default_value": "text"
  }
]

Update Advanced Settings

put

Update advanced settings in the database.

Authorizations
Body
idintegerOptional
labelstringOptional
valuestringOptional
descriptionstringOptional
default_valuestringOptional
Responses
201
Successful Response
application/json
put
PUT /api/v1/advanced/ HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 84

[
  {
    "id": 1,
    "label": "text",
    "value": "text",
    "description": "text",
    "default_value": "text"
  }
]
[
  {
    "id": 1,
    "label": "text",
    "value": "text",
    "description": "text",
    "default_value": "text"
  }
]

Create Advanced Setting

post

Create a new advanced setting in the database.

Authorizations
Body
labelstringOptional
valuestringOptional
descriptionstringOptional
default_valuestringOptional
Responses
201
Successful Response
application/json
post
POST /api/v1/advanced/setting HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 75

{
  "label": "text",
  "value": "text",
  "description": "text",
  "default_value": "text"
}
{
  "label": "text",
  "value": "text",
  "description": "text",
  "default_value": "text"
}

Delete Advanced Setting

delete

Delete Advanced Settings

Authorizations
Query parameters
labelstringRequired
Responses
200
Successful Response
application/json
delete
DELETE /api/v1/advanced/setting?label=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "detail": "Advanced Setting with Label: {label} deleted."
}

Last updated