curl --request GET \
--url "https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20" \
--header "Authorization: Bearer $FINI_API_KEY"
const response = await fetch("https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.FINI_API_KEY}` },
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
import os
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20",
headers={"Authorization": f"Bearer {os.environ['FINI_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
print(response.json())
[
{
"id": "44444444-4444-4444-8444-444444444444",
"companyId": "33333333-3333-4333-8333-333333333333",
"botId": "11111111-1111-4111-8111-111111111111",
"interactionId": "55555555-5555-4555-8555-555555555555",
"userEventId": "66666666-6666-4666-8666-666666666666",
"action": "rewritten",
"rounds": 2,
"report": [
{
"policyId": "22222222-2222-4222-8222-222222222222",
"checkType": "banned_terms",
"name": "Banned terms",
"verdicts": [
"fail",
"pass"
]
}
],
"originalContent": null,
"rewriteReason": null,
"createdAt": "2026-10-01T08:10:00.000Z"
}
]
Guardrails
List guardrail runs
List guardrail runs through the workspace-scoped public API.
GET
/
v2
/
guardrail-policies
/
runs
/
public
curl --request GET \
--url "https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20" \
--header "Authorization: Bearer $FINI_API_KEY"
const response = await fetch("https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.FINI_API_KEY}` },
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
import os
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20",
headers={"Authorization": f"Bearer {os.environ['FINI_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
print(response.json())
[
{
"id": "44444444-4444-4444-8444-444444444444",
"companyId": "33333333-3333-4333-8333-333333333333",
"botId": "11111111-1111-4111-8111-111111111111",
"interactionId": "55555555-5555-4555-8555-555555555555",
"userEventId": "66666666-6666-4666-8666-666666666666",
"action": "rewritten",
"rounds": 2,
"report": [
{
"policyId": "22222222-2222-4222-8222-222222222222",
"checkType": "banned_terms",
"name": "Banned terms",
"verdicts": [
"fail",
"pass"
]
}
],
"originalContent": null,
"rewriteReason": null,
"createdAt": "2026-10-01T08:10:00.000Z"
}
]
Returns recent runs as an array. For workspace API callers,
originalContent and rewriteReason are always null; this endpoint does not expose the original reply text. An empty array means no recorded runs.
See the Guardrails overview for shared schemas and runtime limitations.
string
required
Bearer workspace API key. The key needs
read scope.string
required
Agent UUID in the authenticated workspace.
integer
1 to 100; defaults to 20.
Response
array
Runs with
id, companyId, botId, interactionId, userEventId, action, rounds, report, originalContent, rewriteReason, and createdAt.string
passed, rewritten, blocked, or error. Inspect individual verdicts even when the action is passed.array
Per-policy
policyId, checkType, name, and verdicts. Verdicts are pass, fail, or error, in initial-check then recheck order.curl --request GET \
--url "https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20" \
--header "Authorization: Bearer $FINI_API_KEY"
const response = await fetch("https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20", {
method: "GET",
headers: { Authorization: `Bearer ${process.env.FINI_API_KEY}` },
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
import os
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/guardrail-policies/runs/public?botId=11111111-1111-4111-8111-111111111111&limit=20",
headers={"Authorization": f"Bearer {os.environ['FINI_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
print(response.json())
[
{
"id": "44444444-4444-4444-8444-444444444444",
"companyId": "33333333-3333-4333-8333-333333333333",
"botId": "11111111-1111-4111-8111-111111111111",
"interactionId": "55555555-5555-4555-8555-555555555555",
"userEventId": "66666666-6666-4666-8666-666666666666",
"action": "rewritten",
"rounds": 2,
"report": [
{
"policyId": "22222222-2222-4222-8222-222222222222",
"checkType": "banned_terms",
"name": "Banned terms",
"verdicts": [
"fail",
"pass"
]
}
],
"originalContent": null,
"rewriteReason": null,
"createdAt": "2026-10-01T08:10:00.000Z"
}
]
Was this page helpful?

