shz.al
A pastebin hosted on Cloudflare Workers at {{BASE_URL}}. Every operation is
plain HTTP and works with curl. Random paste names appear bare (e.g. abcd);
custom names are returned with a leading ~ (e.g. ~hitagi).
Upload
curl -Fc='hello, world' {{BASE_URL}} # text
curl -Fc=@file.png {{BASE_URL}} # file
<cmd> | curl -Fc=@- {{BASE_URL}} # stdin
Response:
{
"url": "{{BASE_URL}}/abcd",
"manageUrl": "{{BASE_URL}}/abcd:<password>",
"expireAt": "2026-05-21T10:33:06.114Z"
}
Persist manageUrl if the paste may need to be updated or deleted later — it
is the only way to authenticate as the owner.
Optional upload fields
-Fn=<name>— custom name (≥3 chars, returned prefixed with~).-Fe=<expire>— expiration: integer/float with units/m/h/d(default seconds). E.g.-Fe=30m,-Fe=14d.-Fs=<password>— set a specific management password.-Flang=<lang>— mark for syntax highlighting on the display page.-Fp=1— private mode: 24-char unguessable random name.
Fetch
curl {{BASE_URL}}/<name> # raw content
curl -OJ {{BASE_URL}}/~<name> # save with server filename
curl {{BASE_URL}}/m/<name> # JSON metadata (size, dates, …)
curl -I {{BASE_URL}}/<name> # HEAD only
Append ?a for Content-Disposition: attachment, ?mime=<mime> to override
the response Content-Type, or append .<ext> to the path to set Content-Type
by extension.
Update / delete
curl -X PUT -Fc='new content' <manageUrl>
curl -X DELETE <manageUrl>
PUT accepts the same fields as upload; e recalculates expiration from now.
Other URL forms
/d/<name>— display code with syntax highlighting. Append?lang=<lang>to override the highlighting language./a/<name>— render a markdown paste as HTML (GitHub-flavored Markdown + MathJax)./u/<name>— redirect to the URL stored in the paste (URL shortener).
Limitations
- Default expiration is
{{DEFAULT_EXPIRATION}}, max{{MAX_EXPIRATION}}. Pastes are deleted on expiry. - Max upload size is
{{R2_MAX_ALLOWED}}. - A single request body is capped at 100 MB by Cloudflare (you get
HTTP
413 Payload Too Largeback, returned by the platform before the worker runs). Files larger than 100 MB therefore cannot be sent via a singlecurl -Fc=@…— use the web UI at{{BASE_URL}}or thepbCLI (see scripts/), both of which split large files automatically. - Treat the service as ephemeral storage — do not rely on it for archival.
Full docs
{{BASE_URL}}/doc/curl.md— comprehensive curl guide.{{BASE_URL}}/doc/api.md— HTTP API reference.
Source: SharzyL/pastebin-worker — distributed by TomeVault.