SECURE SHARING

Encrypted file and text sharing with automatic self-destruction. Once it's gone, it's gone forever.

Drop your file here or browse

Max file size: 2GB
24 Hours
1 View
5 Minutes
30 Minutes
1 Hour
6 Hours
24 Hours
7 Days
Encrypting & uploading... 0%
END-TO-END ENCRYPTED • AES-256-GCM
01.

Zero Knowledge

We don't store your decryption keys. Data is encrypted client-side before upload.

02.

Ephemeral

Automated garbage collection ensures data is wiped from RAM and disk immediately.

03.

Global

Ultra-low latency delivery via our globally distributed edge network.

How It Works

1

Encrypt Locally

Your browser generates a random AES-256 key and encrypts your file or text before it ever leaves your device.

2

Upload Securely

Only the encrypted data is uploaded. The decryption key is embedded in the URL fragment and never sent to our server.

3

Share & Destruct

Share the link. The recipient's browser decrypts the data locally. After expiry, the encrypted blob is permanently destroyed.

API & CLI Guide

Upload files directly from your terminal on Linux, macOS, or Windows.

# Upload a file
curl -X POST -F "file=@/path/to/file.pdf" \
     -F "expiry=24h" \
     https://upload-temp.stream4tech.app/upload

# Upload text
curl -X POST -F "text=Your secret message" \
     -F "expiry=1h" \
     https://upload-temp.stream4tech.app/upload

# Upload with password
curl -X POST -F "file=@document.pdf" \
     -F "expiry=24h" -F "password=mySecret" \
     https://upload-temp.stream4tech.app/upload

# Download a file
curl -O -J "https://upload-temp.stream4tech.app/api/d/<short_id>"

# Download with wget
wget --content-disposition "https://upload-temp.stream4tech.app/api/d/<short_id>"
Note: CLI uploads skip client-side encryption. For zero-knowledge security, use the web interface or pre-encrypt your files with openssl or gpg before uploading via CLI.
import requests

# Upload a file
with open("document.pdf", "rb") as f:
    resp = requests.post("https://upload-temp.stream4tech.app/upload",
        files={"file": f},
        data={"expiry": "24h", "password": "optional"})
    print(resp.json()["url"])

# Upload text
resp = requests.post("https://upload-temp.stream4tech.app/upload",
    data={"text": "Hello, World!", "expiry": "1h"})
print(resp.json()["url"])

# Download
resp = requests.get("https://upload-temp.stream4tech.app/api/d/<short_id>")
with open("output.bin", "wb") as f:
    f.write(resp.content)
# Upload a file
$resp = Invoke-RestMethod -Uri "https://upload-temp.stream4tech.app/upload" `
    -Method Post -Form @{
        file  = Get-Item "C:\path\to\file.txt"
        expiry = "24h"
    }
Write-Host $resp.url

# Upload text
$resp = Invoke-RestMethod -Uri "https://upload-temp.stream4tech.app/upload" `
    -Method Post -Form @{
        text   = "Your secret text"
        expiry = "1h"
    }
Write-Host $resp.url

# Download
Invoke-WebRequest -Uri "https://upload-temp.stream4tech.app/api/d/<short_id>" `
    -OutFile "downloaded_file.txt"
POST /upload
Content-Type: multipart/form-data

Parameters:
  file     - File to upload (binary)
  text     - Text content (string)
  expiry   - 1view | 5m | 30m | 1h | 6h | 24h | 7d
  password - Optional access password

Response (200):
{
  "url": "https://upload-temp.stream4tech.app/d/x9f2_kL0",
  "short_id": "x9f2_kL0",
  "type": "file",
  "expires_in": "24h",
  "size": 102400
}

GET /api/d/<short_id>     — Raw file download
GET /d/<short_id>         — Web decrypt view
GET /health               — Health check
GET /stats                — Server statistics