AI Data Prep
Live on RapidAPI & Zyla
POST /v1/agent-code-guard
Audit LLM-generated Python, JS/TS, Shell, or GitHub Actions code for sandbox escapes before execution. Static security gate for LLM-generated Python, JavaScript/TypeScript, Shell, and GitHub Actions YAML before execution. Detects RCE sinks, cloud IMDS SSRF, filesystem escapes, env harvesting, and CI pwn-requests.
POST /v1/agent-code-guard){
"ok": true,
"data": {
"safe": false,
"verdict": "block",
"risk_score": 100,
"detected_language": "python",
"clean_code": "import os, pickle\npayload = pickle.loads(user_bytes)\nos.system('curl -s http://169.254.169.254/latest/meta-data/')",
"categories_triggered": [
"insecure_deserialization",
"arbitrary_code_execution",
"network_ssrf_exfiltration"
],
"findings": [
{
"rule_id": "PY_INSECURE_PICKLE",
"category": "insecure_deserialization",
"severity": "critical",
"line": 2,
"snippet": "payload = pickle.loads(user_bytes)",
"message": "pickle.loads() executes arbitrary Python bytecode during deserialization.",
"remediation": "Use json.loads() or a strict Pydantic/TypedDict schema instead of pickle."
}
]
},
"meta": {
"request_id": "req_code_01",
"ms": 1
}
}
curl -X POST "https://api.tinplate.dev/v1/agent-code-guard" \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-d '{"code":"import os, pickle\npayload = pickle.loads(user_bytes)\nos.system('\''curl -s http://169.254.169.254/latest/meta-data/'\'')","language":"python","allow_network":false,"allow_filesystem_write":false}'import { TinplateClient } from "@tinplate/sdk"; // npm install @tinplate/sdk
const tinplate = new TinplateClient({
rapidApiKey: process.env.RAPIDAPI_KEY!,
});
const { data, meta } = await tinplate.call("/v1/agent-code-guard", {
"code": "import os, pickle\npayload = pickle.loads(user_bytes)\nos.system('curl -s http://169.254.169.254/latest/meta-data/')",
"language": "python",
"allow_network": false,
"allow_filesystem_write": false
});
console.log(`[${meta.ms} ms]`, data);import requests
response = requests.post(
"https://api.tinplate.dev/v1/agent-code-guard",
headers={
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
json={
"code": "import os, pickle\npayload = pickle.loads(user_bytes)\nos.system('curl -s http://169.254.169.254/latest/meta-data/')",
"language": "python",
"allow_network": false,
"allow_filesystem_write": false
}
)
print(response.json())const response = await fetch("https://api.tinplate.dev/v1/agent-code-guard", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
body: JSON.stringify({
"code": "import os, pickle\npayload = pickle.loads(user_bytes)\nos.system('curl -s http://169.254.169.254/latest/meta-data/')",
"language": "python",
"allow_network": false,
"allow_filesystem_write": false
}),
});
const result = await response.json();
console.log(result);{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tinplate_agent_code_guard",
"arguments": {
"code": "import os, pickle\npayload = pickle.loads(user_bytes)\nos.system('curl -s http://169.254.169.254/latest/meta-data/')",
"language": "python",
"allow_network": false,
"allow_filesystem_write": false
}
}
}POST /v1/agent-code-guard)| Parameter | Type & Constraints | Description |
|---|---|---|
coderequired |
stringminLen: 1, maxLen: 262144 |
LLM-generated Python, JavaScript/TypeScript, or GitHub Actions YAML code (raw or inside markdown code fences). |
languageoptional |
"auto" | "python" | "javascript" | "typescript" | "github_actions_yaml"default: "auto" |
Source language of the snippet (default 'auto'). |
allow_networkoptional |
booleandefault: false |
Whether outbound HTTP/socket network calls are permitted in this sandbox. |
allow_filesystem_writeoptional |
booleandefault: false |
Whether destructive or host-level filesystem writes are permitted. |
data Object Fields (200 OK)| Field | Type | Description |
|---|---|---|
safe |
boolean |
Field 'safe' |
verdict |
"allow" | "review" | "block" |
Field 'verdict' |
risk_score |
number |
Field 'risk_score' |
detected_language |
"python" | "javascript" | "typescript" | "github_actions_yaml" |
Field 'detected_language' |
clean_code |
string |
Code with surrounding markdown ``` fences stripped. |
categories_triggered |
string[] |
Field 'categories_triggered' |
findings |
object[] |
Field 'findings' |
Release Version: v1.0.7 ·
Last Verified / Benchmarked: 14 November 2026 ·
Latency Note: Sub-millisecond figures measure in-Worker V8 compute time (typical client HTTPS network RTT to the nearest Cloudflare PoP is 15–65 ms) ·
See Full Portfolio Benchmarks & Corpora →
| Plan | Monthly Price | Included Requests | Rate Limit | Max Request Payload | Best For |
|---|---|---|---|---|---|
| BASIC | $0.00 / month | 500 / month (hard limit) | 10 req / min | 64 KB | Evaluation, local development & CI smoke tests |
| PRO | $9.99 / month | 15,000 / month | 60 req / min | 128 KB | Solo developers & production apps |
| ULTRA | $29.99 / month | 100,000 / month | 300 req / min | 256 KB | Growing SaaS & multi-agent pipelines |
| MEGA | $79.99 / month | 500,000 / month | 1,000 req / min | 256 KB | High-volume enterprise workloads |
API #32 inspects single-line shell commands and SQL queries. API #42 audits multi-line Python scripts, Node.js/TypeScript programs, and GitHub Actions YAML workflows generated by coding agents.
Yes—pass blocked_imports (e.g. ['socket', 'ctypes', 'fs']) and any matching import or require() statement immediately triggers a block verdict.
Submitted code snippets and CI workflows are scanned in memory and discarded immediately.
Worker Zero-Logging Guarantee: Cloudflare Workers Observability and invocation logging are disabled in configuration
(observability.enabled = false, head_sampling_rate = 0, invocation_logs = false). Payloads are processed strictly in volatile V8 memory and never logged or stored by Tinplate.
Marketplace Proxies vs. Direct Bearer Key: Requests sent via RapidAPI or Zyla API Hub pass through those marketplaces' proxy infrastructure (subject to their respective privacy policies). Security-sensitive workloads requiring end-to-end zero-intermediary processing can connect directly to https://api.tinplate.dev using a Direct Bearer Key (Authorization: Bearer <API_KEY>).
Read our full Privacy Notice and OpenAPI 3.0.3 JSON Schema.
POST /v1/command-sql-guard
Tier 1
Audit agent shell commands and Text-to-SQL queries for RCE, reverse shells, and destructive SQL.
POST /v1/tool-call-validator
AI Safety & Agents
Validate and auto-repair broken LLM tool-call arguments against your JSON Schema.
POST /v1/ssrf-firewall
Security & Secrets
Validate URLs and redirect chains against SSRF, private IPs, and cloud metadata targets.