Make one real URL before you keep reading

Upload a file up to 10 MB. The public URL works immediately, with no password or credit card. Executable files require email verification.

transfer.sh Alternative: 5 cURL Upload Tools That Still Work

· · 8 min read

transfer.sh is remembered for one-command uploads, but its familiar workflow does not answer every production requirement. Compare anonymous sharing, expiry, ownership, and API stability separately instead of treating every alternative as interchangeable.

The right transfer.sh replacement depends on the job. An anonymous throwaway link, an account-owned API upload, and a public URL for an application are different requirements.

Quick pick

  • Persistent API and CDN URL: use FilePost. It needs an API key, returns JSON, and keeps files online until you delete them.
  • Anonymous one-off upload: use 0x0.st or catbox.moe. Good for quick public sharing, not a production dependency.
  • Expiring one-download link: use file.io. It is closest to the temporary-file behavior people remember from transfer.sh.
  • Large media files: use pixeldrain if the file size matters more than the API shape.

The comparison uses expiry, API shape, file size, and whether the returned URL is suitable for an application or automation workflow.

What Made transfer.sh Great, and What to Look For

If you loved transfer.sh, you were relying on at least three things:

Different alternatives emphasize different parts of that list. Pick the one that matches your actual job.

Quick Comparison Table

Feature FilePost file.io 0x0.st catbox.moe pixeldrain
cURL upload in one line Yes Yes Yes Yes Yes
Free tier Yes (1 provisional / 50 verified) Yes Yes (anonymous) Yes (anonymous) Yes
Permanent URLs Yes No (default 1 download) 30 to 365 days (size-based) Yes (not guaranteed) Yes
Management API Yes Limited No Partial (account-based) Yes (with account)
Max file size 50 MB free / 500 MB paid 100 MB free 512 MB 200 MB 20 GB
Dedicated CDN Yes No No No Yes
Starting paid price 9 USD/mo Varies Free only Donation-based Around 4 EUR/mo

1. FilePost: Best for Persistent cURL Uploads with a Real API

FilePost keeps the cURL-first feel of transfer.sh but adds persistence, a CDN, and a management API. You sign up once, get an API key, and your uploads land on permanent CDN URLs.

Why Choose FilePost

Upload a File (One Line)

curl -X POST https://upload.filepost.dev/v1/upload \
  -H "X-API-Key: your_api_key" \
  -F "file=@build.tar.gz"

Response:

{
  "url": "https://cdn.filepost.dev/file/filepost/uploads/a1/a1b2c3.tar.gz",
  "file_id": "a1b2c3d4e5f6",
  "size": 4823104
}

transfer.sh Muscle Memory, Adapted

If you had a shell function for transfer.sh, the port is a couple of lines:

# Before: transfer.sh
transfer() {
  curl --progress-bar --upload-file "$1" "https://transfer.sh/$(basename "$1")"
}

# After: FilePost (extract the URL from the JSON response)
upload() {
  curl -s -X POST https://upload.filepost.dev/v1/upload \
    -H "X-API-Key: $FILEPOST_KEY" \
    -F "file=@$1" | jq -r .url
}

Add export FILEPOST_KEY=fh_... to your shell rc file and you are back to one-command sharing.

Try FilePost Free

One provisional 10 MB upload before verification, then 50 uploads/month and 50 MB files after verification. No credit card required.

Get Your Free API Key

2. file.io: Closest to transfer.sh's Default (Auto-Delete)

file.io is the most direct spiritual successor to transfer.sh's "files go away" default. Uploads auto-delete after the first download or at the end of a set retention period.

Pros

Cons

Best for: Quick one-off transfers where you explicitly want the file to go away. See our file.io alternative comparison for when to pick something else.

3. 0x0.st: Best for Fully Anonymous cURL Uploads

0x0.st (The Null Pointer) is a minimalist anonymous file host. No accounts, no signup, just cURL. It is operated as a hobby service, which makes it a fine fit for informal sharing and a bad fit for anything production-critical.

Upload Example

curl -F 'file=@hello.txt' https://0x0.st

Pros

Cons

Best for: One-off text snippets and small files you want to share publicly and anonymously. Not a production choice. If you are specifically comparing 0x0.st against an account-based API, see the focused 0x0.st alternative guide.

4. catbox.moe: Anonymous Permanent Hosting

catbox.moe is another minimalist anonymous file host, focused on persistent (not time-limited) uploads. Popular among hobby communities for image and small-file sharing.

Upload Example

curl -F "reqtype=fileupload" \
     -F "fileToUpload=@image.png" \
     https://catbox.moe/user/api.php

Pros

Cons

Best for: Hobby projects and community use, not business applications.

5. pixeldrain: Best for Large Files with an Account

pixeldrain supports files up to 20 GB per upload and has a clean web UI plus a REST API. With an account you get a real management layer.

Upload Example

curl -T image.png -u :YOUR_API_KEY \
     https://pixeldrain.com/api/file/image.png

Pros

Cons

Best for: Large media files you want to share publicly, with an API.

How to Choose the Right transfer.sh Alternative

Self-Hosting transfer.sh

The transfer.sh source code is on GitHub and you can still run it on your own server or S3 bucket. This makes sense if you have internal file sharing needs and do not want the files to leave your infrastructure. It does not make sense if your goal is "a quick share link" because the operational cost of running a file host dwarfs the cost of just using a hosted service.

If you go self-hosted, expect to handle abuse reports, storage growth, and CDN caching yourself. Most developers who try it drop the plan within a month and move to a hosted service instead.

Conclusion

transfer.sh was a great tool. Its decline is a loss for the cURL-first file-sharing workflow, but the replacements are good. For most developers who want persistent links, a real API, and a CDN behind the URL, FilePost is the closest modern successor. For one-off anonymous drops, 0x0.st and catbox.moe keep the minimalist spirit alive.

Get a free API key and your cURL workflow is back online in under a minute.