Documentation
Public API
Get a website trust score and category breakdown via a simple JSON API. No API key required — just pass a URL.
Endpoint
GET https://roastready.io/api/v1/score?url=example.com
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Domain or full URL to audit. Can be bare domain (e.g. stripe.com) or full URL. |
Rate Limits
3 requests per minute per IP address. Exceeding this returns a 429 status with a retryInMs field.
Response
Returns JSON with the trust score (0–100), category scores, detected risks, trust wins, and tech stack. The API runs Layer 1 (signal gathering) and Layer 2 (scoring) but does not generate the AI narrative — keeping responses fast (~10–20 seconds).
Example Response200 OK
{
"url": "https://stripe.com",
"score": 87,
"categoryScores": {
"security": 95,
"legal": 82,
"performance": 88,
"marketing": 75,
"content": 80
},
"risks": [
{
"id": "email-dmarc",
"severity": "medium",
"title": "DMARC Policy is monitoring-only",
"description": "DMARC is set to p=none..."
}
],
"wins": [
"Valid SSL Certificate (TLS 1.3)",
"HSTS Enabled",
"Content Security Policy Active"
],
"techStack": {
"platform": "custom",
"industry": "saas"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
| score | number | Overall trust score (0–100) |
| categoryScores | object | Breakdown: security (30%), legal (25%), performance (25%), marketing (10%), content (10%) |
| risks | array | Detected issues with severity (critical/high/medium/low/info), title, and description |
| wins | array | Trust signals that passed (e.g. "Valid SSL Certificate") |
| techStack | object | null | Detected platform (shopify, wordpress, etc.) and industry vertical |
Error Responses
| Status | Meaning |
|---|---|
| 400 | Missing or invalid url parameter |
| 429 | Rate limit exceeded — includes retryInMs |
| 500 | Server configuration error or scan failure |
Usage Examples
cURL
curl "https://roastready.io/api/v1/score?url=stripe.com"
JavaScript (fetch)
const res = await fetch("https://roastready.io/api/v1/score?url=stripe.com");
const data = await res.json();
console.log(data.score); // 87Python
import requests
r = requests.get("https://roastready.io/api/v1/score", params={"url": "stripe.com"})
print(r.json()["score"]) # 87