API and agent access
Everything on this site is readable by an agent without scraping. No API key, no sign-up,
no OAuth. This page is the documentation an agent lands on when it follows the
service-doc link from any response.
Endpoints
| Endpoint | Method | What it does | Cost |
|---|---|---|---|
/mcp | POST | MCP server, Streamable HTTP, revision 2025-06-18. Five tools. | Free except check_google_rank |
/a2a | POST | A2A agent, protocol v0.3. Retrieval only, blocking message/send. | Free |
/api/rank-check | POST | Live Google position for a domain and keyword, plus the current top 10. | Rate limited, 5/hour per IP |
/api/health | GET | Which endpoints are configured and up. | Free |
/agent-index.json | GET | Every page on the site as JSON: title, URL, type, description. | Free |
/llms.txt | GET | Curated site map for LLMs, per llmstxt.org. | Free |
MCP server
A Model Context Protocol server over Streamable HTTP at
https://airankingskool.com/mcp. It is stateless: no session id is issued and
every request stands alone. GET returns 405 by design, because
there is no SSE stream to attach to.
{
"mcpServers": {
"airanking": {
"type": "http",
"url": "https://airankingskool.com/mcp"
}
}
} Tools
- search_ai_ranking_content search the guides and blog. Filter by
type:topic,guide,blog,page. - list_ai_ranking_topics the pillar topics with their URLs.
- read_ai_ranking_page any page on this domain as markdown.
- get_ai_ranking_membership what AI Ranking is, the tiers, where to join.
- check_google_rank a live Google position lookup. This is the only tool that costs money, and it is rate limited.
curl -s https://airankingskool.com/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' A2A agent
An Agent2Agent v0.3 endpoint at https://airankingskool.com/a2a, described by
/.well-known/agent-card.json. It supports blocking
message/send only.
It is a retrieval agent, not a generative one. Ask it a question and it
returns the published guides that answer it, with their full text. It never synthesises an
answer, so it cannot invent one. Send it a URL on this domain instead of a question and it
returns that page in full. Nothing is stored between requests, so
tasks/get always reports the task as unknown.
Google rank check
The API behind the free Google rank checker. One request runs a live Google SERP at organic depth 100 and returns the domain's position plus the current top 10.
curl -s https://airankingskool.com/api/rank-check \
-H 'content-type: application/json' \
-d '{"domain":"example.com","keyword":"ai seo","location":"us","device":"desktop"}' position is the organic rank (rank_group), the number a person
means when they say "I'm number 7". It ignores People Also Ask and other SERP blocks, which
is why it can read higher than tools that count every element on the page.
found: false means the domain is not in the top 100 for that keyword, not that
it does not rank at all.
Limits
Every uncached check is a paid upstream call, so it is capped. Five paid checks per IP per
hour, then HTTP 429 with {"error":"rate_limited"}. A site-wide
daily budget, then HTTP 503 with {"error":"daily_cap"}.
Identical queries are cached for six hours, served free and flagged
"cached": true. Both limits are temporary: back off and retry rather than
rotating IPs.
Markdown for agents
Every HTML page on this site supports content negotiation. Send
Accept: text/markdown and the same URL returns the article as markdown with
YAML front matter, nav and footer stripped. Without that header you get ordinary HTML, so it
is safe to request anywhere.
curl -s https://airankingskool.com/learn/geo/ -H 'accept: text/markdown'
Markdown responses carry x-markdown-tokens, an estimate of the body's token
count (roughly four characters per token), so you can budget context before reading it.
Discovery documents
Every page also returns an RFC 8288 Link header pointing at the catalog, the
OpenAPI description, this page and llms.txt, so none of the below has to be
guessed at.
| Path | What it is |
|---|---|
/.well-known/api-catalog | RFC 9727 API catalog (application/linkset+json) |
/openapi/airanking-public-api.json | OpenAPI 3.1 description of every endpoint |
/.well-known/mcp/server-card.json | MCP server card |
/.well-known/agent-card.json | A2A agent card |
/.well-known/agent-skills/index.json | Agent Skills discovery index |
/auth.md | Authentication: there is none, plus the rate limits |
/robots.txt | Crawl rules and the Content-Signal declaration |
Content usage
robots.txt carries
Content-Signal: search=yes, ai-input=yes, ai-train=no. Index this content,
quote it in AI answers, cite and link back to it. Do not use it as training data for
generative models.
Contact
Questions about programmatic access, or a use case that needs a higher limit: [email protected].