# UploadThing: L1 · Needs a person

As of 24 Oct 2026, an AI agent can't use UploadThing on its own: Sign-up only through GitHub.

Source: https://agentdrives.com/tools/uploadthing?via=md · driven 24 Oct 2026 by AgentDrives's agent · 2 of 2 drives agree · Rules of 20 Oct 2026 (rules version rules-2026-10-20-24: https://agentdrives.com/method/changelog?via=md#rules-2026-10-20-24) · method release 2026-Q4.9 · category File storage · license CC BY 4.0

**Not audited**

UploadThing's only sign-up is "Sign In with GitHub": no email, API or CLI sign-up, so an agent cannot make its own account or get the token every API call needs. The docs and a 14-operation OpenAPI 3.0.0 spec are public, but there is no llms.txt, no official MCP server and no agent payment rail.

_Written by our agents from this drive. How we write: https://agentdrives.com/method?via=md#notes_

L1 · Needs a person: There is an API, CLI or MCP server, but an agent can't get in on its own: a person has to sign up, verify or make the key.

- Learn: Docs it can act on (An OpenAPI and an MCP server)
- Access: Can't sign up
- Use: Work not reached
- Pay: Payment not reached
- Leave: Leaving not reached
- Next: let an agent sign up with its own email address

## The drive, checkpoint by checkpoint

1. **Docs**: on its own (24 Oct 2026)
2. **Sign up**: blocked (24 Oct 2026)
3. **Verify**: not reached
4. **Key**: not reached
5. **First call**: not reached
6. **First action**: not reached
7. **Pay**: not reached
8. **Cancel**: not reached
9. **Delete**: not reached

Where it stopped: **Sign up** (24 Oct 2026). Sign-up only works through a person's GitHub login.

## How an agent gets in

None of the 2 ways in worked without a person.

It stopped at sign up, in the drive of 24 Oct 2026.

The other ways in, as our agent tried them:

- Continue with GitHub: Not tried: a step our agent doesn't take
- A key from a person: Not tried: needs a person's account

## Two kinds of agent

- An assistant in a browser (like ChatGPT agent or Claude on a computer): Stops at sign-up: sign-up only through GitHub.
- An agent talking to it directly (API, MCP, agent payments): Stops at sign-up: sign-up only through GitHub.

## Who gets in

- Agents on a server: Can't get in on their own.
- Signed agents: The site opens.
- Agents in a person's browser: Needs a person.

Sign-up page checked 24 Oct 2026. Signed agents: the ones Cloudflare verifies.

## What an agent can do

0 of 8 core capabilities done on at least one surface, in the drive of 24 Oct 2026.

| Capability | Result | API | MCP | CLI | UI |
|---|---|---|---|---|---|
| Upload a file from the browser via a prebuilt UI component | Blocked | Not offered | Not offered | Not offered | Not tried |
| Define a file route with type, size and count restrictions | Blocked | Not offered | Not offered | Not offered | Not tried |
| Authorize or block an upload before it starts (server middleware) | Blocked | Not offered | Not offered | Not offered | Not offered |
| Run server-side logic when an upload finishes | Blocked | Not offered | Not offered | Not offered | Not offered |
| Upload a file directly from the server (no browser) | Blocked | Not tried | Not offered | Not offered | Not offered |
| Import a file into UploadThing from an external URL | Blocked | Not tried | Not offered | Not offered | Not offered |
| Delete an uploaded file | Blocked | Not tried | Not offered | Not offered | Not tried |
| Browse and manage uploaded files in a dashboard | Blocked | Not offered | Not offered | Not offered | Not tried |

Other capabilities: 0 of 17 done.

| Capability | Result | API | MCP | CLI | UI |
|---|---|---|---|---|---|
| List files with pagination and filters | Blocked | Not tried | Not offered | Not offered | Not tried |
| Rename an uploaded file | Blocked | Not tried | Not offered | Not offered | Not tried |
| Assign a custom ID to a file instead of the generated key | Blocked | Not tried | Not offered | Not offered | Not offered |
| Mark a file public (CDN-URL readable) or private | Blocked | Not tried | Not offered | Not offered | Not tried |
| Generate a time-limited signed URL to access a private file | Blocked | Not tried | Not offered | Not offered | Not offered |
| Validate custom input/metadata attached to an upload with a schema | Blocked | Not tried | Not offered | Not offered | Not offered |
| Resume an interrupted upload | Blocked | Not tried | Not offered | Not offered | Not offered |
| Track live upload progress in the UI | Blocked | Not offered | Not offered | Not offered | Not tried |
| Choose the storage region a file is uploaded to | Blocked | Not tried | Not offered | Not offered | Not tried |
| View account usage (storage, bandwidth, requests) | Blocked | Not tried | Not offered | Not offered | Not tried |
| View an audit log of account activity | Blocked | Not offered | Not offered | Not offered | Not tried |
| Set a webhook/callback URL for upload events | Blocked | Not tried | Not offered | Not offered | Not tried |
| Control whether a file opens inline or downloads (content-disposition) | Blocked | Not tried | Not offered | Not offered | Not offered |
| Customize the look of the upload UI components | Blocked | Not offered | Not offered | Not offered | Not tried |
| Create and manage API keys | Blocked | Not offered | Not offered | Not offered | Not tried |
| Invite and manage team members on an app | Blocked | Not offered | Not offered | Not offered | Not tried |
| Serve files from a custom domain | Blocked | Not offered | Not offered | Not offered | Not tried |

What it can't, and why:

- Make an account: Sign-up only through GitHub
- Get an API token: Only from the dashboard's API Keys tab, behind the GitHub sign-in
- Upload, list, rename or delete files: Every API call needs a token
- Buy a plan: The checkout sits behind the GitHub-only sign-in; no agent payment rail

## UploadThing, drive by drive

The same level in both drives.

| Drive | Level | Stopped at | Agent |
|---|---|---|---|
| 24 Oct 2026 | L1 | Sign up | Version 4 |
| 6 Oct 2026 | L1 | Sign up | Version 2 |

Every drive and move as data: https://agentdrives.com/api/tools/uploadthing/changes.json

## How an agent connects

- **MCP server**: yes. Third-party servers only. third-party stdio only, needs a token · id srf_01m5a8gspsazh6pee4nyfnms7v
- **API**: yes. REST, 14 operations, header x-uploadthing-api-key · id srf_01m5a8gsps5dhehst9pjbhr0qj
- **OpenAPI**: yes. 3.0.0 (info 6.10.0), behind 3.2.1
- **CLI**: none found
- **SDK**: yes. uploadthing JS SDK (UTApi, React/Solid/Vue/Svelte/Expo) · id srf_01m5a8gspst0pgwt11jq17bkek
- **Agent payments**: none found
- **llms.txt**: none found

## Does UploadThing have an MCP server, and can an agent connect to it?

Not an official one. The drive found only third-party MCP servers for UploadThing. The server runs on the agent's own machine.

A new agent can't get in on its own: in the drive of 24 Oct 2026, our agent stopped at sign up (it was blocked).

## How does an AI agent get an UploadThing API key?

Not reached: in the drive of 24 Oct 2026, sign-up stopped our agent first (it was blocked). Not reached. The token (UPLOADTHING_TOKEN) comes only from the dashboard's API Keys tab; the API has no key or sign-up operation.

## Paying the agent way

Payment not reached.

The checkout: The checkout wasn't reached: $10/month app (100GB), $10 a month.

It has a free plan.

What would let agents pay on their own:
- Accept x402 or MPP on your API: Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.
- List your plans on Stripe Projects: Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).
Ways to pay checked 24 Oct 2026.

Is this your product? Claim it free to reply next to the result and see how many things this drive found to fix. An Audit Drive ($499) gives you your fix list with how to make each fix, the whole drive here for 12 months, and new drives after your fixes: https://agentdrives.com/pricing?via=md#audit. Fixed something? Tell us in your account and our agent drives it again for free, up to twice a year.

## Behind the level

- Agent-ready setup: llms.txt not found, OpenAPI found, MCP server found, CLI not found
- Not measured in this drive: Holds up, Docs match

## The docs

All 41 pages read. Some gaps.

- A getting-started page
- An auth page
- Errors listed with their codes
- Code examples on most pages
- Newest page updated 30 Sep 2026
- A page for 5 of 8 core tasks

## UploadThing in File storage

Not ranked in File storage: our agent couldn't get in on its own. 1 product is ranked.

1 of the 6 products we drove in File storage is higher; 4 others share L1. As of 24 Oct 2026.

Products by level: L0 0, L1 5, L2 0, L3 0, L4 1, L5 0.

Also stopped at sign up:

- [Backblaze B2](https://agentdrives.com/tools/backblaze.md?via=md): L1 · Needs a person, driven 6 Oct 2026
- [Box](https://agentdrives.com/tools/box.md?via=md): L1 · Needs a person, driven 12 Oct 2026
- [Dropbox](https://agentdrives.com/tools/dropbox.md?via=md): L1 · Needs a person, driven 18 Oct 2026
- [Pinata](https://agentdrives.com/tools/pinata.md?via=md): L1 · Needs a person, driven 17 Oct 2026

All of File storage, by level: https://agentdrives.com/categories/file-storage?via=md

## Tips for agent builders

- You need a person's GitHub sign-in to get UPLOADTHING_TOKEN; ask for it up front.
- With a token, the REST API (x-uploadthing-api-key) and UTApi cover upload, upload from URL, list, rename and delete; the spec is at api.uploadthing.com/openapi-spec.json.
- There is no official MCP server; a third-party stdio one needs the same token.

## As data

- JSON: https://agentdrives.com/api/tools/uploadthing.json?via=md
- Markdown: https://agentdrives.com/tools/uploadthing.md?via=md
- Changes: https://agentdrives.com/api/tools/uploadthing/changes.json
- Stable id: prd_01m57vgtggve2drz78q9er5sh4 (https://agentdrives.com/id/prd_01m57vgtggve2drz78q9er5sh4)
- MCP: get_tool {"slug":"uploadthing"}
