Veevaveeva.com
Veeva's API program shows strength in documentation discovery and reachability — partners can find the front door. However, two critical gaps threaten the partner integration experience: the absence of typed SDK definitions means neither partners nor their AI agents can reliably build against Veeva's API surface, and the lack of runnable collections with test scripts leaves partners without a verified, executable starting point.
API DesignA clean, typed, well-governed API contract agents can reason about1 pass1 warn1 fail55D
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| warn | Security & governance hygienevia sdk | 10/15 | Bloated footprint: 30 direct dependencies (>15). Investigated: sdk 67%, wellknown 0%. Fix: Reduce the direct-dependency count well below 15; prefer the standard library and drop heavy frameworks. | No leaked secrets, no critical lint violations, no OWASP API Top-10 spec smells, and a published vulnerability-disclosure channel. |
| pass | Example coveragevia docs | 10/10 | Code samples appear on 5 of 11 sampled docs pages across 1 language(s), but broader multi-language coverage is missing. Investigated: docs 100%, sdk 0%. | Examples carry shape semantics schemas under-specify — for humans and agents alike. |
| fail | Schema coverage & depthvia sdk | 0/25 | no .d.ts found. Investigated: sdk 0%. Fix: Ship type declarations in the published package (e.g. bundle .d.ts files / add a py.typed marker). | Typed, complete request/response schemas are what make agent function-calling possible. |
| na | Machine-readable, versioned contract | —/25 | No surface produced evidence for this capability in this run. | A current OpenAPI version with a declared versioning scheme lets agents reason about the contract. |
| na | Auth declared & discoverable | —/25 | No surface produced evidence for this capability in this run. | Agents can only call an API when they can determine its auth posture — a declared scheme, or an explicit statement that none is required. |
Developer ExperienceThe context both developers and agents need to integrate fast — onboarding, code samples, complete descriptions and worked examples3 pass0 warn0 fail100A+
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Self-service developer portalvia docs | 29/29 | Self-service signup available at https://www.veeva.com/events/community-forums/register/, but no free tier or sandbox is documented, so an agent may hit a paywall before the first call. Investigated: docs 100%. | A first call without a human in the loop — self-serve credentials, a free tier, or an API that needs none. |
| pass | Quickstart presentvia docs | 25/25 | Quickstart at https://general.veevavault.dev/custom-pages/getting-started/client-quickstart includes a runnable first-call code sample. Investigated: docs 100%. | A quickstart is the fastest path from landing page to first successful call. |
| pass | Code samples in docsvia docs | 18/18 | Code samples appear on 5 of 11 sampled docs pages across 1 language(s), but broader multi-language coverage is missing. Investigated: docs 100%. | Multi-language samples shorten time-to-first-call. |
| na | Description completeness | —/15 | No surface produced evidence for this capability in this run. | Complete descriptions are the context humans and agents need to use endpoints. |
| na | Changelog published | —/13 | No surface produced evidence for this capability in this run. | A published changelog lets partners track changes without surprise. |
Agent DiscoveryPartners and their agents can find your APIs — llms.txt, registries, crawlable and reachable docs2 pass2 warn0 fail83A
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Registry & SDK presencevia docs | 28/28 | Indexed on Context7 (websites/general_veevavault_dev, 17011 snippets). Investigated: docs 100%, sdk 50%, cli 0%. | Listing in MCP registries and publishing SDKs puts the API where agents and their tooling look. |
| warn | Docs reachable, not hard auth-gatedvia docs | 22.5/30 | Server ignores Accept: text/markdown header (0/50 sampled pages return markdown). Investigated: docs 75%. | Agents can only index and fetch docs they can reach — past auth gates and over correct HTTP semantics. |
| warn | llms.txt present, valid & comprehensivevia docs | 17.8/30 | No llms.txt directive found in HTML of any of 49 sampled pages; 1 failed to fetch. Investigated: docs 59%. | A valid, comprehensive llms.txt is the machine-readable entry point for agents. |
| pass | Crawlable / AEOvia wellknown | 12/12 | robots.txt lets all monitored AI crawlers reach the docs paths. Investigated: wellknown 100%. | Bots allowed plus a fresh sitemap make docs findable by agent crawlers. |
Agent UnderstandingAgents can correctly interpret your APIs — machine-readable errors, consistent descriptions, structured data, parseable docs1 pass2 warn0 fail78B
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| warn | Agent-navigable, token-efficient docsvia docs | 16.3/22 | 3 of 50 pages have substantive content differences between markdown and HTML (avg 6% missing). Investigated: docs 74%. | Server-rendered, clean, small-footprint docs are what an agent can cheaply fetch and parse correctly. |
| pass | Docs structured datavia docs | 8/8 | Machine-readable JSON-LD Article markup on 11 of 11 assessed pages (100%), with dateModified present. Investigated: docs 100%. | Structured data (JSON-LD/schema.org) on docs pages gives agents an unambiguous parse target and is what answer engines cite. Detected on the JS-rendered head (Firecrawl) for a bounded page budget, so JS-injected JSON-LD is now caught; pages we can't render are excluded rather than failed. |
| warn | Agent instructions file (AGENTS.md)via sdk | 5/10 | No agents.md or skill.md context file found (nice-to-have for agent operation). Investigated: sdk 50%, wellknown 0%. Fix: Add an agents.md or skill.md describing how an agent should use this SDK (auth setup, key operations, gotchas). | An AGENTS.md gives coding agents explicit setup, auth, and usage instructions to interpret and operate the API — beyond llms.txt's link index. |
| na | Machine-readable errors (RFC 9457) | —/28 | No surface produced evidence for this capability in this run. | RFC 9457 problem details and a documented error-code inventory let agents parse failures without burning tokens. |
| na | Operation purpose clarity | —/25 | No surface produced evidence for this capability in this run. | Agents select the right endpoint from its summary + operationId; clear, named operations make tool-selection reliable — the strongest driver of correct tool choice. |
| na | Description consistency across surfaces | —/7 | Only 1 surface description(s) with ≥6 tokens available; need at least 2 to compare. | Every surface tells the same story about what the product is. |
Agent UsabilityAgents have the context to use your APIs reliably, not just find them0 pass0 warn1 fail40F
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| fail | Runnable collection with test scriptsvia sdk | 0/9 | No README found. Investigated: sdk 0%, platform 0%. Fix: Add a README with installation instructions and a runnable quickstart example. | A public, maintained collection with assertions is runnable truth agents validate against. |
| na | Idempotency documented | —/27 | No surface produced evidence for this capability in this run. | Documented idempotency lets agents retry safely. |
| na | Rate-limit signaling | —/22 | No surface produced evidence for this capability in this run. | Machine-readable rate-limit headers let agents throttle adaptively. |
| na | Pagination documented & consistent | —/22 | No surface produced evidence for this capability in this run. | Consistent, documented pagination lets agents traverse collections. |
| na | Sandbox separation | —/20 | No surface produced evidence for this capability in this run. | An isolated environment lets agents exercise destructive operations safely. |
Resources Discovered
The public resources we found for Veeva — the evidence behind the score. All discovered from public sources; nothing here requires access to your systems.
| Agent hints | Context7 (17,011) |
|---|