Chrome Extension available — audit any site in one clickInstall free

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

ParameterTypeRequiredDescription
urlstringYesDomain 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

FieldTypeDescription
scorenumberOverall trust score (0–100)
categoryScoresobjectBreakdown: security (30%), legal (25%), performance (25%), marketing (10%), content (10%)
risksarrayDetected issues with severity (critical/high/medium/low/info), title, and description
winsarrayTrust signals that passed (e.g. "Valid SSL Certificate")
techStackobject | nullDetected platform (shopify, wordpress, etc.) and industry vertical

Error Responses

StatusMeaning
400Missing or invalid url parameter
429Rate limit exceeded — includes retryInMs
500Server 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); // 87

Python

import requests
r = requests.get("https://roastready.io/api/v1/score", params={"url": "stripe.com"})
print(r.json()["score"])  # 87

Need higher rate limits or batch scanning for your agency?

Public API — Trust Score API | RoastReady