AI & agent readiness

GET /api/v1/ai-readiness

The only free check for whether your site is ready for AI agents and answer engines (ChatGPT, Perplexity, Claude). It scans two things at once: the emerging agent-discovery standards — well-known files, robots AI rules, DNS-AID, Markdown negotiation, MCP / OAuth / Skills / commerce discovery and Link headers — and AI-search content readiness — the raw-HTML-vs-JS-rendered gap, llms.txt, answer-first / Q&A structure, extractable-proof signals, E-E-A-T and deprecation-aware schema.

Slower endpoint. This check makes many discovery probes (well-known files, robots, DoH lookups, MCP/OAuth/commerce endpoints) plus a full JavaScript render to measure the raw-vs-rendered gap. Expect it to take noticeably longer than the other tools — allow up to ~30s and set your client timeout accordingly.

Query parameters

NameTypeDescription
url requiredstringThe URL to scan for AI & agent readiness.
keystringYour API key. Optional in the query string — you can also send it as the X-API-Key request header.

Request

Response

200 · application/json
  1. {
  2. "url": "https://example.com",
  3. "agentReadiness": {
  4. "score": 13, "passed": 2, "total": 15, "grade": "F",
  5. "checks": {
  6. "discoverability": { "robotsTxt": true, "sitemap": true, "linkHeaders": false, "dnsAid": false },
  7. "content": { "markdownNegotiation": false, "llmsTxt": false },
  8. "botAccess": { "aiBotRulesInRobots": false, "webBotAuth": false, "contentSignals": false },
  9. "apiAuthMcp": { "apiCatalog": false, "oauthOidcDiscovery": false, "oauthProtectedResource": false, "authMd": false, "mcpServerCard": false, "agentSkillsIndex": false },
  10. "commerce": { "x402": false, "mpp": false, "ucp": false, "acp": false },
  11. "extras": { "securityTxt": false }
  12. }
  13. },
  14. "aiSearchReadiness": {
  15. "renderGap": { "checked": true, "rawWordCount": 1813, "renderedWordCount": 1813, "rawLinks": 125, "renderedLinks": 125, "rawJsonLd": 4, "renderedJsonLd": 4, "contentHiddenFromAiCrawlers": false },
  16. "llmsTxt": { "present": false },
  17. "answerEngine": { "questionHeadings": 2, "hasQAStructure": false, "tables": 0, "orderedLists": 1, "semanticLandmarks": { "main": true, "article": false, "section": 6 } },
  18. "proofSignals": { "statistics": 1, "numbers": 44, "quotes": 3, "authorityCitations": 0 },
  19. "eeat": { "authorSchema": true, "authorIsPerson": false, "datePublished": false, "dateModified": false, "aboutPage": false, "contactPage": false, "privacyPage": true },
  20. "schemaDeprecation": { "faqPageSchema": true, "faqRichResultsDeprecated": "FAQ rich results were removed by Google (May 2026)...", "howToSchema": false, "detectedTypes": ["WebApplication","Organization","FAQPage"] }
  21. }
  22. }

Response fields

agentReadiness

Readiness for AI agents — software that discovers and acts on your site via the emerging well-known / discovery standards.

FieldTypeDescription
agentReadiness.scoreinteger0–100, the share of agent-standard checks that pass. Commerce checks are informational and excluded from the score.
agentReadiness.passed / totalintegerNumber of scored checks passed, out of the total scored.
agentReadiness.gradestringLetter grade from the score: A ≥80, B ≥60, C ≥40, D ≥20, else F.

checks.discoverability

FieldTypeDescription
robotsTxtbooleanA /robots.txt was served (the baseline crawl-rules file).
sitemapbooleanrobots.txt advertises a Sitemap: URL.
linkHeadersbooleanThe homepage response includes an HTTP Link header (used to point agents at related resources).
dnsAidbooleanDNS-AID: _index/_a2a/_mcp._agents.<host> SVCB/HTTPS DNS records advertising agent entrypoints (resolved via DNS-over-HTTPS).

checks.content

FieldTypeDescription
markdownNegotiationbooleanThe page returns text/markdown when an agent sends Accept: text/markdown — a clean, token-cheap representation for LLMs.
llmsTxtbooleanA /llms.txt file is present (a curated index pointing LLMs at your key content).

checks.botAccess

FieldTypeDescription
aiBotRulesInRobotsbooleanrobots.txt names specific AI bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot…) with explicit allow/disallow rules.
webBotAuthbooleanA /.well-known/http-message-signatures-directory exists — lets you verify which bots are genuinely who they claim.
contentSignalsbooleanrobots.txt declares Content-Signal directives (search / ai-input / ai-train usage permissions).

checks.apiAuthMcp

FieldTypeDescription
apiCatalogboolean/.well-known/api-catalog — a linkset listing your APIs for agents.
oauthOidcDiscoveryboolean/.well-known/openid-configuration or /.well-known/oauth-authorization-server — how an agent authenticates.
oauthProtectedResourceboolean/.well-known/oauth-protected-resource — declares the auth server protecting a resource (RFC 9728).
authMdbooleanAn /auth.md file describing, in Markdown, how agents authenticate with your service.
mcpServerCardboolean/.well-known/mcp/server-card.json — a Model Context Protocol server card advertising tools agents can call.
agentSkillsIndexboolean/.well-known/agent-skills/index.json — an index of Skills your site exposes to agents.

checks.commerce informational

Agent-commerce discovery. These are reported but do not affect the score.

FieldTypeDescription
x402booleanHTTP 402 "Payment Required" agent payments are advertised.
mppbooleanMerchant Payment Protocol — an openapi.json carrying x-payment-info.
ucpboolean/.well-known/ucp — Universal Commerce Protocol discovery.
acpboolean/.well-known/acp.json — Agentic Commerce Protocol discovery.

checks.extras

FieldTypeDescription
securityTxtboolean/.well-known/security.txt is present (a contact for security reports).

aiSearchReadiness

Readiness for AI answer engines — whether crawlers like GPTBot and PerplexityBot can actually see, extract and trust your content.

renderGap

FieldTypeDescription
checkedbooleanWhether the raw-vs-rendered comparison ran.
rawWordCount / renderedWordCountintegerWords in the raw HTML vs. after a full JavaScript render.
rawLinks / renderedLinksintegerAnchor links before vs. after JS.
rawJsonLd / renderedJsonLdintegerJSON-LD <script> blocks before vs. after JS.
contentHiddenFromAiCrawlersbooleanThe key signal. true means most of your content only appears after JavaScript runs — so AI crawlers like GPTBot and PerplexityBot, which do not execute JavaScript, can't see it. Server-render or pre-render to fix.

llmsTxt

FieldTypeDescription
presentbooleanA /llms.txt file was found. When present, the report also includes isMarkdown, linkCount and looksLikeSitemapDump (a quality warning for over-long, undifferentiated link lists).

answerEngine

FieldTypeDescription
questionHeadingsintegerH2/H3 headings phrased as questions (how / what / why… or ending in "?").
hasQAStructurebooleantrue when there are ≥3 question-style headings — a strong answer-first signal.
tables / orderedListsintegerCounts of <table> and <ol> — structures answer engines lift easily.
semanticLandmarksobjectPresence/count of main, article and section landmarks that help parsers find the primary content.

proofSignals

Extractable, citable evidence that makes a page worth quoting.

FieldTypeDescription
statisticsintegerPercentages and magnitudes (e.g. "42%", "3 million").
numbersintegerNumeric tokens overall (years, prices, figures).
quotesintegerBlock quotes and inline quoted statements.
authorityCitationsintegerOutbound links to authoritative sources (.gov, .edu, Wikipedia, WHO, NIH…).

eeat

Experience, Expertise, Authoritativeness, Trust signals.

FieldTypeDescription
authorSchemabooleanJSON-LD declares an author.
authorIsPersonbooleanThat author is a Person (stronger than an Organization byline).
datePublished / dateModifiedbooleanPublication / last-updated dates present in schema.
aboutPage / contactPage / privacyPagebooleanLinks to About, Contact and Privacy pages — basic trust pages.

schemaDeprecation

FieldTypeDescription
faqPageSchemabooleanFAQPage JSON-LD is present.
faqRichResultsDeprecatedstringA note (when FAQ schema is present) that FAQ rich results were removed by Google in May 2026 — the markup no longer yields a Google rich result but still helps AI answer engines parse your Q&A, so it is worth keeping.
howToSchemabooleanHowTo JSON-LD is present (its Google rich results were deprecated in 2023).
detectedTypesstring[]All distinct schema @type values found on the page.

For raw response speed see Page timing; for full rendered performance use Lighthouse. See Errors for status codes.