AgentReady.me Diagnostics API
Free, evidence-status diagnostics with explicit static/runtime limitations.
Free, evidence-status diagnostics with explicit static/runtime limitations.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/agentready-me:agentready-me-diagnostics-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AgentReady Public Diagnostics API
version: 1.4.0
description: Public, best-effort website readiness scans, saved report history, and static agent-readiness diagnostics. New scan integrations use versioned paths. AgentReady announces a retiring version at least 180 days ahead and returns Deprecation and Sunset headers during that window. Public scans and diagnostics read public web content or inspect user-supplied JSON; they currently require no authentication.
servers:
- url: https://www.agentready.me
tags:
- name: Diagnostics
description: Free, evidence-status diagnostics with explicit static/runtime limitations.
paths:
/api/tools/crawler-access:
post:
operationId: checkDeclaredCrawlerAccess
tags:
- Diagnostics
summary: Inspect crawler policy and bounded page delivery
description: Fetches robots.txt and up to 128 KB of the submitted public page through validated redirects. It evaluates path rules, final delivery, X-Robots-Tag, and HTML meta robots without impersonating crawler user agents or claiming named-bot edge/WAF behavior.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CrawlerAccessToolRequest'
examples:
site:
value:
url: https://example.com/docs
responses:
'200':
description: Versioned robots, page-delivery, redirect, header, and HTML-meta evidence report. Named-bot edge evidence remains unobservable.
content:
application/json:
schema:
$ref: '#/components/schemas/DiagnosticToolReport'
'400':
description: The URL is missing, invalid, or not publicly fetchable.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'413':
description: The JSON request body exceeds the 16 KB input limit. An oversized fetched robots or page body instead returns a 200 report with that evidence surface unobservable.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'429':
description: The free diagnostic rate limit has been reached.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'503':
description: The diagnostic rate limiter is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
/api/tools/openapi-readiness:
post:
operationId: auditOpenApiAgentReadiness
tags:
- Diagnostics
summary: Audit an OpenAPI JSON document for agent readiness
description: Statically inspects an OpenAPI 3.0 or 3.1 JSON object or JSON string. YAML is reported as unobservable, and no API operation or credential is exercised.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OpenApiReadinessToolRequest'
examples:
document:
value:
document:
openapi: 3.1.0
info:
title: Example
version: 1.0.0
paths: {}
responses:
'200':
description: Versioned static evidence report, including an unobservable status when the supplied format is unsupported.
content:
application/json:
schema:
$ref: '#/components/schemas/DiagnosticToolReport'
'400':
description: The request body does not contain a document field or is not valid JSON.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'413':
description: The request exceeds the 512 KB inspection limit.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'429':
description: The free diagnostic rate limit has been reached.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'503':
description: The diagnostic rate limiter is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
/api/tools/a2a-agent-card:
post:
operationId: validateA2aAgentCard
tags:
- Diagnostics
summary: Validate an A2A Agent Card JSON document
description: Statically checks the supplied Agent Card and reports strict-current evidence separately from legacy interoperability. It does not connect to an agent, authenticate, send messages, or verify advertised skills.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/A2aAgentCardToolRequest'
examples:
card:
value:
card:
name: Example agent
description: Example
version: 1.0.0
skills: []
responses:
'200':
description: Versioned static evidence report with strict-current and legacy-interoperability verdicts.
content:
application/json:
schema:
$ref: '#/components/schemas/DiagnosticToolReport'
'400':
description: The request body does not contain a card field or is not valid JSON.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'413':
description: The request exceeds the 256 KB inspection limit.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'429':
description: The free diagnostic rate limit has been reached.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
'503':
description: The diagnostic rate limiter is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/ToolError'
components:
schemas:
ToolError:
type: object
required:
- error
properties:
error:
type: string
additionalProperties: false
ToolEvidenceCheck:
type: object
required:
- id
- title
- status
- summary
- evidence
properties:
id:
type: string
title:
type: string
status:
type: string
enum:
- pass
- partial
- fail
- unobservable
- error
summary:
type: string
evidence:
type: array
items:
type: string
remediation:
type: string
OpenApiReadinessToolRequest:
type: object
additionalProperties: false
required:
- document
properties:
document:
description: OpenAPI 3.0 or 3.1 JSON object, or a string containing JSON. YAML is not parsed.
oneOf:
- type: object
additionalProperties: true
- type: string
DiagnosticToolReport:
type: object
required:
- schemaVersion
- methodologyVersion
- tool
- status
- checks
- limitations
properties:
schemaVersion:
type: string
const: agentready.tool-report.v1
methodologyVersion:
type: string
tool:
type: string
enum:
- crawler-access
- openapi-readiness
- a2a-agent-card
status:
type: string
enum:
- pass
- partial
- fail
- unobservable
- error
checks:
type: array
items:
$ref: '#/components/schemas/ToolEvidenceCheck'
limitations:
type: array
items:
type: string
additionalProperties: true
A2aAgentCardToolRequest:
type: object
additionalProperties: false
required:
- card
properties:
card:
type: object
description: A2A Agent Card JSON object.
additionalProperties: true
CrawlerAccessToolRequest:
type: object
additionalProperties: false
required:
- url
properties:
url:
type: string
description: Public HTTP(S) URL whose submitted path and origin robots policy should be inspected.
examples:
- https://example.com/docs