Copper is Poor to agents.
Discry independently scored how well an AI agent can discover and understand the Copper 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 · 17/100Comprehension
55% of score · 60/100What we found
- An agent looking for Copper's API would struggle to discover it programmatically: there is no robots.txt, no llms.txt/llms-full.txt, an empty sitemap.xml, and no .well-known/mcp.json — the only machine-readable surface is a publicly downloadable Postman collection (no native OpenAPI/Swagger spec).
- Once an agent reaches the docs, comprehension is solid: the MkDocs site has a clean, resource-organized hierarchy (people, leads, companies, opportunities, projects, tasks, activities, webhooks), endpoint pages lead with the HTTP method and URL, and headings nest logically — agents can parse structure reliably.
- Code examples use realistic values (real-looking IDs like 27140448, plausible emails, addresses, phone numbers) and are copy-pasteable, but they are curl-only — an agent generating client code in Python or JS gets no language-native sample.
- Capability boundaries are unusually well-covered for a CRM API: explicit rate limits, a 100k-record search cap, a documented 'no file uploads' limitation with a workaround, and team-permission caveats all appear — an agent can anticipate limits rather than discovering them by failing.
- Error recovery is the weak point of an otherwise usable reference: the Responses page lists bare HTTP codes (400, 422, 429, 500) with only their generic meanings — no guidance on which parameter failed a 422 or how to back off from a 429 — so a self-correcting agent has little to act on.
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 the domain root that names the API, summarizes the core CRM resources (people, leads, companies, opportunities, tasks, activities), and links to the authentication, pagination, and key endpoint pages — the single highest-impact discovery fix.
- 02Add a robots.txt that explicitly allows AI crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot) and populate the currently-empty sitemap.xml with the full set of documentation URLs so agents and crawlers can enumerate the docs.
- 03Ship a native OpenAPI 3.x spec (the existing Postman collection can be converted as a starting point) and link it prominently — this turns the API from 'human-readable only' into something an agent can ingest as a tool schema.
- 04Document the error-response JSON body shape and add per-error recovery guidance: show the actual error payload, explain what triggers a 422 and which field to fix, and tell agents to honor the rate-limit window on a 429.
- 05Expand examples beyond curl to at least one language-native SDK sample (Python/JS) and add 2–3 end-to-end workflow guides (e.g., 'lead intake → convert to person + opportunity → log activity') so agents can chain operations for real tasks.
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.
Copper documents two auth methods (API key via X-PW-AccessToken headers, and OAuth2.0 for partners), explicit rate limits (180 requests/minute on a rolling window plus a 3 requests/second cap on bulk APIs, returning 429 when exceeded), and page-number pagination with the X-PW-TOTAL response header and a 100,000-record search ceiling. However, the error-response JSON body schema is undocumented (only generic HTTP status codes are tabled, with no Copper-specific error payload or messages), and there is no idempotency-key support.