Tigris vs Uploadthing
Tigris scores higher on the AgentReady, 63/100 against 40/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
Tigris. Tigris is a globally distributed, multi-cloud object storage service with built-in support for the S3 API.
Uploadthing. UploadThing is a file upload service for developers, positioned as an easier and safer alternative to AWS S3.
Where Tigris is ahead
Tigris passes clear product positioning, llms.txt published, llms-full.txt / full agent docs, mcp discoverable and machine-readable metadata, and Uploadthing does not. That is discover, whether an agent can find the product at all without being told it exists.
It also holds adopt: no mandatory sales call, cli available and mcp integration available. Uploadthing misses those.
And on operate, retry behavior documented, observable execution and agent compatibility verified. Uploadthing misses those.
Where Uploadthing is ahead
Uploadthing passes clear canonical domain, and Tigris does not. That is discover, whether an agent can find the product at all without being told it exists.
It also holds operate: structured, predictable output. Tigris misses it.
What neither does
Both fail structured api reference, openapi / spec quality, request examples provided, response examples provided, errors and status codes documented, limits / constraints documented, agent-compatible signup flow, programmatic credential creation, official python sdk, machine-readable errors, idempotency support, rate-limit behavior predictable. 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. Tigris leads 93 to 53. Tigris misses clear canonical domain; Uploadthing misses clear product positioning, llms.txt published, llms-full.txt / full agent docs, mcp discoverable, machine-readable metadata.
Understand. Both sit at 31/100 here. Tigris misses structured api reference, openapi / spec quality, request examples provided, response examples provided, errors and status codes documented, limits / constraints documented; Uploadthing misses structured api reference, openapi / spec quality, request examples provided, response examples provided, errors and status codes documented, limits / constraints documented.
Adopt. Tigris leads 70 to 40. Tigris misses agent-compatible signup flow, programmatic credential creation, official python sdk; Uploadthing misses no mandatory sales call, agent-compatible signup flow, programmatic credential creation, official python sdk, cli available, mcp integration available.
Operate. Tigris leads 59 to 35. Tigris misses structured, predictable output, machine-readable errors, idempotency support, rate-limit behavior predictable; Uploadthing misses machine-readable errors, retry behavior documented, idempotency support, rate-limit behavior predictable, observable execution, agent compatibility verified.
Pricing
Tigris starts at $0.02/GB/month and has a free tier. Uploadthing starts at $0/month and has a free tier.
| Tigris plans | Uploadthing plans |
|---|---|
| Standard $0.02/GB/month | 2GB App $0/month |
| Infrequent Access $0.01/GB/month | 100GB App $10/month |
| Archive $0.004/GB/month | Usage Based $25/month |
| Archive Instant Retrieval $0.004/GB/month | - |
Signal by signal
| Signal | Tigris | Uploadthing |
|---|---|---|
| AgentReady | 63 | 40 |
| Discovery | 93 | 53 |
| Understanding | 31 | 31 |
| Adoption | 70 | 40 |
| Operability | 59 | 35 |
| Public API | Yes | Yes |
| MCP server | Yes | No |
| OpenAPI spec | Unknown | Unknown |
| CLI | Yes | Unknown |
| llms.txt | Yes | Unknown |
| Self-serve signup | Yes | Yes |
| Free tier | Yes | Yes |
Which to pick
Tigris clears more of the signals an agent needs, so it is the safer default for unattended use. Full profiles: Tigris and Uploadthing. Alternatives to each: Tigris, Uploadthing.
An agent can fetch this as data: POST /v1/compare {"slugs": ["tigrisdata", "uploadthing"]}