Agent Readiness: Scans

Run agent readiness scan

Changed on

Start a scan of how ready a public website is for AI agents to discover, read and act on.\n Scanning is asynchronous: this operation only starts the scan, and the returned scan is usually pending with no results yet. To get the results, poll the Get agent readiness scan operation with the same domain every few seconds until its status is completed or failed. The scan itself is limited to 60 seconds, plus any time it waits in the queue. A failed scan is not retried; run this operation again.\n Starting a scan for a domain that already has a pending scan from the last 5 minutes returns that scan instead of starting a new one.

post/api/agent-readiness/v1/scans

Request

  • Base URL: https://developers.hostinger.com
  • URL: https://developers.hostinger.com/api/agent-readiness/v1/scans
  • Auth: HTTP bearer

Request body

domainstring required

Domain name or full URL of the website to scan. Only the host is used.

Example request

{
  "domain": "example.com"
}

Response

Success response

domainstring required

Domain name that was scanned

status'pending' | 'completed' | 'failed' required

Scan status. Result fields are null until the status is completed.

scoreinteger nullable required

Agent readiness score from 0 to 100. Null unless completed, and null when unreachable.

gradestring nullable required

Letter grade for the score, from A to F. Null unless completed, and null when unreachable.

is_unreachableboolean required

Whether the website homepage could not be fetched

scanner_versioninteger required

Version of the scoring method that produced this scan

is_outdatedboolean required

Whether the scan was produced by an older scoring method than the current one

scanned_atstring date-time nullable required

When the scan finished. Null unless completed.

unassessed_categoriesstring[] nullable required

Categories where no check could be counted. They still cost their full weight. Null unless completed.

Example response

{
  "domain": "example.com",
  "status": "completed",
  "score": 78,
  "grade": "B",
  "scanner_version": 4,
  "scanned_at": "2026-10-15T12:00:00Z",
  "categories": {
    "crawl_permission": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    },
    "findability": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    },
    "readability": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    },
    "structured_meaning": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    },
    "commercial_legibility": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    },
    "agent_native_content": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    },
    "agent_interaction": {
      "score": 15,
      "weight": 20,
      "earned": 15,
      "possible": 20
    }
  },
  "unassessed_categories": [
    "agent_interaction"
  ],
  "results": [
    {
      "check_id": "crawl_permission.robots_txt_valid",
      "category": "crawl_permission",
      "status": "pass",
      "earned": 4,
      "possible": 4,
      "evidence": "robots.txt returned 200 and parsed cleanly"
    }
  ]
}

Changes