Developers

GEO Tool API

Two read-only endpoints, no authentication, no key, no signup. The machine-readable specification lives at /openapi.json and describes every parameter and every response field.

View OpenAPI 3.1v1.0.0 · OpenAPI 3.1.0

Endpoints

GET/api/v1/blog/posts

List blog posts for one language, paginated.

operationId: listBlogPosts

curl "https://www.geo-tool.com/api/v1/blog/posts?locale=en&perPage=5"
GET/api/v1/geo-index

Aggregated metrics across all live-verified measurements.

operationId: getVisibilityIndex

curl "https://www.geo-tool.com/api/v1/geo-index"

MCP & Agents

The GEO technical check is available to agents in every form — as a hosted MCP server, a local npm package, a Claude Code plugin, and a browser extension. Three read-only tools: check_ai_readiness (score 0–100), check_ai_crawlers (robots.txt vs. AI crawlers), check_citability (quotability of a draft).

Hosted MCP server (Streamable HTTP, no auth, 30 calls/hour):

https://www.geo-tool.com/api/mcp

Local and unlimited — CLI and MCP server via npm:

npx -y geo-tool-check --mcp

More channels: Official MCP Registry (io.github.shufflethis/geo-tool-check), Claude Code plugin (/plugin marketplace add geo-tool-com/geo-tool-check), and the open-source browser extension. github.com/geo-tool-com/geo-tool-check · geo-tool-extension

Authentication

None. Both endpoints are public and read-only; there are no keys and no per-account quotas. Responses are cached at the edge: blog posts for 24 hours, the visibility index for one hour. Calling more often returns the same cached response. All responses carry RateLimit headers (RateLimit-Limit, RateLimit-Policy; the MCP endpoint additionally Remaining/Reset and Retry-After) so agents can self-throttle.

Versioning & deprecation

Stable endpoints live under the major-version path /api/v1. Breaking changes only ever ship under a new major path (/api/v2); /api/v1 then keeps working for at least 6 months. Deprecations are signalled via Deprecation and Sunset response headers (RFC 9745) on the affected endpoint and announced on this page. The unversioned paths remain available as aliases.

Error format

Errors always arrive as JSON with the same three fields: error as a readable message, code as a stable identifier, and hint describing what to change.

{
  "error": "Visibility index temporarily unavailable",
  "code": "upstream_unavailable",
  "hint": "Retry later."
}

What is not part of the API

The website analysis is deliberately undocumented and not intended for programmatic access. It consumes real engine and scraper time per call. To check a page, use the free check or the browser extension — it computes the identical score inside your own tab at no cost.