/api/blog/postsList blog posts for one language, paginated.
operationId: listBlogPosts
curl "https://www.geo-tool.com/api/blog/posts?locale=en&perPage=5"Developers
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.
/api/blog/postsList blog posts for one language, paginated.
operationId: listBlogPosts
curl "https://www.geo-tool.com/api/blog/posts?locale=en&perPage=5"/api/geo-indexAggregated metrics across all live-verified measurements.
operationId: getVisibilityIndex
curl "https://www.geo-tool.com/api/geo-index"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.
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."
}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.