Agent readiness

Scan how ready a name of the zone is for AI agents, robots.txt rules, sitemap, llms.txt, markdown and structured data.

On this page

The agent readiness scan checks over HTTPS how ready a name is for AI agents (robots.txt AI rules and Content-Signal, sitemap, llms.txt, markdown, structured data…) and stores the result.

OperationEndpoint
Get agent readinessGET /v1/orgs/{org}/zones/{zone}/agent-readiness
Scan agent readinessPOST /v1/orgs/{org}/zones/{zone}/agent-readiness/scan

Get agent readiness

GET /v1/orgs/{org}/zones/{zone}/agent-readiness

Returns the last agent readiness scan of a name of the zone (404 if there is none). Without host, the most recent scan of any name.

Required role: readonly or higher.

Parameters

NameInTypeRequiredDescription
orgpathstring (uuid)YesOrganization id. Every route checks that it is the token's organization (otherwise 404).
zonepathstring (uuid)YesZone id (see List zones).
hostquerystringNoA name of the zone; without it, the most recent scan of any name.

Response

FieldTypeDescription
hoststring
scanned_atstring (date-time)
scoreintegerFrom 0 to 100.
verdictstring
levelsarray of object
levels[].idstringId.
levels[].passedinteger
levels[].totalinteger
levels[].checksarray of object

Errors

StatusDescription
400Malformed request (bad_request).
404Not found, or not visible to the token (not_found).

Example

curl "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/zones/6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d/agent-readiness?host=www.example.com" \
  -H "Authorization: Bearer $OPENWAF_TOKEN"
200
{
  "host": "www.example.com",
  "scanned_at": "2026-10-27T09:30:00Z",
  "score": 0,
  "verdict": "example",
  "levels": [
    {
      "id": "example",
      "passed": 0,
      "total": 128,
      "checks": [
        {}
      ]
    }
  ]
}

Scan agent readiness

POST /v1/orgs/{org}/zones/{zone}/agent-readiness/scan

Scans a name of the zone now over HTTPS and stores the result. The name is resolved and only public addresses are contacted, with time and size limits. Once per name per minute.

Required role: tech or higher.

Parameters

NameInTypeRequiredDescription
orgpathstring (uuid)YesOrganization id. Every route checks that it is the token's organization (otherwise 404).
zonepathstring (uuid)YesZone id (see List zones).

Request body

Content type application/json. The body is optional.

FieldTypeRequiredDescription
hoststringNoThe zone apex by default.

Response

FieldTypeDescription
hoststring
scanned_atstring (date-time)
scoreintegerFrom 0 to 100.
verdictstring
levelsarray of object
levels[].idstringId.
levels[].passedinteger
levels[].totalinteger
levels[].checksarray of object

Errors

StatusDescription
400Malformed request (bad_request).
403The token's role or limits do not allow it (forbidden).
404Not found, or not visible to the token (not_found).
429Too many requests (rate_limited); wait Retry-After seconds.
503Not available right now (unavailable); retry later.

Example

curl -X POST "https://dash.openwaf.dev/v1/orgs/$OPENWAF_ORG/zones/6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d/agent-readiness/scan" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "host": "www.example.com"
  }'
200
{
  "host": "www.example.com",
  "scanned_at": "2026-10-27T09:30:00Z",
  "score": 0,
  "verdict": "example",
  "levels": [
    {
      "id": "example",
      "passed": 0,
      "total": 128,
      "checks": [
        {}
      ]
    }
  ]
}

Last updated:

↑↓ to navigate↵ to openesc to close