Email & Domain
Tier 3 Ready
POST /v1/consent-tokens/issue
Issue and verify stateless HMAC unsubscribe tokens and RFC 8058 List-Unsubscribe headers. Issue and verify stateless, tamper-proof HMAC-SHA256 unsubscribe tokens and RFC 8058 List-Unsubscribe headers without a token database.
Additional endpoints in this module: POST /v1/consent-tokens/verify
POST /v1/consent-tokens/issue){
"ok": true,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkNUSyIsImtpZCI6InYxIn0.eyJzdWIiOiJ1c2VyXzg4MjEiLCJzY29wZSI6Im1hcmtldGluZ193ZWVrbHkiLCJwdXJwb3NlIjpudWxsLCJpYXQiOjE3OTQ2Nzc5NzcsImV4cCI6MTc5NzI2OTk3NywianRpIjoiZTdiZjdlZWUyM2YwNTE5ZjZmMTc5YzdmIn0.RtcMe0_1rKoCjq2g-CU-YO2c3hLtUniFFU2M6B7U8PM",
"kid": "v1",
"issued_at": "2026-11-14T17:39:37.000Z",
"expires_at": "2026-12-14T17:39:37.000Z",
"payload": {
"sub": "user_8821",
"scope": "marketing_weekly",
"purpose": null,
"iat": 1794677977,
"exp": 1797269977,
"jti": "e7bf7eee23f0519f6f179c7f"
},
"rfc8058_headers": null
},
"meta": {
"request_id": "req_ct_01",
"ms": 1
}
}
curl -X POST "https://api.tinplate.dev/v1/consent-tokens/issue" \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-d '{"subject":"user_8821","scope":"marketing_weekly","secret":"unsubscribe-hmac-secret-key-2026","ttl_seconds":2592000,"unsubscribe_url_base":"https://example.com/unsub"}'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/consent-tokens/issue", {
"subject": "user_8821",
"scope": "marketing_weekly",
"secret": "unsubscribe-hmac-secret-key-2026",
"ttl_seconds": 2592000,
"unsubscribe_url_base": "https://example.com/unsub"
});
console.log(`[${meta.ms} ms]`, data);import requests
response = requests.post(
"https://api.tinplate.dev/v1/consent-tokens/issue",
headers={
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
json={
"subject": "user_8821",
"scope": "marketing_weekly",
"secret": "unsubscribe-hmac-secret-key-2026",
"ttl_seconds": 2592000,
"unsubscribe_url_base": "https://example.com/unsub"
}
)
print(response.json())const response = await fetch("https://api.tinplate.dev/v1/consent-tokens/issue", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
},
body: JSON.stringify({
"subject": "user_8821",
"scope": "marketing_weekly",
"secret": "unsubscribe-hmac-secret-key-2026",
"ttl_seconds": 2592000,
"unsubscribe_url_base": "https://example.com/unsub"
}),
});
const result = await response.json();
console.log(result);{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tinplate_consent_tokens",
"arguments": {
"subject": "user_8821",
"scope": "marketing_weekly",
"secret": "unsubscribe-hmac-secret-key-2026",
"ttl_seconds": 2592000,
"unsubscribe_url_base": "https://example.com/unsub"
}
}
}POST /v1/consent-tokens/issue)| Parameter | Type & Constraints | Description |
|---|---|---|
subjectrequired |
stringminLen: 1, maxLen: 256 |
Opaque subscriber or user identifier (avoid raw email if not needed). |
scoperequired |
stringminLen: 1, maxLen: 128 |
Consent or unsubscribe scope. |
purposeoptional |
stringminLen: 1, maxLen: 128 |
Field 'purpose' |
ttl_secondsoptional |
integermin: 60, max: 31536000 |
Token lifetime in seconds (default 30 days). |
kidoptional |
stringminLen: 1, maxLen: 64 |
Key identifier for key rotation. |
secretrequired |
stringminLen: 16, maxLen: 512 |
Tenant HMAC-SHA256 signing secret (min 16 chars, never logged or stored). |
unsubscribe_base_urloptional |
stringmaxLen: 512 |
Optional HTTPS URL to generate RFC 8058 List-Unsubscribe headers. |
data Object Fields (200 OK)| Field | Type | Description |
|---|---|---|
token |
string |
Field 'token' |
kid |
string |
Field 'kid' |
issued_at |
string |
Field 'issued_at' |
expires_at |
string |
Field 'expires_at' |
payload |
object |
Field 'payload' |
rfc8058_headers |
object | null |
Field 'rfc8058_headers' |
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 |
Gmail and Yahoo mandate RFC 8058 one-click unsubscribe headers on all marketing and bulk emails.
No. The token is self-contained and cryptographically signed with your HMAC secret.
Send the token and your secret to POST /v1/consent-tokens/verify to recover the verified subject and channel.
Signing secrets and subject identifiers are never logged or stored.
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/email-dns
Live on Hub
Audit MX, SPF 10-lookup limits, DMARC, DKIM, BIMI, and MTA-STS with a 0–100 score.
POST /v1/email-dns-generator
Email & Domain
Lint existing SPF/DMARC strings and generate clean, RFC-compliant DNS TXT records.
POST /v1/agent-action-receipts/issue
AI Safety & Agents
Issue and verify tamper-evident HMAC-signed receipts for autonomous AI agent actions.