Controlant is Poor to agents.
Discry independently scored how well an AI agent can discover and understand the Controlant 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 · 43/100Comprehension
55% of score · 69/100What we found
- An agent CAN reliably discover and machine-consume the interface: a valid OpenAPI/Swagger spec is publicly served at integrations.controlant.com/swagger/v1/swagger.json and linked from the developer portal, and the human-readable Redoc reference (v2.14.3) covers the full shipment/logger/event object model.
- Endpoint descriptions are task-oriented — 'Creates a new shipment in a Draft state based on predefined reference templates' rather than bare 'POST /shipments' — so an agent can map goals to endpoints without guessing.
- The API is invisible to agents that search the AI-native discovery layer: no llms.txt, no llms-full.txt, no AGENTS.md, no .well-known/mcp.json, and no MCP registry listing. An agent only finds it by already knowing the integrations subdomain.
- Error handling is human-grade, not agent-grade: an agent that hits a 400 gets 'Bad Request' with a JSON body but no guidance on which parameter failed or how to recover, and 401/429/rate-limit behavior is undocumented entirely.
- Examples are realistic (UUID references, 'Oslo-to-Copenhagen-Jan2020', real status enums, copy buttons) but JSON-only — there are no curl/Python/SDK snippets, so an agent must synthesize the transport layer itself.
What to change
Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.
- 01Publish an llms.txt at both controlant.com and integrations.controlant.com pointing to the API reference and swagger.json — this is the single highest-leverage discovery fix and would lift the weakest dimension immediately.
- 02Add error-recovery guidance: document 401/403/429 alongside 400/500, and for each common error state which parameter/constraint was violated and the corrective action (e.g. 'reference already exists → use a new unique reference').
- 03Publish rate limits (and their response headers) so an agent can back off deterministically instead of discovering throttling by failing.
- 04Include the sitemap for the developer portal (or add integrations.controlant.com/api-reference to a sitemap) and consider an AGENTS.md — the marketing sitemap_index.xml currently omits all developer/API pages.
- 05Add a short multi-step integration guide (e.g. create shipment → attach loggers → transition to Shipping → retrieve links → record inspection) so agents can chain the endpoints without reverse-engineering the state machine from per-endpoint notes.
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.
Every endpoint documents ApiKey authorization (event subscriptions add PFX client certificates). Error responses are shown as parseable JSON with a success flag, but only 200/400/500 are covered with generic reason phrases and no recovery guidance. Page-based pagination is documented with explicit caveats (echo the same request values, vary only page). No rate limits are published, and there is no idempotency-key mechanism — duplicate submissions are guarded only by unique customer-supplied reference values.