curl --request GET \
--url https://api.arize.com/v2/audit-logs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arize.com/v2/audit-logs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arize.com/v2/audit-logs', 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://api.arize.com/v2/audit-logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.arize.com/v2/audit-logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arize.com/v2/audit-logs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arize.com/v2/audit-logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"logs": [
{
"id": "QXVkaXRMb2c6NDI=",
"user_id": "VXNlcjoxMjM0NQ==",
"ip": "1.2.3.4",
"operation_type": "MUTATION",
"operation_name": "createAiIntegration",
"operation_text": "mutation createAiIntegration { ... }",
"variables": "{}",
"created_at": "2026-05-18T12:00:00.000Z"
}
],
"pagination": {
"next_cursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTA1LTE4VDEyOjAwOjAwLjAwMFoiLCJpZCI6NDJ9",
"has_more": true
}
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 403,
"title": "Access forbidden",
"detail": "You do not have permission to access this resource.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#access-forbidden"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}List audit logs
Retrieve a paginated list of authenticated user audit log entries for the account. Results are ordered newest first.
Access requirements:
- The caller must be an account admin.
- The account must have audit logging enabled.
Returns 403 if either condition is not met.
curl --request GET \
--url https://api.arize.com/v2/audit-logs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arize.com/v2/audit-logs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arize.com/v2/audit-logs', 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://api.arize.com/v2/audit-logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.arize.com/v2/audit-logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arize.com/v2/audit-logs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arize.com/v2/audit-logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"logs": [
{
"id": "QXVkaXRMb2c6NDI=",
"user_id": "VXNlcjoxMjM0NQ==",
"ip": "1.2.3.4",
"operation_type": "MUTATION",
"operation_name": "createAiIntegration",
"operation_text": "mutation createAiIntegration { ... }",
"variables": "{}",
"created_at": "2026-05-18T12:00:00.000Z"
}
],
"pagination": {
"next_cursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTA1LTE4VDEyOjAwOjAwLjAwMFoiLCJpZCI6NDJ9",
"has_more": true
}
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 403,
"title": "Access forbidden",
"detail": "You do not have permission to access this resource.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#access-forbidden"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}Authorizations
Most Arize AI endpoints require authentication. For those endpoints that require authentication, include your API key in the request header using the format
Query Parameters
Inclusive lower bound on created_at (ISO 8601 datetime).
Defaults to 30 days before end_time when omitted.
Inclusive upper bound on created_at (ISO 8601 datetime).
Defaults to the current time when omitted.
Filter results by user (base64 global user ID). When provided, only records associated with this user are returned. Access requirements vary by endpoint — some endpoints restrict this filter to account admins.
A universally unique identifier (base64-encoded opaque string).
"RW50aXR5OjEyMzQ1"
Filter results to a specific operation type. The type of operation that was audited.
QUERY, MUTATION, SUBSCRIPTION Maximum items to return. Defaults to 50 if omitted; maximum is 100.
1 <= x <= 100Opaque pagination cursor returned from a previous response
(pagination.next_cursor). Treat it as an unreadable token; do not
attempt to parse or construct it.
Was this page helpful?