curl --request POST \
--url "https://api-prod.usefini.com/v2/guardrail-policies/public" \
--header "Authorization: Bearer $FINI_API_KEY" \
--header "Content-Type: application/json" \
--data '{"botId": "11111111-1111-4111-8111-111111111111", "checkType": "banned_terms", "config": {"terms": ["guaranteed approval"]}, "enabled": true, "sources": ["widget"]}'
const response = await fetch("https://api-prod.usefini.com/v2/guardrail-policies/public", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.FINI_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({"botId": "11111111-1111-4111-8111-111111111111", "checkType": "banned_terms", "config": {"terms": ["guaranteed approval"]}, "enabled": true, "sources": ["widget"]}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
import os
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/guardrail-policies/public",
headers={"Authorization": f"Bearer {os.environ['FINI_API_KEY']}"},
json={'botId': '11111111-1111-4111-8111-111111111111', 'checkType': 'banned_terms', 'config': {'terms': ['guaranteed approval']}, 'enabled': True, 'sources': ['widget']},
timeout=30,
)
response.raise_for_status()
print(response.json())
{
"id": "22222222-2222-4222-8222-222222222222",
"companyId": "33333333-3333-4333-8333-333333333333",
"botId": "11111111-1111-4111-8111-111111111111",
"checkType": "banned_terms",
"config": {
"terms": [
"guaranteed approval"
]
},
"enabled": true,
"sources": [
"widget"
],
"createdAt": "2026-10-01T08:00:00.000Z",
"updatedAt": "2026-10-01T08:00:00.000Z"
}
Guardrails
Create guardrail policy
Create guardrail policy through the workspace-scoped public API.
POST
/
v2
/
guardrail-policies
/
public
curl --request POST \
--url "https://api-prod.usefini.com/v2/guardrail-policies/public" \
--header "Authorization: Bearer $FINI_API_KEY" \
--header "Content-Type: application/json" \
--data '{"botId": "11111111-1111-4111-8111-111111111111", "checkType": "banned_terms", "config": {"terms": ["guaranteed approval"]}, "enabled": true, "sources": ["widget"]}'
const response = await fetch("https://api-prod.usefini.com/v2/guardrail-policies/public", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.FINI_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({"botId": "11111111-1111-4111-8111-111111111111", "checkType": "banned_terms", "config": {"terms": ["guaranteed approval"]}, "enabled": true, "sources": ["widget"]}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
import os
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/guardrail-policies/public",
headers={"Authorization": f"Bearer {os.environ['FINI_API_KEY']}"},
json={'botId': '11111111-1111-4111-8111-111111111111', 'checkType': 'banned_terms', 'config': {'terms': ['guaranteed approval']}, 'enabled': True, 'sources': ['widget']},
timeout=30,
)
response.raise_for_status()
print(response.json())
{
"id": "22222222-2222-4222-8222-222222222222",
"companyId": "33333333-3333-4333-8333-333333333333",
"botId": "11111111-1111-4111-8111-111111111111",
"checkType": "banned_terms",
"config": {
"terms": [
"guaranteed approval"
]
},
"enabled": true,
"sources": [
"widget"
],
"createdAt": "2026-10-01T08:00:00.000Z",
"updatedAt": "2026-10-01T08:00:00.000Z"
}
Creates a saved policy directly. It is enabled by default; use
enabled: false to configure it without enabling evaluation. Duplicate built-in types return 409; exceeding 10 custom rules returns 400.
See the Guardrails overview for shared schemas and runtime limitations.
One of the six check types.
Complete check-specific configuration. See configuration schemas.
Response
Check-specific definition. See the configuration schemas.
curl --request POST \
--url "https://api-prod.usefini.com/v2/guardrail-policies/public" \
--header "Authorization: Bearer $FINI_API_KEY" \
--header "Content-Type: application/json" \
--data '{"botId": "11111111-1111-4111-8111-111111111111", "checkType": "banned_terms", "config": {"terms": ["guaranteed approval"]}, "enabled": true, "sources": ["widget"]}'
const response = await fetch("https://api-prod.usefini.com/v2/guardrail-policies/public", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.FINI_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({"botId": "11111111-1111-4111-8111-111111111111", "checkType": "banned_terms", "config": {"terms": ["guaranteed approval"]}, "enabled": true, "sources": ["widget"]}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
import os
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/guardrail-policies/public",
headers={"Authorization": f"Bearer {os.environ['FINI_API_KEY']}"},
json={'botId': '11111111-1111-4111-8111-111111111111', 'checkType': 'banned_terms', 'config': {'terms': ['guaranteed approval']}, 'enabled': True, 'sources': ['widget']},
timeout=30,
)
response.raise_for_status()
print(response.json())
{
"id": "22222222-2222-4222-8222-222222222222",
"companyId": "33333333-3333-4333-8333-333333333333",
"botId": "11111111-1111-4111-8111-111111111111",
"checkType": "banned_terms",
"config": {
"terms": [
"guaranteed approval"
]
},
"enabled": true,
"sources": [
"widget"
],
"createdAt": "2026-10-01T08:00:00.000Z",
"updatedAt": "2026-10-01T08:00:00.000Z"
}
Was this page helpful?

