---
title: "Start an AI agent readiness check (async job)"
method: POST
path: "/agent/readiness/checks"
tags: ["readiness"]
---

# Start an AI agent readiness check (async job)

`POST /agent/readiness/checks`

## Request

- Base URL: `https://vertodigital.com`
- URL: `https://vertodigital.com/agent/readiness/checks`
- Auth: none declared

Starts a Free B2B AI Visibility Checker scan of a company's website: a 0-100 score for how well buyers' AI agents can research the company, evaluate its product and reach sales, with evidence-backed findings. A scan takes longer than one request, so this is an async job. A new check returns 202 Accepted with a job_id, a status_url and a Location header pointing at GET /agent/readiness/checks/{job_id}: poll it every Retry-After seconds until status is complete or failed, then read report_json_url (the report as JSON) or report_url (the human page). A public check of a domain already scanned in the last 24 hours returns 200 with the cached report instead of starting a new job. Anonymous. Rate limits per caller IP: 60 requests a minute, plus 3 new checks and 3 comparisons a day without a Turnstile token. Not mirrored under /agent/v1.

## Request body

- object
  - `domain` string, required: Website to check, as a domain or URL (example.com or https://www.example.com/). Subdomains fold into the main domain. In compare mode, the competitor's domain.
  - `mode` 'public' | 'compare': public: check one company and publish its report. compare: check two companies side by side (set compare_with).
  - `compare_with` string: Compare mode only: your own company's domain, checked side by side with the competitor in domain.
  - `turnstile_token` string: Cloudflare Turnstile token sent by the checker's own web page. Agents omit it; the lower daily limits then apply.

## Response `200`

This domain was checked in the last 24 hours: the cached report, no new job

- ReadinessCheckCached
  - `status` 'complete', required
  - `cached` true, required
  - `report_url` string, uri, required: The report page
  - `report_json_url` string, uri, required: The report as JSON: GET /agent/readiness/reports/{slug}

## Other responses

- `202`: Check accepted and queued. Poll status_url (also in the Location header) until status is complete or failed.
- `400`: Invalid request, such as a domain that can't be parsed or a compare check of a company against itself
- `403`: Reports for this domain are not published
- `429`: Rate limited: per-minute or daily limit reached
- `503`: The checker has reached its daily capacity; try again tomorrow

---

[API](https://skmtc.dev/vertodigital/apis/vertodigital-agent-api.md) · [All operations](https://skmtc.dev/vertodigital/apis/vertodigital-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vertodigital/apis/vertodigital-agent-api/revisions/024a4fa9ec36?raw)
