Evaluate and Protect
curl --request POST \
--url https://api.guardion.ai/v1/guard \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{
"content": "<string>"
}
],
"application": "<string>",
"policy": "<string>",
"session": "<string>",
"metadata": {},
"fail_fast": false,
"breakdown_all": false
}
'import requests
url = "https://api.guardion.ai/v1/guard"
payload = {
"messages": [{ "content": "<string>" }],
"application": "<string>",
"policy": "<string>",
"session": "<string>",
"metadata": {},
"fail_fast": False,
"breakdown_all": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [{content: '<string>'}],
application: '<string>',
policy: '<string>',
session: '<string>',
metadata: {},
fail_fast: false,
breakdown_all: false
})
};
fetch('https://api.guardion.ai/v1/guard', 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.guardion.ai/v1/guard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'messages' => [
[
'content' => '<string>'
]
],
'application' => '<string>',
'policy' => '<string>',
'session' => '<string>',
'metadata' => [
],
'fail_fast' => false,
'breakdown_all' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.guardion.ai/v1/guard"
payload := strings.NewReader("{\n \"messages\": [\n {\n \"content\": \"<string>\"\n }\n ],\n \"application\": \"<string>\",\n \"policy\": \"<string>\",\n \"session\": \"<string>\",\n \"metadata\": {},\n \"fail_fast\": false,\n \"breakdown_all\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.guardion.ai/v1/guard")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"messages\": [\n {\n \"content\": \"<string>\"\n }\n ],\n \"application\": \"<string>\",\n \"policy\": \"<string>\",\n \"session\": \"<string>\",\n \"metadata\": {},\n \"fail_fast\": false,\n \"breakdown_all\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.guardion.ai/v1/guard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messages\": [\n {\n \"content\": \"<string>\"\n }\n ],\n \"application\": \"<string>\",\n \"policy\": \"<string>\",\n \"session\": \"<string>\",\n \"metadata\": {},\n \"fail_fast\": false,\n \"breakdown_all\": false\n}"
response = http.request(request)
puts response.read_body{
"time": 123,
"created": 123,
"flagged": true,
"id": "<string>",
"breakdown": [
{
"policy_id": "<string>",
"detector": "<string>",
"detected": true,
"threshold": 123,
"score": 123,
"result": [
{}
]
}
],
"correction": {
"choices": [
{
"content": "<string>"
}
]
}
}Guardion API endpoints
Guard API
The primary entry point for real-time evaluation. Scans messages against your policies and returns a breakdown of violations and a redacted correction choice.
POST
/
v1
/
guard
Evaluate and Protect
curl --request POST \
--url https://api.guardion.ai/v1/guard \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{
"content": "<string>"
}
],
"application": "<string>",
"policy": "<string>",
"session": "<string>",
"metadata": {},
"fail_fast": false,
"breakdown_all": false
}
'import requests
url = "https://api.guardion.ai/v1/guard"
payload = {
"messages": [{ "content": "<string>" }],
"application": "<string>",
"policy": "<string>",
"session": "<string>",
"metadata": {},
"fail_fast": False,
"breakdown_all": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [{content: '<string>'}],
application: '<string>',
policy: '<string>',
session: '<string>',
metadata: {},
fail_fast: false,
breakdown_all: false
})
};
fetch('https://api.guardion.ai/v1/guard', 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.guardion.ai/v1/guard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'messages' => [
[
'content' => '<string>'
]
],
'application' => '<string>',
'policy' => '<string>',
'session' => '<string>',
'metadata' => [
],
'fail_fast' => false,
'breakdown_all' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.guardion.ai/v1/guard"
payload := strings.NewReader("{\n \"messages\": [\n {\n \"content\": \"<string>\"\n }\n ],\n \"application\": \"<string>\",\n \"policy\": \"<string>\",\n \"session\": \"<string>\",\n \"metadata\": {},\n \"fail_fast\": false,\n \"breakdown_all\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.guardion.ai/v1/guard")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"messages\": [\n {\n \"content\": \"<string>\"\n }\n ],\n \"application\": \"<string>\",\n \"policy\": \"<string>\",\n \"session\": \"<string>\",\n \"metadata\": {},\n \"fail_fast\": false,\n \"breakdown_all\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.guardion.ai/v1/guard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messages\": [\n {\n \"content\": \"<string>\"\n }\n ],\n \"application\": \"<string>\",\n \"policy\": \"<string>\",\n \"session\": \"<string>\",\n \"metadata\": {},\n \"fail_fast\": false,\n \"breakdown_all\": false\n}"
response = http.request(request)
puts response.read_body{
"time": 123,
"created": 123,
"flagged": true,
"id": "<string>",
"breakdown": [
{
"policy_id": "<string>",
"detector": "<string>",
"detected": true,
"threshold": 123,
"score": 123,
"result": [
{}
]
}
],
"correction": {
"choices": [
{
"content": "<string>"
}
]
}
}Authorizations
Use your Guardion API Key as a Bearer token.
Body
application/json
Show child attributes
Show child attributes
The unique ID of the application calling the API.
Specific policy ID to enforce. Defaults to application global policy if null.
A unique identifier to track conversations across multiple turns.
Key-value pairs for custom filtering in the dashboard.
If true, stops processing and returns immediately after the first policy violation.
If true, returns details for all detectors, including those that did not flag.
Response
200 - application/json
Evaluation complete. Returns flagged status and corrections.
⌘I