Base URL
https://trustedweb.site/wp-json/trustedweb/v1/
Authentication
Include your API key in request headers:
X-TW-API-Key: your-api-key-here
Get your API key from Dashboard → API Keys. API access requires Pro plan or higher.
Public Endpoints NO AUTH
GET /scan
Run a quick external scan on any URL. Returns score and summary.
GET /trustedweb/v1/scan?url=example.com
Response:
{
"url": "https://example.com",
"score": 72,
"grade": "B",
"modules": {
"ssl": {"score": 85, "issues": 1},
"headers": {"score": 60, "issues": 3},
"seo": {"score": 58, "issues": 7},
"cookie": {"score": 80, "issues": 2},
"conversion": {"score": 45, "issues": 5}
},
"issues_count": 18,
"scan_time": 4.2
}
GET /badge/{type}/{domain}
Returns SVG badge image. Types: scanned, secure, verified, platinum.
GET /badge/secure/example.com
Content-Type: image/svg+xml
GET /widget/glow/{type}/{domain}
Returns glow-style SVG badge. Types: scanned, secure, verified, gold, platinum.
GET /widget/flat/{label}-{message}-{color}.svg
Shields.io-style flat badge. Example: /widget/flat/trust--score-92-22c55e.svg
GET /verify/?site={domain}
Public verification page for a scanned website.
Rate Limits
Pro: 1,000 requests/hour
Agency: 5,000 requests/hour
429 Too Many Requests — includes Retry-After header
Embed Codes
Trust Badge
<script src="https://trustedweb.site/badge.js"
data-tw-site="example.com"
data-tw-position="bottom-right"></script>
Multi-Widget
<script src="https://trustedweb.site/widget.js"
data-site="tw_your_site_token"
data-widget="badge,verified,counter,secured-today"
data-position="bottom-right"></script>
AI Chatbot
<script src="https://chatbot.mycoach.ing/widget.js?v=3"
data-token="your_chatbot_token"></script>
Markdown Badge
[](https://trustedweb.site/verify/?site=example.com)