Integrate security scanning into your CI/CD pipeline. Get grades, scores, and actionable findings via a simple REST API.
Generate a key from your dashboard or via the API:
curl -X POST https://tridentscan.com/api/keys \
-H "Authorization: Bearer YOUR_SUPABASE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "CI Pipeline"}'curl "https://tridentscan.com/api/v1/scan?domain=example.com&key=trident_sk_YOUR_KEY"All scan requests require an API key passed as the key query parameter.
Key format: trident_sk_<base64url-random>
Free Plan
5 scans/day
Paid Plan
100 scans/day
/api/v1/scanRun a security scan on a domain. Returns grade, score, and detailed findings.
domainrequiredTarget domain to scan (e.g., example.com)keyrequiredYour API key (trident_sk_...){
"domain": "example.com",
"grade": "B",
"score": 78,
"categories": {
"headers": { "findings": 2, "severity": ["medium", "low"] },
"ssl": { "findings": 0, "severity": [] },
"cors": { "findings": 1, "severity": ["medium"] }
},
"findings": [
{
"module": "headers",
"severity": "medium",
"title": "Missing Content-Security-Policy",
"description": "No CSP header detected...",
"fix": "Add Content-Security-Policy header..."
}
],
"timestamp": "2025-01-15T12:00:00.000Z",
"durationMs": 2340,
"rateLimit": {
"limit": 100,
"remaining": 94,
"plan": "paid"
}
}/api/keysGenerate a new API key. Requires Bearer token auth. Max 5 keys per user.
/api/keysList your active API keys (prefix only). Requires Bearer token auth.
/api/keysRevoke a key by prefix. Body: {"prefix": "trident_sk_abc..."}
name: Security Scan
on: [push, pull_request]
jobs:
trident-scan:
runs-on: ubuntu-latest
steps:
- name: TridentScan Security Check
run: |
RESULT=$(curl -s "https://tridentscan.com/api/v1/scan?domain=${{ vars.DOMAIN }}&key=${{ secrets.TRIDENT_API_KEY }}")
SCORE=$(echo "$RESULT" | jq '.score')
GRADE=$(echo "$RESULT" | jq -r '.grade')
echo "Security Grade: $GRADE ($SCORE/100)"
if [ "$SCORE" -lt 50 ]; then
echo "❌ Security score below threshold"
echo "$RESULT" | jq '.findings[] | "\(.severity): \(.title)"'
exit 1
fi
echo "✅ Security check passed"curl "https://tridentscan.com/api/v1/scan?domain=example.com&key=trident_sk_YOUR_KEY"const res = await fetch(
'https://tridentscan.com/api/v1/scan?domain=example.com&key=trident_sk_YOUR_KEY'
);
const data = await res.json();
if (data.score < 50) {
console.error(`Security score too low: ${data.grade} (${data.score}/100)`);
process.exit(1);
}
console.log(`✅ Security grade: ${data.grade}`);import requests, sys
r = requests.get("https://tridentscan.com/api/v1/scan", params={
"domain": "example.com",
"key": "trident_sk_YOUR_KEY"
})
data = r.json()
if data["score"] < 50:
print(f"❌ Security: {data['grade']} ({data['score']}/100)")
sys.exit(1)
print(f"✅ Security: {data['grade']}")400Missing domain parameter401Invalid or missing API key429Rate limit exceeded — upgrade your plan or wait for daily reset500Scan failed — target may be unreachableGet your API key and start scanning in under a minute.
Get API Key →