ActiScore
Developers

Scoring API

Score any website from your own systems: a CRM workflow, a prospecting list, a nightly job. One authenticated request returns the composite grade and all ten category scores from the published rubric.

Authentication

An owner or admin creates a key under Settings → API keys in the dashboard, on any plan. It is shown once, at creation; ActiScore stores only a hash. Send it as a bearer token. Revoking a key takes effect on the next request.

Score a domain

POST /api/score with a JSON body naming the domain. A full URL is accepted; the scheme and path are ignored.

curl -X POST https://actiscore.ai/api/score \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'

Returns, usually within a few seconds:

{
  "domain": "example.com",
  "overall": "C",
  "grades": {
    "seo": "C", "aeo": "D", "security": "B", "performance": "B",
    "mobility": "A", "localSeo": "D", "bestPractices": "A",
    "accessibility": "B", "contentUx": "C", "trust": "D"
  },
  "scores": {
    "overall": 71,
    "seo": 68, "aeo": 41, "security": 84, "performance": 88,
    "mobility": 100, "localSeo": 60, "bestPractices": 92,
    "accessibility": 85, "contentUx": 70, "trust": 55
  },
  "measurement": { "performance": "inferred", "security": "measured" },
  "scanId": "6f1c…"
}
  • grades and scores carry every category. A caller that only needs some can ignore the rest; new categories are added, never renamed.
  • measurement says which categories rest on real measurement and which were estimated from page structure. The first scan of a domain often estimates performance; scoring it again later returns measured values, because the measurements are warmed in the background.
  • scanId identifies the stored report, which also appears in your dashboard.

Use it from an AI assistant

ActiScore is also an MCP server, so an assistant that supports the Model Context Protocol can grade websites for you in conversation. Add a remote server at https://actiscore.ai/api/mcp with the header Authorization: Bearer YOUR_API_KEY. It offers one tool, grade_website, which runs the same scoring as the API above and uses a scan the same way.

What it deliberately does not do

  • No lead capture and no email. The API never contacts anyone. You own your outbound contact and its compliance.
  • No AI visibility. Asking the assistants takes minutes and costs real money per domain; a scoring call returns in seconds. Use the dashboard or a Deep AI Audit for it.

Limits and billing

Each successful score uses one scan from the plan's monthly allowance; on paid plans scans past it are $0.35 each. A domain that cannot be reached costs nothing. Requests are limited to 500 an hour per account.

Errors

StatuserrorMeaning
400invalid_requestThe body was not {"domain": "…"}.
401unauthorizedNo key, or a key that is unknown or revoked. The two are deliberately indistinguishable.
403account_unavailableThe account is locked or disabled.
422unreachableThe request was fine; the website could not be loaded. Costs no scan. Retrying will not help.
429rate_limitedOver 500 requests in an hour. A retry-after header says when to resume.
429scan_limit_reachedThe plan's monthly scans are used and it has no overage.
500scoring_failedOur fault. Safe to retry.