List audit events
curl --request GET \
--url https://controller.simplecloud.app/v0/audit-events \
--header 'X-Network-Credential: <api-key>' \
--header 'X-Network-ID: <x-network-id>'import requests
url = "https://controller.simplecloud.app/v0/audit-events"
headers = {
"X-Network-ID": "<x-network-id>",
"X-Network-Credential": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Network-ID': '<x-network-id>', 'X-Network-Credential': '<api-key>'}
};
fetch('https://controller.simplecloud.app/v0/audit-events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://controller.simplecloud.app/v0/audit-events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Network-Credential: <api-key>",
"X-Network-ID: <x-network-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://controller.simplecloud.app/v0/audit-events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Network-ID", "<x-network-id>")
req.Header.Add("X-Network-Credential", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://controller.simplecloud.app/v0/audit-events")
.header("X-Network-ID", "<x-network-id>")
.header("X-Network-Credential", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://controller.simplecloud.app/v0/audit-events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Network-ID"] = '<x-network-id>'
request["X-Network-Credential"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"events": [
{
"action": "server_groups.update",
"actor": {
"id": "user_2abc",
"name": "alice@example.com",
"type": "user"
},
"changes": {},
"id": "0192a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"occurred_at": "2026-10-09T12:30:00.123456Z",
"request_id": "req_01J9Z3",
"resource": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "lobby",
"type": "server_groups"
}
}
],
"next_cursor": "MjAyNi0xMC0wOVQxMjozMDowMC4xMjM0NTZafDAxOTJhMWIyLWMzZDQtN2U1Zi04YTliLTBjMWQyZTNmNGE1Yg"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}audit
List audit events
Lists the network’s audit events, newest first. Requires the audit_log:read permission, which covers every event in the network regardless of the caller’s other permissions. API keys (network passwords) cannot read the audit log. To get the next page, pass next_cursor as cursor with the same filters.
GET
/
v0
/
audit-events
List audit events
curl --request GET \
--url https://controller.simplecloud.app/v0/audit-events \
--header 'X-Network-Credential: <api-key>' \
--header 'X-Network-ID: <x-network-id>'import requests
url = "https://controller.simplecloud.app/v0/audit-events"
headers = {
"X-Network-ID": "<x-network-id>",
"X-Network-Credential": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Network-ID': '<x-network-id>', 'X-Network-Credential': '<api-key>'}
};
fetch('https://controller.simplecloud.app/v0/audit-events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://controller.simplecloud.app/v0/audit-events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Network-Credential: <api-key>",
"X-Network-ID: <x-network-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://controller.simplecloud.app/v0/audit-events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Network-ID", "<x-network-id>")
req.Header.Add("X-Network-Credential", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://controller.simplecloud.app/v0/audit-events")
.header("X-Network-ID", "<x-network-id>")
.header("X-Network-Credential", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://controller.simplecloud.app/v0/audit-events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Network-ID"] = '<x-network-id>'
request["X-Network-Credential"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"events": [
{
"action": "server_groups.update",
"actor": {
"id": "user_2abc",
"name": "alice@example.com",
"type": "user"
},
"changes": {},
"id": "0192a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"occurred_at": "2026-10-09T12:30:00.123456Z",
"request_id": "req_01J9Z3",
"resource": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "lobby",
"type": "server_groups"
}
}
],
"next_cursor": "MjAyNi0xMC0wOVQxMjozMDowMC4xMjM0NTZafDAxOTJhMWIyLWMzZDQtN2U1Zi04YTliLTBjMWQyZTNmNGE1Yg"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Network password or signed JWT. Password authentication also requires X-Network-ID and grants full access to that network, except the audit log. JWT permissions still apply.
Headers
Network ID
Query Parameters
Earliest occurrence, inclusive (RFC 3339)
Latest occurrence, exclusive (RFC 3339)
Action, for example server_groups.update
Resource type, for example server_groups
Resource ID
User ID or API key ID
Page size
Required range:
1 <= x <= 200next_cursor from the previous page
Response
OK
Was this page helpful?