API documentation
orank API
orank scores how agent-ready websites are. Use this API to scan domains, look up cached scores, and retrieve SVG badges. Supports streaming responses via text/event-stream for real-time scan progress. Rate limits: 10 scans per minute per IP.
Endpoints
/api/scanScan a domain for agent-readiness
Runs a full agent-readiness scan on the given URL. Returns score, grade, and detailed layer breakdown. Supports streaming via text/event-stream for real-time progress updates. Rate limited to 10 requests per minute per IP — returns 429 if exceeded.
REQUEST BODYrequired
| Property | Type | Description |
|---|---|---|
url* | string | The domain or URL to scane.g. stripe.com |
mcpUrl | string | Optional MCP server URL to test |
RESPONSES
200Scan completed successfully -> ScanResult400Invalid input429Rate limit exceeded — max 10 scans per minute per IP. Retry after the rate limit window resets.500Scan failed/api/score/{domain}Get cached score for a domain
Returns the most recent cached scan result for the given domain. Returns 404 if no scan has been performed yet. Results are cached for 1 hour. Rate limited — returns 429 if exceeded.
PARAMETERS
| Name | In | Type | Description |
|---|---|---|---|
domain* | path | string | The domain to look up (e.g. stripe.com) |
RESPONSES
200Cached scan result -> ScanResult404No cached score found for this domain429Rate limit exceeded500Database unavailable/api/badge/{domain}Get SVG badge for a domain
Returns an SVG badge showing the domain's orank score and grade. Embed in READMEs or websites. Cached for 1 hour.
PARAMETERS
| Name | In | Type | Description |
|---|---|---|---|
domain* | path | string | The domain to get a badge for |
RESPONSES
200SVG badge image404No score found for this domainSchemas
ScanResult
object
| Property | Type | Description |
|---|---|---|
domain | string | The scanned domain |
url | string | The normalized URL |
finalUrl | string | The final URL after redirects |
score | integer | Overall score (0-100) |
maxScore | integer | Maximum possible score |
grade | stringA | B | C | D | F | Letter grade |
ctaMessage | string | Call-to-action message based on score |
ctaTier | stringtop | high | mid | low | CTA tier |
layers | array | Breakdown by scoring layer-> LayerResult |
scannedAt | string(date-time) | When the scan was performed |
durationMs | integer | Scan duration in milliseconds |
LayerResult
object
| Property | Type | Description |
|---|---|---|
id | string | Layer identifier |
name | string | Layer display name |
description | string | Layer description |
checks | array | -> CheckResult |
score | integer | Layer score |
maxScore | integer | Layer maximum possible score |
CheckResult
object
| Property | Type | Description |
|---|---|---|
id | string | Check identifier |
name | string | Check display name |
description | string | What this check tests |
status | stringpass | fail | warning | error | Check result status |
score | integer | Points earned |
maxScore | integer | Maximum points for this check |
details | string | Human-readable explanation of the result |