Public leaderboards
No auth. Same JSON the site uses.
curl -sS https://www.irank.at/api/activities
curl -sS "https://www.irank.at/api/activities/deadlift/leaderboard?limit=20"
curl -sS https://www.irank.at/api/ask \
-H "Content-Type: application/json" \
-d '{"question":"who leads the 5K"}'Products: OAuth 2.1 + PKCE
Register from Apps & agents, or dynamically from your agent:
POST https://www.irank.at/api/oauth/register
{
"client_name": "Training App",
"redirect_uris": ["https://app.example.com/irank/callback"],
"token_endpoint_auth_method": "client_secret_post"
}Then send the athlete to https://www.irank.at/connect with client_id, redirect_uri, response_type=code, scope, state, and an S256 code_challenge. Exchange the code at POST /api/oauth/token. Discovery lives at /.well-known/oauth-authorization-server.
Authorization: Bearer irk_atk_…
POST https://www.irank.at/api/entries
{
"activitySlug": "deadlift",
"value": 220,
"conditions": { "equipment": "raw", "tested": "unknown" }
}ChatGPT
Easiest path for a personal ChatGPT: a Custom GPT Action — not MCP. Public ranks work with no key. To submit scores as you, paste a personal token.
- In ChatGPT: Explore GPTs → Create → Configure → Actions → Import from URL
- URL:
https://www.irank.at/api/chatgpt.json - Authentication: API Key, Auth Type Bearer. Leave the key empty for public reads. For your own scores, create a token in Apps & agents and paste
irk_pat_….
ChatGPT Developer Mode can also add https://www.irank.at/api/mcp as an MCP app. Plus/Pro connectors are often read-only; Custom GPT Actions can still write with your token.
Agents: personal token + MCP
An athlete opens Apps & agents, creates a token, and gives it to their agent. The same token works on REST and on the MCP server.
# Claude Desktop / Cursor MCP
{
"mcpServers": {
"irank": {
"url": "https://www.irank.at/api/mcp",
"headers": {
"Authorization": "Bearer irk_pat_…"
}
}
}
}MCP clients that speak OAuth can register themselves and send the user through /connect — no pasted secret. Discovery: /.well-known/mcp.json.