Laravel { JSON-RPC } https://localhost/api/v2/private/endpoint

applications @installApp

Install an app on a server.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "applications@installApp",
    "params": {
        "order_id": "The order id.",
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

applications @uninstallApp

Uninstall a previously installed app.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "applications@uninstallApp",
    "params": {
        "application_id": "The application id.",
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

applications @addTowerifyUserPermission

Add a permission to the Towerify user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "applications@addTowerifyUserPermission",
    "params": {
        "permission": "The permission to add.",
        "server_id": "The server id.",
        "user_id": "The user id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

applications @addUserPermission

Add a permission to a given user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "applications@addUserPermission",
    "params": {
        "permission": "The permission to add.",
        "server_id": "The server id.",
        "user_id": "The user id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

applications @removeUserPermission

Remove a permission from a given user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "applications@removeUserPermission",
    "params": {
        "permission": "The permission to remove.",
        "server_id": "The server id.",
        "user_id": "The user id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

assets @discover

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@discover",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @get

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@get",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @create

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@create",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @delete

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@delete",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @list

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@list",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @monitor

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@monitor",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @unmonitor

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@unmonitor",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @tag

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@tag",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @untag

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@untag",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @listTags

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@listTags",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @restartScan

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@restartScan",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @group

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@group",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @degroup

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@degroup",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @listGroups

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@listGroups",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @getGroup

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@getGroup",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @assetsInGroup

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@assetsInGroup",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @vulnerabilitiesInGroup

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@vulnerabilitiesInGroup",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @resolveVulnerabilityInGroup

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@resolveVulnerabilityInGroup",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

assets @share

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@share",
    "params": null
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": null
}

chunks @delete

Delete a single chunk.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "chunks@delete",
    "params": {
        "chunk_id": "The chunk id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

chunks @update

Update an existing chunk.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "chunks@update",
    "params": {
        "chunk_id": "The chunk id.",
        "value": "The new chunk value."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

chunks @list

List all chunks that belong to the current user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "chunks@list",
    "params": {
        "page": "The page number (optional, default 1).",
        "page_size": "The page size (optional, default 25).",
        "collection": "The collection name (optional).",
        "file": "The file name (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "page": "The current page number.",
        "page_size": "The page size.",
        "nb_pages": "The total number of pages.",
        "collection": "The collection name (if any).",
        "file": "The file name (if any).",
        "chunks": "A list of chunks."
    }
}

collections @update

Update an existing collection.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "collections@update",
    "params": {
        "collection_id": "The collection id.",
        "priority": "The new collection priority."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

collections @delete

Delete a single collection.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "collections@delete",
    "params": {
        "collection_id": "The collection id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

collections @list

List all collections that belong to the current user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "collections@list",
    "params": {
        "page": "The page number (optional, default 1).",
        "page_size": "The page size (optional, default 25)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "page": "The current page number.",
        "page_size": "The page size.",
        "nb_pages": "The total number of pages.",
        "collections": "A list of collections."
    }
}

cyberbuddy @ask

Ask CyberBuddy to answer a question or execute some tasks.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "cyberbuddy@ask",
    "params": {
        "thread_id": "The thread identifier.",
        "directive": "The user's directive.",
        "fallback_on_next_collection": "Automatically search the next collection if the first one yields no result (optional)"
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "html": "CyberBuddy's answer in HTML.",
        "chain_of_thought": "CyberBuddy's chain of thought."
    }
}

cyberbuddy @delete

Delete an existing conversation.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "cyberbuddy@delete",
    "params": {
        "conversation_id": "The conversation identifier."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

cyberbuddy @saveActionSettings

Save action settings for tenant or user scope.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "cyberbuddy@saveActionSettings",
    "params": {
        "scope_type": "Scope type: 'tenant' or 'user'.",
        "scope_id": "The tenant id or the user id depending on scope_type.",
        "actions": "Array of action names to enable (others will be disabled)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

cyberscribe @listTemplates

List available templates.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "cyberscribe@listTemplates",
    "params": []
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "templates": "A list of templates."
    }
}

cyberscribe @deleteTemplate

Delete an existing template.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "cyberscribe@deleteTemplate",
    "params": {
        "template_id": "The template id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

cyberscribe @saveTemplate

Save a template.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "cyberscribe@saveTemplate",
    "params": {
        "template_id": "The template id (optional).",
        "is_model": "Whether the template is a model (optional).",
        "name": "The template name.",
        "blocks": "The template blocks."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

events @list

List collected events.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "events@list",
    "params": {
        "min_score": "A score of 0 indicates a system event; any score above 0 indicates an IoC, with values closer to 100 reflecting a higher probability of compromise.",
        "server_id": "The server id (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "events": "The list of events over the last 3 days."
    }
}

events @dismiss

Dismiss an event (false positive).

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "events@dismiss",
    "params": {
        "event_id": "The event identifier."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

files @delete

Delete a single file.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "files@delete",
    "params": {
        "file_id": "The file id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

files @list

List all files that belong to the current user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "files@list",
    "params": {
        "page": "The page number (optional, default 1).",
        "page_size": "The page size (optional, default 25).",
        "collection": "The collection name (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "page": "The current page number.",
        "page_size": "The page size.",
        "nb_pages": "The total number of pages.",
        "collection": "The collection name (if any).",
        "files": "A list of files."
    }
}

frameworks @load

Load a framework into a collection.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "frameworks@load",
    "params": {
        "framework_id": "The framework id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

frameworks @unload

Remove a framework from a collection.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "frameworks@unload",
    "params": {
        "framework_id": "The framework id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

honeypots @blacklist

Get a list of qualified IP addresses to blacklist. If the attacker_id parameter is set, this endpoint only returns the IP addresses of the specified attacker.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "honeypots@blacklist",
    "params": {
        "attacker_id": "An attacker id (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "blacklist": "The list of IP addresses to blacklist."
    }
}

honeypots @counts

Returns the number of humans and targeted events for each day of the last 10 days

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "honeypots@counts",
    "params": {
        "honeypot_id": "A honeypot identifier."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "counts": "The daily counts."
    }
}

honeypots @events

The last events generated by the honeypots. If the honeypot_id parameter is set, this endpoint only returns the events of the specified honeypot.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "honeypots@events",
    "params": {
        "honeypot_id": "A honeypot identifier (optional).",
        "limit": "The number of events to return (optional).",
        "human": "Only keep events that have been generated by manually tinkering with the honeypots (optional).",
        "targeted": "Only keep events that have been generated by a lateral movement (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "events": "A list of events."
    }
}

honeypots @attackers

Returns the list of human attackers that targeted your honeypots.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "honeypots@attackers",
    "params": []
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "attackers": "The list of human attackers that targeted your honeypots."
    }
}

honeypots @attackerProfile

Get the full profile of an attacker.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "honeypots@attackerProfile",
    "params": {
        "attacker_id": "An attacker id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "profile": "The attacker profile: internal name, date of first contact, date of last contact, etc.",
        "ip_addresses": "The attacker's known IP addresses.",
        "events": "The last known events triggered by the attacker.",
        "tools": "The attacker toolkit.",
        "counts": "Misc. counts (nb human events, nb targeted events, etc.)",
        "skills": "The attacker's skills."
    }
}

invitations @create

Create a single invitation and send it.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "invitations@create",
    "params": {
        "email": "The user email address."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

notes @create

Add a note to the timeline.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "notes@create",
    "params": {
        "note": "The note content."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

notes @delete

Delete a single note from the timeline.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "notes@delete",
    "params": {
        "note_id": "The note id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

prompts @get

Get a given prompt.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "prompts@get",
    "params": {
        "name": "The prompt name."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "prompt": "A prompt object."
    }
}

prompts @create

Create a new prompt.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "prompts@create",
    "params": {
        "name": "The prompt name.",
        "template": "The prompt template."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "prompt": "A prompt object."
    }
}

prompts @update

Update an existing prompt.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "prompts@update",
    "params": {
        "prompt_id": "The prompt id.",
        "template": "The new prompt template."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

prompts @delete

Delete a single prompt.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "prompts@delete",
    "params": {
        "prompt_id": "The prompt id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

prompts @list

List all prompts that belong to the current user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "prompts@list",
    "params": {
        "page": "The page number (optional, default 1).",
        "page_size": "The page size (optional, default 25)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "page": "The current page number.",
        "page_size": "The page size.",
        "nb_pages": "The total number of pages.",
        "prompts": "A list of prompts."
    }
}

osquery @create

Create a single Osquery rule.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "osquery@create",
    "params": {
        "name": "The rule name.",
        "description": "The rule description.",
        "category": "The rule category.",
        "platform": "The rule platform.",
        "interval": "The rule trigger interval in seconds.",
        "is_ioc": "true iif the rule is an indicator of compromise, false otherwise.",
        "score": "The score of the rule. Must be greater than 0 but no greater than 100 if is_ioc is true, and 0 otherwise.",
        "query": "The rule query."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "rule": "An Osquery rule."
    }
}

osquery @delete

Delete a single Osquery rule and all its associated data.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "osquery@delete",
    "params": {
        "rule_id": "The rule id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

osquery @list

List the enabled Osquery rules.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "osquery@list",
    "params": []
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "rules": "The list of enabled Osquery rules."
    }
}

ossec @create

Create a single OSSEC rule.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "ossec@create",
    "params": {
        "name": "The rule name.",
        "description": "The rule description.",
        "rationale": "The reason behind this rule.",
        "rule": "The rule checks."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "rule": "An OSSEC rule."
    }
}

ossec @delete

Delete a single OSSEC rule and all its associated data.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "ossec@delete",
    "params": {
        "rule_id": "The rule id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

ossec @list

List the OSSEC rules.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "ossec@list",
    "params": []
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "rules": "The list of OSSEC rules."
    }
}

roles @addPermission

Add a permission to a role.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "roles@addPermission",
    "params": {
        "role": "Role name (string) or ID (integer).",
        "permission": "Permission name (string) or ID (integer)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "Success message."
    }
}

roles @removePermission

Remove a permission from a role.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "roles@removePermission",
    "params": {
        "role": "Role name (string) or ID (integer).",
        "permission": "Permission name (string) or ID (integer)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "Success message."
    }
}

roles @list

List all roles with their permissions (permissions sorted alphabetically).

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "roles@list",
    "params": []
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "roles": "Array of roles with permissions"
    }
}

scheduled-tasks @create

Create a new scheduled task.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@create",
    "params": {
        "cron": "Cron expression (MIN HOUR DOM MON DOW).",
        "trigger": "Optional condition that must evaluate to true to run the task.",
        "task": "The task\/instruction to execute when the schedule\/trigger matches."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "Success message.",
        "task_id": "The id of the created scheduled task."
    }
}

scheduled-tasks @toggle

Pause or resume a scheduled task.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@toggle",
    "params": {
        "task_id": "The scheduled task id.",
        "enabled": "Optional boolean. If omitted, the flag will be toggled."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "Success message."
    }
}

scheduled-tasks @delete

Delete a scheduled task.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@delete",
    "params": {
        "task_id": "The scheduled task id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "Success message."
    }
}

servers @create

Create a single server.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@create",
    "params": {
        "order_id": "The order id (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "server": "A server object."
    }
}

servers @delete

Delete a single server and all its associated data.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@delete",
    "params": {
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

servers @configure

Configure the SSH connection of a server.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@configure",
    "params": {
        "name": "The server name.",
        "ip": "The server IP address.",
        "port": "The server SSH port.",
        "username": "The server SSH username.",
        "domain": "The domain pointing to the server.",
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

servers @testSshConnection

Test if the SSH connection to a server is working.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@testSshConnection",
    "params": {
        "ip": "The server IP address.",
        "port": "The server SSH port.",
        "username": "The server SSH username.",
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

servers @executeShellCommand

Execute a shell command on a server.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@executeShellCommand",
    "params": {
        "cmd": "The shell command to execute.",
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "output": "The command output."
    }
}

servers @pullServerInfos

Pull the server's information.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@pullServerInfos",
    "params": {
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

servers @createBackup

Backup a server.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@createBackup",
    "params": {
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

servers @messages

Retrieve the security events for a specific server over the past 10 days.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@messages",
    "params": {
        "server_id": "The server id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "events": "An array of security events."
    }
}

tables @list

List the available tables.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@list",
    "params": []
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "tables": "An array of tables."
    }
}

tables @import

Import one or more tables.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@import",
    "params": {
        "storage": "The type of storage (AWS S3 or Azure Blob Storage).",
        "region": "The AWS\/Azure region.",
        "access_key_id": "The access key (AWS only).",
        "secret_access_key": "The secret key (AWS only).",
        "connection_string": "The connection string to the storage account (Azure only).",
        "input_folder": "Where the input files will be read.",
        "output_folder": "Where the output (or temporary) files will be written.",
        "tables": [
            {
                "table": "The table name.",
                "old_name": "The old table name.",
                "new_name": "The new table name.",
                "type": "The table type (materialized or view)."
            }
        ],
        "updatable": "",
        "copy": "",
        "deduplicate": "",
        "description": ""
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "message": "A success message."
    }
}

tables @forceImport

Force the import of a given table.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@forceImport",
    "params": {
        "table_id": "The identifier of the table to reimport."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "message": "A success message."
    }
}

tables @executeSqlQuery

Execute a SQL query.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@executeSqlQuery",
    "params": {
        "query": "The SQL query.",
        "store": "Whether to store the query as a virtual or physical table (optional).",
        "materialize": "Whether to store the query as a physical table (mandatory if store is true).",
        "name": "The name of the virtual or physical table (mandatory if store is true).",
        "description": "The description of the virtual or physical table (mandatory if store is true).",
        "format": "The format of the query (arrays, arrays_with_header or objects) (mandatory if store is false)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "message": "A success message.",
        "data": "The requested data."
    }
}

tables @listBucketContent

List the content of a given bucket.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@listBucketContent",
    "params": {
        "storage": "The type of storage (AWS S3 or Azure Blob Storage).",
        "region": "The AWS\/Azure region.",
        "access_key_id": "The access key (AWS only).",
        "secret_access_key": "The secret key (AWS only).",
        "connection_string": "The connection string to the storage account (Azure only).",
        "input_folder": "Where the input files will be read.",
        "output_folder": "Where the output (or temporary) files will be written."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "files": "An array of files."
    }
}

tables @listFileContent

List the content of a given list of files (in a given bucket).

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@listFileContent",
    "params": {
        "storage": "The type of storage (AWS S3 or Azure Blob Storage).",
        "region": "The AWS\/Azure region.",
        "access_key_id": "The access key (AWS only).",
        "secret_access_key": "The secret key (AWS only).",
        "connection_string": "The connection string to the storage account (Azure only).",
        "input_folder": "Where the input files will be read.",
        "output_folder": "Where the output (or temporary) files will be written.",
        "tables": "An array of tables to inspect."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "tables": "An array of tables."
    }
}

tables @promptToQuery

Convert a prompt to a SQL query.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@promptToQuery",
    "params": {
        "prompt": "The prompt."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "query": "The SQL query."
    }
}

tables @updateDescription

Update a table description.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tables@updateDescription",
    "params": {
        "name": "The table name.",
        "description": "The new description."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "message": "A success message.",
        "data": "The updated table object."
    }
}

the-cyber-brief @summarize

Summarize a text or a webpage.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "the-cyber-brief@summarize",
    "params": {
        "url_or_text": "The text or webpage (URL) to summarize. The webpage will be automatically downloaded and converted to text.",
        "prompt": "The prompt to use. Any [TEXT] in the prompt will be replaced by the text or webpage."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "summary": "The summary of the text or webpage."
    }
}

traces @list

List the last n traces.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "traces@list",
    "params": {
        "limit": "The maximum number of traces to return."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "traces": "An array of traces."
    }
}

users @toggleGetsAuditReport

Toggle the envoy of the weekly email report to a given user.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@toggleGetsAuditReport",
    "params": {
        "user_id": "The user id.",
        "gets_audit_report": "Whether the user wants to receive the weekly email report (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

vulnerabilities @list

List the user's vulnerabilities.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "vulnerabilities@list",
    "params": {
        "asset_id": "The asset id (optional).",
        "level": "The vulnerabilities criticality level (optional).",
        "tld": "The underlying asset TLD to match (optional).",
        "tags": "The underlying list of assets tags to match (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "high": "A list of vulnerabilities with critical severity.",
        "medium": "A list of vulnerabilities with medium severity.",
        "low": "A list of vulnerabilities with low severity."
    }
}

vulnerabilities @toggleVisibility

Hide/Show one or more vulnerabilities.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "vulnerabilities@toggleVisibility",
    "params": {
        "uid": "The vulnerability unique identifier (optional).",
        "type": "The vulnerability type (optional).",
        "title": "The vulnerability title (optional)."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}

vulnerabilities @markAsResolved

Flag a given vulnerability as resolved and trigger a new scan.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "vulnerabilities@markAsResolved",
    "params": {
        "vulnerability_id": "The vulnerability id."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "msg": "A success message."
    }
}