luno is Needs Work to agents.
Discry independently scored how well an AI agent can discover and understand the luno API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.
SCORED UNDER RUBRIC 1.2 · A full re-launch under Discry Score 2.5 — a new behavioral instrument, not comparable to these scores — is in progress.
Discovery
45% of score · 62/100Comprehension
55% of score · 69/100What we found
- An agent looking to operate the Luno exchange is unusually well-served on tooling: Luno ships an OFFICIAL MCP server (github.com/luno/luno-mcp) advertised on its own API landing page ('Give your AI agent access to the Luno API'), plus community MCP servers and an mcpmarket.com listing — discovery of an agent entry point is a solved problem.
- A coding agent working in Luno's SDKs finds a high-quality AGENTS.md in luno-python covering project architecture, the request/response flow, auth pattern, error shape, and git workflow — well above the generic-boilerplate norm.
- Endpoint docs are genuinely task-oriented ('Create account allows users to create accounts for trading') with realistic, copy-pasteable examples in seven languages (Go, Java, Node.js, PHP, Python, Ruby, Haskell) and strictly consistent snake_case naming — an agent can generate correct calls on the first try.
- The single biggest gap for an autonomous agent is workflow guidance: the reference documents endpoints in isolation with no end-to-end guides (e.g. create key -> fund account -> place order -> poll status), so an agent must infer how to chain operations for a real task.
- No llms.txt / llms-full.txt and no content-negotiated markdown: the entire reference is one ~100KB Swagger-style HTML page, so an agent pays a large token cost and has no progressive-disclosure entry point despite the content itself being well-structured.
What to change
Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.
- 01Add an llms.txt at the site root pointing to the API reference, the Swagger file, the SDK repos, and the MCP server — a cheap discovery win that also unlocks the llms.txt-quality signal (currently both auto-fail).
- 02Publish 2-3 multi-step workflow guides (e.g. 'Place and manage your first trade: create key -> check balances -> post order -> poll order status -> handle fills') so agents can chain endpoints without guessing.
- 03Expand error documentation into recovery guidance: for the top error_codes, state what an agent should DO (e.g. on 429, back off using the 300/min budget; on ErrUnauthorized, regenerate/scope the API key), not just the code and message.
- 04Expose the OpenAPI/Swagger file at a stable, linkable URL (e.g. /en/developers/api/openapi.json) rather than a JS-rendered download button, so agents and tooling can fetch the machine spec directly.
- 05Offer the reference as clean markdown (content negotiation or a /llms-full.txt mirror) and add a concise capabilities/limitations overview so core capabilities are graspable in <5K tokens instead of parsing the full single-page reference.
Execution coverage · INFORMATIONAL, UNSCORED
Whether an agent can actually complete a call and recover from errors is the deeper Audit layer — documented here, but not part of the Discry Score.
Auth is a single, clearly-documented method (HTTP Basic Auth with an API key id/secret). Errors return machine-parseable JSON (e.g. {"error_code":"...","error":"..."}) with named codes. Rate limits are explicit (300 calls/min, HTTP 429 on overage). Pagination uses limit + a `before` cursor parameter. Idempotency keys are not documented.