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

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 @counts

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "assets@counts",
    "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."
    }
}

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 @counts

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "events@counts",
    "params": null
}

Response:

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

events @list

Request:

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

Response:

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

events @dismiss

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "events@dismiss",
    "params": null
}

Response:

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

events @socOperator

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "events@socOperator",
    "params": null
}

Response:

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

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."
    }
}

idox @workspaces

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "idox@workspaces",
    "params": null
}

Response:

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

idox @listDocuments

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "idox@listDocuments",
    "params": null
}

Response:

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

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."
    }
}

leaks @list

Request:

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

Response:

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

notes @create

Request:

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

Response:

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

notes @delete

Request:

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

Response:

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

notes @list

Request:

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

Response:

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

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."
    }
}

rapidapi @triggerScan

Trigger a vulnerability scan.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "rapidapi@triggerScan",
    "params": {
        "asset": "A domain or an IP address."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "asset": "The asset name. May be different from the one given in the request on ranges.",
        "modifications": "The asset's creation and modification history.",
        "tags": "The asset's tags.",
        "ports": "The asset's open ports.",
        "vulnerabilities": "The asset's vulnerabilities.",
        "timeline": {
            "nmap": {
                "start": "When the port scan started.",
                "end": "When the port scan ended."
            },
            "sentinel": {
                "start": "When the vuln. scan started.",
                "end": "When the vuln. scan ended."
            },
            "next_scan": "When the next scans will start.",
            "nb_vulns_scans_running": "The number of running scans.",
            "nb_vulns_scans_completed": "The number of completed scans."
        },
        "hiddenAlerts": "The asset's hidden vulnerabilities (if any)."
    }
}

rapidapi @collectScanResults

Trigger a vulnerability scan.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "rapidapi@collectScanResults",
    "params": {
        "asset": "A domain or an IP address."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "asset": "The asset name. May be different from the one given in the request on ranges.",
        "modifications": "The asset's creation and modification history.",
        "tags": "The asset's tags.",
        "ports": "The asset's open ports.",
        "vulnerabilities": "The asset's vulnerabilities.",
        "timeline": {
            "nmap": {
                "start": "When the port scan started.",
                "end": "When the port scan ended."
            },
            "sentinel": {
                "start": "When the vuln. scan started.",
                "end": "When the vuln. scan ended."
            },
            "next_scan": "When the next scans will start.",
            "nb_vulns_scans_running": "The number of running scans.",
            "nb_vulns_scans_completed": "The number of completed scans."
        },
        "hiddenAlerts": "The asset's hidden vulnerabilities (if any)."
    }
}

remoteactions @saveSettings

Save action settings for tenant or user scope.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "remoteactions@saveSettings",
    "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."
    }
}

remoteactions @create

Create a single remote action.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "remoteactions@create",
    "params": {
        "name": "The action name.",
        "description": "The action description.",
        "url": "The action URL.",
        "headers": "The action headers.",
        "schema": "The action schema.",
        "payload_template": "The action payload template.",
        "response_template": "The action response template.",
        "examples": "The action examples."
    }
}

Response:

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "action": "A remote action."
    }
}

remoteactions @delete

Delete a remote action.

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "remoteactions@delete",
    "params": {
        "action_id": "The action identifier."
    }
}

Response:

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

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 @list

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@list",
    "params": null
}

Response:

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

scheduled-tasks @create

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@create",
    "params": null
}

Response:

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

scheduled-tasks @toggle

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@toggle",
    "params": null
}

Response:

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

scheduled-tasks @delete

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "scheduled-tasks@delete",
    "params": null
}

Response:

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

servers @list

Request:

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

Response:

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

servers @create

Request:

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

Response:

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

servers @delete

Request:

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

Response:

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

servers @configure

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@configure",
    "params": null
}

Response:

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

servers @testSshConnection

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@testSshConnection",
    "params": null
}

Response:

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

servers @executeShellCommand

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@executeShellCommand",
    "params": null
}

Response:

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

servers @events

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "servers@events",
    "params": null
}

Response:

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

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."
    }
}

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

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@toggleGetsAuditReport",
    "params": null
}

Response:

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

users @sendAuditReport

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@sendAuditReport",
    "params": null
}

Response:

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

users @setTelegramConfiguration

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@setTelegramConfiguration",
    "params": null
}

Response:

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

users @getTelegramConfiguration

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@getTelegramConfiguration",
    "params": null
}

Response:

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

users @setWhatsAppConfiguration

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@setWhatsAppConfiguration",
    "params": null
}

Response:

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

users @getWhatsAppConfiguration

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "users@getWhatsAppConfiguration",
    "params": null
}

Response:

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

vulnerabilities @counts

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "vulnerabilities@counts",
    "params": null
}

Response:

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

vulnerabilities @list

Request:

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

Response:

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

vulnerabilities @toggleVisibility

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "vulnerabilities@toggleVisibility",
    "params": null
}

Response:

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

vulnerabilities @markAsResolved

Request:

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "vulnerabilities@markAsResolved",
    "params": null
}

Response:

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