curl --request POST \
--url https://api.enkryptai.com/guardrails/policy/scan-url \
--header 'Content-Type: application/json' \
--header 'X-Enkrypt-Policy: <x-enkrypt-policy>' \
--header 'apikey: <api-key>' \
--data '
{
"url": "<string>",
"user_metadata": {
"request_id": "abc-123",
"source": "mobile-app"
}
}
'import requests
url = "https://api.enkryptai.com/guardrails/policy/scan-url"
payload = {
"url": "<string>",
"user_metadata": {
"request_id": "abc-123",
"source": "mobile-app"
}
}
headers = {
"X-Enkrypt-Policy": "<x-enkrypt-policy>",
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Enkrypt-Policy': '<x-enkrypt-policy>',
apikey: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({url: '<string>', user_metadata: {request_id: 'abc-123', source: 'mobile-app'}})
};
fetch('https://api.enkryptai.com/guardrails/policy/scan-url', 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.enkryptai.com/guardrails/policy/scan-url",
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([
'url' => '<string>',
'user_metadata' => [
'request_id' => 'abc-123',
'source' => 'mobile-app'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Enkrypt-Policy: <x-enkrypt-policy>",
"apikey: <api-key>"
],
]);
$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.enkryptai.com/guardrails/policy/scan-url"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"user_metadata\": {\n \"request_id\": \"abc-123\",\n \"source\": \"mobile-app\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Enkrypt-Policy", "<x-enkrypt-policy>")
req.Header.Add("apikey", "<api-key>")
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.enkryptai.com/guardrails/policy/scan-url")
.header("X-Enkrypt-Policy", "<x-enkrypt-policy>")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"user_metadata\": {\n \"request_id\": \"abc-123\",\n \"source\": \"mobile-app\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enkryptai.com/guardrails/policy/scan-url")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Enkrypt-Policy"] = '<x-enkrypt-policy>'
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"user_metadata\": {\n \"request_id\": \"abc-123\",\n \"source\": \"mobile-app\"\n }\n}"
response = http.request(request)
puts response.read_body{
"summary": {
"injection_attack": 1,
"bias": 1,
"policy_violation": 0
},
"details": {
"url": "https://example.com",
"metadata": {
"title": "Example Domain",
"language": "en"
},
"total_fragments": 2,
"fragments_with_detections": 2,
"detections": [
{
"unsafe_content": "Example Domain",
"chunk_type": "title",
"triggered_detectors": [
"bias"
],
"detector_details": {
"injection_attack": {
"safe": "0.999417",
"attack": "0.000583",
"most_unsafe_content": "Example Domain",
"compliance_mapping": {}
},
"policy_violation": {
"policy_violation": {
"violating_policy": "No Violation Found",
"explanation": "No Violation Found"
}
},
"bias": {
"bias": {
"bias_detected": true,
"debiased_text": "Example Website",
"compliance_mapping": {
"owasp_llm_2025": [
"LLM09:2025 Misinformation",
"LLM04:2025 Data and Model Poisoning"
],
"mitre_atlas": [],
"nist_ai_rmf": [
"MEASURE 2.1-2.5 (AI system bias evaluation & management)"
],
"eu_ai_act": [
"Article 10(2)(f), Article 15(3) (Bias detection, correction & mitigation)"
],
"iso_iec_standards": [
"ISO/IEC TR 24027: 5.2 (Bias in AI systems)"
]
}
}
}
}
},
{
"unsafe_content": "Example Domain This domain is for use in documentation examples without needing permission. Avoid use in operations. Learn more",
"chunk_type": "text_block",
"triggered_detectors": [
"injection_attack",
"bias"
],
"detector_details": {
"injection_attack": {
"safe": "0.030481",
"attack": "0.969519",
"most_unsafe_content": "Example Domain This domain is for use in documentation examples without needing permission. Avoid use in operations. Learn more",
"compliance_mapping": {
"owasp_llm_2025": [
"LLM01:2025 Prompt Injection"
],
"mitre_atlas": [
"AML.T0051: LLM Prompt Injection",
"AML.T0054: LLM Jailbreaking"
],
"nist_ai_rmf": [
"MAP 2.3, MEASURE 2.3 (Input manipulation & adversarial attacks)"
],
"eu_ai_act": [
"Article 15(4) (Robustness against manipulation)"
],
"iso_iec_standards": [
"ISO/IEC 42001: 6.4.3",
"ISO/IEC 27001: A.14.2"
]
}
},
"policy_violation": {
"policy_violation": {
"violating_policy": "No Violation Found",
"explanation": "No Violation Found"
}
},
"bias": {
"bias": {
"bias_detected": true,
"debiased_text": "This domain is intended for use in documentation purposes, providing a safe space for experimentation without impacting live systems.",
"compliance_mapping": {
"owasp_llm_2025": [
"LLM09:2025 Misinformation",
"LLM04:2025 Data and Model Poisoning"
],
"mitre_atlas": [],
"nist_ai_rmf": [
"MEASURE 2.1-2.5 (AI system bias evaluation & management)"
],
"eu_ai_act": [
"Article 10(2)(f), Article 15(3) (Bias detection, correction & mitigation)"
],
"iso_iec_standards": [
"ISO/IEC TR 24027: 5.2 (Bias in AI systems)"
]
}
}
}
}
}
],
"combined_highlight_url": "https://example.com#:~:text=Example%20Domain&text=Example%20Domain%20This,operations.%20Learn%20more"
}
}Policy Scan URL (Legacy)
Scan a URL for security threats using a specific policy
curl --request POST \
--url https://api.enkryptai.com/guardrails/policy/scan-url \
--header 'Content-Type: application/json' \
--header 'X-Enkrypt-Policy: <x-enkrypt-policy>' \
--header 'apikey: <api-key>' \
--data '
{
"url": "<string>",
"user_metadata": {
"request_id": "abc-123",
"source": "mobile-app"
}
}
'import requests
url = "https://api.enkryptai.com/guardrails/policy/scan-url"
payload = {
"url": "<string>",
"user_metadata": {
"request_id": "abc-123",
"source": "mobile-app"
}
}
headers = {
"X-Enkrypt-Policy": "<x-enkrypt-policy>",
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Enkrypt-Policy': '<x-enkrypt-policy>',
apikey: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({url: '<string>', user_metadata: {request_id: 'abc-123', source: 'mobile-app'}})
};
fetch('https://api.enkryptai.com/guardrails/policy/scan-url', 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.enkryptai.com/guardrails/policy/scan-url",
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([
'url' => '<string>',
'user_metadata' => [
'request_id' => 'abc-123',
'source' => 'mobile-app'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Enkrypt-Policy: <x-enkrypt-policy>",
"apikey: <api-key>"
],
]);
$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.enkryptai.com/guardrails/policy/scan-url"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"user_metadata\": {\n \"request_id\": \"abc-123\",\n \"source\": \"mobile-app\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Enkrypt-Policy", "<x-enkrypt-policy>")
req.Header.Add("apikey", "<api-key>")
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.enkryptai.com/guardrails/policy/scan-url")
.header("X-Enkrypt-Policy", "<x-enkrypt-policy>")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"user_metadata\": {\n \"request_id\": \"abc-123\",\n \"source\": \"mobile-app\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enkryptai.com/guardrails/policy/scan-url")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Enkrypt-Policy"] = '<x-enkrypt-policy>'
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"user_metadata\": {\n \"request_id\": \"abc-123\",\n \"source\": \"mobile-app\"\n }\n}"
response = http.request(request)
puts response.read_body{
"summary": {
"injection_attack": 1,
"bias": 1,
"policy_violation": 0
},
"details": {
"url": "https://example.com",
"metadata": {
"title": "Example Domain",
"language": "en"
},
"total_fragments": 2,
"fragments_with_detections": 2,
"detections": [
{
"unsafe_content": "Example Domain",
"chunk_type": "title",
"triggered_detectors": [
"bias"
],
"detector_details": {
"injection_attack": {
"safe": "0.999417",
"attack": "0.000583",
"most_unsafe_content": "Example Domain",
"compliance_mapping": {}
},
"policy_violation": {
"policy_violation": {
"violating_policy": "No Violation Found",
"explanation": "No Violation Found"
}
},
"bias": {
"bias": {
"bias_detected": true,
"debiased_text": "Example Website",
"compliance_mapping": {
"owasp_llm_2025": [
"LLM09:2025 Misinformation",
"LLM04:2025 Data and Model Poisoning"
],
"mitre_atlas": [],
"nist_ai_rmf": [
"MEASURE 2.1-2.5 (AI system bias evaluation & management)"
],
"eu_ai_act": [
"Article 10(2)(f), Article 15(3) (Bias detection, correction & mitigation)"
],
"iso_iec_standards": [
"ISO/IEC TR 24027: 5.2 (Bias in AI systems)"
]
}
}
}
}
},
{
"unsafe_content": "Example Domain This domain is for use in documentation examples without needing permission. Avoid use in operations. Learn more",
"chunk_type": "text_block",
"triggered_detectors": [
"injection_attack",
"bias"
],
"detector_details": {
"injection_attack": {
"safe": "0.030481",
"attack": "0.969519",
"most_unsafe_content": "Example Domain This domain is for use in documentation examples without needing permission. Avoid use in operations. Learn more",
"compliance_mapping": {
"owasp_llm_2025": [
"LLM01:2025 Prompt Injection"
],
"mitre_atlas": [
"AML.T0051: LLM Prompt Injection",
"AML.T0054: LLM Jailbreaking"
],
"nist_ai_rmf": [
"MAP 2.3, MEASURE 2.3 (Input manipulation & adversarial attacks)"
],
"eu_ai_act": [
"Article 15(4) (Robustness against manipulation)"
],
"iso_iec_standards": [
"ISO/IEC 42001: 6.4.3",
"ISO/IEC 27001: A.14.2"
]
}
},
"policy_violation": {
"policy_violation": {
"violating_policy": "No Violation Found",
"explanation": "No Violation Found"
}
},
"bias": {
"bias": {
"bias_detected": true,
"debiased_text": "This domain is intended for use in documentation purposes, providing a safe space for experimentation without impacting live systems.",
"compliance_mapping": {
"owasp_llm_2025": [
"LLM09:2025 Misinformation",
"LLM04:2025 Data and Model Poisoning"
],
"mitre_atlas": [],
"nist_ai_rmf": [
"MEASURE 2.1-2.5 (AI system bias evaluation & management)"
],
"eu_ai_act": [
"Article 10(2)(f), Article 15(3) (Bias detection, correction & mitigation)"
],
"iso_iec_standards": [
"ISO/IEC TR 24027: 5.2 (Bias in AI systems)"
]
}
}
}
}
}
],
"combined_highlight_url": "https://example.com#:~:text=Example%20Domain&text=Example%20Domain%20This,operations.%20Learn%20more"
}
}X-Enkrypt-Mode.Authorizations
Headers
Name of the policy to apply
Body
The URL to scan and analyze.
Optional arbitrary metadata object echoed back in the response. Limits: at most 16 top-level keys, key names up to 64 characters, nesting depth up to 3, total serialized size up to 4 KB. When provided and valid, this object is also echoed as a top-level user_metadata key on error responses (4xx/5xx) of endpoints that accept it; invalid or oversized metadata is never echoed, including on the 422 response it causes.
{ "request_id": "abc-123", "source": "mobile-app" }
Response
Scan results for the provided URL using the specified policy.
Summary counts of detections by detector type.
Show child attributes
Show child attributes
Detailed scan results including URL metadata and fragment-level information.
Show child attributes
Show child attributes
Optional arbitrary metadata object echoed back in the response. Limits: at most 16 top-level keys, key names up to 64 characters, nesting depth up to 3, total serialized size up to 4 KB. When provided and valid, this object is also echoed as a top-level user_metadata key on error responses (4xx/5xx) of endpoints that accept it; invalid or oversized metadata is never echoed, including on the 422 response it causes.
{ "request_id": "abc-123", "source": "mobile-app" }

