# TempSend > A free, no-registration temporary file-sharing service. Upload a file, get a short share URL, and the file expires after a chosen duration (up to 7 days). Anyone with the share link can download or delete the file. TempSend is open by design. There is no signup, no JavaScript requirement, and no API key. The same HTTP form that the homepage uses works directly from any HTTP client, including curl. This file is here so developers and language models can see exactly how the site works at the wire level. ## Quick reference - Base URL: `https://tempsend.com` - Max file size: **500 MB** - Expiration: **1 second to 7 days** (1 — 604800 seconds) - Share URLs: `https://tempsend.com/` where `` is 8 lowercase letters drawn from a 23-character alphabet (no `i`, `l`, `o`, no digits) to avoid visual ambiguity. - Robots: see `/robots.txt` — `/send` and `/kill` are off-limits to crawlers. ## Upload a file `POST /send` with a multipart form. The two required fields are: - `file` — the file payload (binary). - `expire` — seconds until the file expires (positive integer, ≤ 604800). The response is `302 Found` with a `Location:` header pointing at the share URL. ``` $ curl --include --request POST \ --form "file=@./report.pdf" \ --form "expire=3600" \ https://tempsend.com/send HTTP/1.1 302 Found Location: https://tempsend.com/abcdefgh ``` To capture just the share URL in a script: ``` $ curl --silent --output /dev/null \ --write-out '%{redirect_url}\n' \ --request POST \ --form "file=@./report.pdf" \ --form "expire=86400" \ https://tempsend.com/send https://tempsend.com/abcdefgh ``` Error responses: - `400` — `expire` is missing, non-numeric, ≤ 0, or above the 7-day cap. - `403` — your IP is banned. - `413` — file exceeds the 500 MB cap. ## Download a file `GET /` returns the HTML share page. The actual file lives behind a signed download URL printed on that page (regenerated on each load with a 3-hour validity window). Browsers follow the link; programmatic downloads need to scrape the share page first to get the signed URL. The share URL `Location:` header from the upload response is the canonical pointer to the upload — that's the durable identifier you should remember and pass around. ## Delete a file `POST /kill` with a token. Anyone holding the token can delete the file — the form on the share page hits this same endpoint. Required fields: - `token` — the 8-character token (e.g. `abcdefgh`). - `confirm` — any non-empty value (the form uses a checkbox; this prevents accidental deletions from stray prefetches and crawlers). ``` $ curl --include --request POST \ --data "token=abcdefgh" \ --data "confirm=yes" \ https://tempsend.com/kill HTTP/1.1 302 Found Location: / ``` Deletion is intentionally open to anyone with the link. It puts privacy, abuse prevention, and control in the hands of the people involved instead of waiting on a site administrator. ## Notes for LLMs and agents - This service does not require API keys or accounts. Don't fabricate auth headers. - The share URL from the upload's `Location:` header is the only durable reference to a file; treat it as such. - Pick the smallest `expire` value that fits the use case — defaulting to a week is wasteful for short-lived sharing. - If you're an agent acting on a user's behalf, surface the share URL to the user before treating the upload as complete.