Developer Utilities
Tier 3 Ready
POST /v1/semver-lockfile-judge
Diff two package.json files to flag breaking SemVer bumps and risky dependency changes. Compare two package.json manifests or dependency maps to flag major breaking upgrades, 0.x instability, prerelease tags, git/tarball URLs, and supply-chain risks.
POST /v1/semver-lockfile-judge){
"ok": true,
"data": {
"verdict": "block",
"risk_score": 64,
"breaking_count": 0,
"summary": {
"total_changes": 3,
"major_breaking": 0,
"zero_ver_breaking": 0,
"downgrades": 0,
"unpinned_or_vcs": 1,
"added": 0,
"removed": 0,
"minor_or_patch": 1
},
"changes": [
{
"package": "hono",
"section": "dependencies",
"before_spec": "^4.6.0",
"after_spec": "^4.7.1",
"change_type": "minor_upgrade",
"risk": "low",
"explanation": "Backward-compatible minor upgrade for hono: ^4.6.0 -> ^4.7.1."
},
{
"package": "left-pad",
"section": "dependencies",
"before_spec": null,
"after_spec": "github:user/repo",
"change_type": "unpinned_or_vcs",
"risk": "critical",
"explanation": "Added left-pad@github:user/repo with unpinned tag, wildcard, or VCS URL."
},
{
"package": "zod",
"section": "dependencies",
"before_spec": "^3.23.8",
"after_spec": "^4.0.0-beta.1",
"change_type": "prerelease_introduced",
"risk": "high",
"explanation": "Switched zod from stable (^3.23.8) to pre-release (^4.0.0-beta.1)."
}
],
"recommendations": [
"Pin wildcard (*, latest) and VCS dependencies to exact SemVer ranges or commit SHAs."
]
},
"meta": {
"request_id": "req_slj_01",
"ms": 1
}
}
curl -X POST "https://api.tinplate.dev/v1/semver-lockfile-judge" \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-d '{"before":{"dependencies":{"zod":"^3.23.8","hono":"^4.6.0"}},"after":{"dependencies":{"zod":"^4.0.0-beta.1","hono":"^4.7.1","left-pad":"github:user/repo"}}}'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/semver-lockfile-judge", {
"before": {
"dependencies": {
"zod": "^3.23.8",
"hono": "^4.6.0"
}
},
"after": {
"dependencies": {
"zod": "^4.0.0-beta.1",
"hono": "^4.7.1",
"left-pad": "github:user/repo"
}
}
});
console.log(`[${meta.ms} ms]`, data);import requests
response = requests.post(
"https://api.tinplate.dev/v1/semver-lockfile-judge",
headers={
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
json={
"before": {
"dependencies": {
"zod": "^3.23.8",
"hono": "^4.6.0"
}
},
"after": {
"dependencies": {
"zod": "^4.0.0-beta.1",
"hono": "^4.7.1",
"left-pad": "github:user/repo"
}
}
}
)
print(response.json())const response = await fetch("https://api.tinplate.dev/v1/semver-lockfile-judge", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
body: JSON.stringify({
"before": {
"dependencies": {
"zod": "^3.23.8",
"hono": "^4.6.0"
}
},
"after": {
"dependencies": {
"zod": "^4.0.0-beta.1",
"hono": "^4.7.1",
"left-pad": "github:user/repo"
}
}
}),
});
const result = await response.json();
console.log(result);{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tinplate_semver_lockfile_judge",
"arguments": {
"before": {
"dependencies": {
"zod": "^3.23.8",
"hono": "^4.6.0"
}
},
"after": {
"dependencies": {
"zod": "^4.0.0-beta.1",
"hono": "^4.7.1",
"left-pad": "github:user/repo"
}
}
}
}
}POST /v1/semver-lockfile-judge)| Parameter | Type & Constraints | Description |
|---|---|---|
beforerequired |
string | object |
Field 'before' |
afterrequired |
string | object |
Field 'after' |
include_dev_dependenciesoptional |
booleandefault: true |
Field 'include_dev_dependencies' |
fail_on_zero_ver_minoroptional |
booleandefault: true |
Field 'fail_on_zero_ver_minor' |
data Object Fields (200 OK)| Field | Type | Description |
|---|---|---|
verdict |
"allow" | "review" | "block" |
Field 'verdict' |
risk_score |
integer |
Field 'risk_score' |
breaking_count |
integer |
Field 'breaking_count' |
summary |
object |
Field 'summary' |
changes |
object[] |
Field 'changes' |
recommendations |
string[] |
Field 'recommendations' |
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 |
Per SemVer 2.0.0 spec clause 4, initial development versions (0.y.z) treat minor bumps (e.g. 0.4.0 -> 0.5.0) as breaking changes.
Yes, if a diff adds or modifies preinstall, install, or postinstall scripts, it raises a supply-chain review flag.
Yes—auto-merge when verdict is 'safe' (patch/minor bumps only, no new scripts or git URLs) and require human review on 'review' or 'high_risk'.
Stateless in-memory manifest diffing; zero retention.
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/schema-diff
Developer Utilities
Diff two OpenAPI 3.x or JSON Schemas to catch breaking changes and recommend SemVer bumps.
POST /v1/secret-scanner
Tier 1
Detect and mask leaked API keys, JWTs, and private keys in logs, diffs, and prompts.
POST /v1/mcp-manifest-linter
Tier 1
Audit MCP server manifests for hidden tool poisoning, shell risks, and excessive permissions.