Tinplate 42 Edge APIs

Security & Secrets Tier 2 Ready POST /v1/security-headers

Security Headers & CSP Checker API — Grade HTTP Response Headers (A+ to F)

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.

Try It Live in Your Browser · No API Key Required

1. Interactive Sandbox & Sample JSON Output

200 OK · Ready

Editable Request JSON (POST /v1/security-headers)

Live 200 OK Response Envelope

{
  "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
  }
}

2. Quickstart Code Examples

Full TypeScript & Python SDK →
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"
      }
    }
  }
}
OpenAPI 3.0.3 Schema Contract

Request Parameters & Response Schema Reference

Request Body Parameters (POST /v1/security-headers)

Parameter Type & Constraints Description
urloptional string
maxLen: 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.

Response 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'

3. What HTTP Security Header Scanner API Detects & Validates

Honest Engineering Boundaries

4. Known Limitations & Test Verification

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 →

5. Marketplace Plans & Payload Quotas

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

6. Frequently Asked Questions

Can I scan internal staging apps without exposing them to the internet?

Yes! Pass the response headers map directly in the headers JSON field—no outbound URL fetch is required.

Does it parse CSP directives in detail?

Yes, it parses every CSP directive and flags dangerous tokens like 'unsafe-inline', 'unsafe-eval', and data:/http: wildcards.

Does it provide copy-paste remediation headers?

Yes, each finding includes a recommended header value snippet.

Zero Payload Logging

7. Data Handling, Privacy & Marketplace Proxy Disclosure

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.

Related Tinplate APIs

🧱 POST /v1/ssrf-firewall Security & Secrets

Agent URL & SSRF Firewall API

Validate URLs and redirect chains against SSRF, private IPs, and cloud metadata targets.

📧 POST /v1/email-dns Live on Hub

Email DNS Deliverability Auditor API

Audit MX, SPF 10-lookup limits, DMARC, DKIM, BIMI, and MTA-STS with a 0–100 score.

🤖 POST /v1/robots-llms-analyzer Developer Utilities

robots.txt & llms.txt AI Crawler Analyzer & Generator API

Audit which AI crawlers your robots.txt allows and generate a valid llms.txt file.