Doppio vs Nutrient
Doppio scores higher on the AgentReady, 54/100 against 53/100. They differ on 13 of the 41 signals. Which ones decides whether an agent can adopt them without a person watching.
What each one is
Doppio. Doppio is a cloud-based API service that generates PDFs and screenshots from HTML without requiring users to run Puppeteer or manage browser infrastructure.
Nutrient. Nutrient is the deterministic document infrastructure enterprises run their highest-stakes workflows on: replayable output, clear exceptions, and full audit trails on the messy, regulated documents where AI alone breaks.
Where Doppio is ahead
Doppio passes authentication documented and limits / constraints documented, and Nutrient does not. That is understand, whether an agent can read the docs and work out how the API behaves before calling it.
It also holds adopt: self-service signup, agent-compatible signup flow, fast time to first request, copyable quickstart and cli available. Nutrient misses those.
And on operate, structured, predictable output. Nutrient misses it.
Where Nutrient is ahead
Nutrient passes public docs discoverable, llms-full.txt / full agent docs and mcp discoverable, and Doppio does not. That is discover, whether an agent can find the product at all without being told it exists.
It also holds understand: structured api reference. Doppio misses it.
And on adopt, mcp integration available. Doppio misses it.
What neither does
Both fail openapi / spec quality, request examples provided, response examples provided, errors and status codes documented, no mandatory sales call, programmatic credential creation, machine-readable errors, retry behavior documented, idempotency support, rate-limit behavior predictable, agent compatibility verified. If your agent needs any of those, you will be building it yourself either way.
Score, pillar by pillar
The AgentReady splits into four pillars, scored separately, because a product can be easy to find and still impossible to adopt.
Discover is whether an agent can find the product at all without being told it exists. Nutrient leads 100 to 67. Doppio misses public docs discoverable, llms-full.txt / full agent docs, mcp discoverable; Nutrient misses nothing.
Understand. Both sit at 38/100 here. Doppio misses structured api reference, openapi / spec quality, request examples provided, response examples provided, errors and status codes documented; Nutrient misses openapi / spec quality, authentication documented, request examples provided, response examples provided, errors and status codes documented, limits / constraints documented.
Adopt. Doppio leads 65 to 40. Doppio misses no mandatory sales call, programmatic credential creation, mcp integration available; Nutrient misses self-service signup, no mandatory sales call, agent-compatible signup flow, programmatic credential creation, fast time to first request, copyable quickstart, cli available.
Operate. Doppio leads 47 to 35. Doppio misses machine-readable errors, retry behavior documented, idempotency support, rate-limit behavior predictable, agent compatibility verified; Nutrient misses structured, predictable output, machine-readable errors, retry behavior documented, idempotency support, rate-limit behavior predictable, agent compatibility verified.
Pricing
Doppio starts at $0/mo and has a free tier. Nutrient does not publish one with no free tier.
| Doppio plans | Nutrient plans |
|---|---|
| Basic Free | - |
| Premium $16/month | - |
| Premium+ $48/month | - |
| Pro $129/month | - |
| Custom Contact us | - |
Signal by signal
| Signal | Doppio | Nutrient |
|---|---|---|
| AgentReady | 54 | 53 |
| Discovery | 67 | 100 |
| Understanding | 38 | 38 |
| Adoption | 65 | 40 |
| Operability | 47 | 35 |
| Public API | Yes | Yes |
| MCP server | No | Yes |
| OpenAPI spec | Unknown | Yes |
| CLI | Yes | Unknown |
| llms.txt | Yes | Yes |
| Self-serve signup | Yes | No |
| Free tier | Yes | No |
Which to pick
Doppio clears more of the signals an agent needs, so it is the safer default for unattended use. Full profiles: Doppio and Nutrient. Alternatives to each: Doppio, Nutrient.
An agent can fetch this as data: POST /v1/compare {"slugs": ["doppio", "nutrient"]}