Security & Secrets
Tier 2 Ready
POST /v1/security-headers
Audit CSP, HSTS, and browser security headers with an A+ to F grade and fix snippets. Audit HTTP security headers (CSP, HSTS, X-Frame-Options, COOP/COEP, Permissions-Policy) from a header map or live URL and get an A+ to F grade.
POST /v1/security-headers){
"ok": true,
"data": {
"target_url": null,
"http_status": null,
"score": 55,
"grade": "D",
"checks": {
"hsts": {
"status": "pass",
"score": 25,
"max_score": 25,
"value": "max-age=63072000; includeSubDomains; preload",
"issues": [],
"fix": null
},
"csp": {
"status": "fail",
"score": 0,
"max_score": 25,
"value": null,
"issues": [
"Missing Content-Security-Policy header"
],
"fix": "default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'"
},
"x_content_type_options": {
"status": "pass",
"score": 15,
"max_score": 15,
"value": "nosniff",
"issues": [],
"fix": null
},
"frame_protection": {
"status": "pass",
"score": 15,
"max_score": 15,
"value": "DENY",
"issues": [],
"fix": null
},
"referrer_policy": {
"status": "fail",
"score": 0,
"max_score": 10,
"value": null,
"issues": [
"Missing Referrer-Policy header"
],
"fix": "strict-origin-when-cross-origin"
},
"permissions_policy": {
"status": "warn",
"score": 0,
"max_score": 10,
"value": null,
"issues": [
"Missing Permissions-Policy header"
],
"fix": "geolocation=(), microphone=(), camera=()"
}
},
"cors": {
"allow_origin": null,
"allow_credentials": null,
"wildcard": false,
"misconfigured": false
},
"fixes": [
{
"header": "Content-Security-Policy",
"priority": "high",
"recommended_value": "default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'"
},
{
"header": "Referrer-Policy",
"priority": "medium",
"recommended_value": "strict-origin-when-cross-origin"
},
{
"header": "Permissions-Policy",
"priority": "low",
"recommended_value": "geolocation=(), microphone=(), camera=()"
}
]
},
"meta": {
"request_id": "req_sh_01",
"ms": 1
}
}
curl -X POST "https://api.tinplate.dev/v1/security-headers" \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-d '{"headers":{"strict-transport-security":"max-age=63072000; includeSubDomains; preload","x-content-type-options":"nosniff","x-frame-options":"DENY"}}'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/security-headers", {
"headers": {
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY"
}
});
console.log(`[${meta.ms} ms]`, data);import requests
response = requests.post(
"https://api.tinplate.dev/v1/security-headers",
headers={
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
json={
"headers": {
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY"
}
}
)
print(response.json())const response = await fetch("https://api.tinplate.dev/v1/security-headers", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
body: JSON.stringify({
"headers": {
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY"
}
}),
});
const result = await response.json();
console.log(result);{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tinplate_security_headers",
"arguments": {
"headers": {
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY"
}
}
}
}POST /v1/security-headers)| Parameter | Type & Constraints | Description |
|---|---|---|
urloptional |
stringmaxLen: 2048 |
Target URL to fetch via private fetcher and inspect security headers. |
headersoptional |
object |
Optional raw response headers to audit offline without making an HTTP request. |
data Object Fields (200 OK)| Field | Type | Description |
|---|---|---|
target_url |
string | null |
Field 'target_url' |
http_status |
integer | null |
Field 'http_status' |
score |
integer |
Field 'score' |
grade |
"A" | "B" | "C" | "D" | "F" |
Field 'grade' |
checks |
object |
Field 'checks' |
cors |
object |
Field 'cors' |
fixes |
object[] |
Field 'fixes' |
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 |
Yes! Pass the response headers map directly in the headers JSON field—no outbound URL fetch is required.
Yes, it parses every CSP directive and flags dangerous tokens like 'unsafe-inline', 'unsafe-eval', and data:/http: wildcards.
Yes, each finding includes a recommended header value snippet.
Stateless header evaluation; zero logging.
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/ssrf-firewall
Security & Secrets
Validate URLs and redirect chains against SSRF, private IPs, and cloud metadata targets.
POST /v1/email-dns
Live on Hub
Audit MX, SPF 10-lookup limits, DMARC, DKIM, BIMI, and MTA-STS with a 0–100 score.
POST /v1/robots-llms-analyzer
Developer Utilities
Audit which AI crawlers your robots.txt allows and generate a valid llms.txt file.