---
title: "Start (or reuse) an AI readiness check of a public domain"
method: POST
path: "/api/v1/readiness"
tags: ["Readiness"]
---

# Start (or reuse) an AI readiness check of a public domain

`POST /api/v1/readiness`

## Request

- Base URL: `https://saaskly.com`
- URL: `https://saaskly.com/api/v1/readiness`
- Auth: none declared

Checks whether AI agents can find, read and act on a website, against the AgentReady standard v1.0. Returns 200 with the result when one is less than 24 hours old, 202 while a scan runs (poll GET /api/v1/readiness/{domain} after 20 seconds). Up to 10 new scans an hour per address.

## Request body

- object
  - `domain` string, required: Bare public hostname

## Response `200`

A fresh result

- ReadinessScan: An AI readiness check of one domain: the scanner summary (layers, actionable fixes, passing checks, AgentReady 1.0 conformance, attribution) and, on request, every check row.
  - `domain` string
  - `status` 'queued' | 'running' | 'complete' | 'partial' | 'blocked' | 'failed'
  - `profile` 'saas' | 'services'
  - `scannedAt` string, nullable
  - `cacheExpiresAt` string, nullable
  - `score` number, nullable: Out of 100
  - `grade` string, nullable
  - `gradeLabel` string, nullable
  - `conforms` boolean
  - `summary` object, nullable
  - `checks` object[]
  - `url` string, uri
  - `markdown` string, uri

## Other responses

- `202`: Scan queued or running; poll the GET endpoint
- `422`: Not a public hostname, or a site we do not scan
- `429`: Too many new scans from this address, or the daily site-wide limit

---

[API](https://skmtc.dev/saaskly/apis/saaskly-public-read-api.md) · [All operations](https://skmtc.dev/saaskly/apis/saaskly-public-read-api/llms.txt) · [OpenAPI document](https://skmtc.dev/saaskly/apis/saaskly-public-read-api/revisions/93e336357193?raw)
