▼
English
Deutsch
Plattdüütsch
Lëtzebuergesch
Nederlands
Dansk
Svenska
Bokmål
Nynorsk
Íslenska
Føroyskt
Español
Català
Galego
Português
Français
Italiano
Latina
Română
Rumantsch
Gaeilge
Suomi
Magyar
Euskara
Esperanto
日本語
简体中文
繁體中文(台灣)
繁體中文(香港)
粵語
한국어
Tiếng Việt
ไทย
Bahasa Indonesia
Bahasa Melayu
हिन्दी
Ελληνικά
Polski
Čeština
Українська
Русский
Türkçe
العربية
עברית
Kiswahili
ʻŌlelo Hawaiʻi
tlhIngan Hol
scripts JSON
POST endpoint form parameters JSON- parameter action --data-urlencode — URL — -d & -d action wget --data-urlencode wget percent-encode JSON-
curl -X POST https://0wx.cat/api.cgi \
-d action=paste --data-urlencode 'content=hello & world'
curl -X POST https://0wx.cat/api.cgi \
-H 'Content-Type: application/json' \
-d '{"action":"paste","content":"hello & world"}'
wget -qO- --header='Content-Type: application/json' \
--post-data '{"action":"paste","content":"hello & world"}' https://0wx.cat/api.cgi
form- & parameters curl -d URL query string & parameters --data-urlencode JSON Parameters
# wrong -- the value is cut at the &
curl -X POST https://0wx.cat/api.cgi \
-d action=tinyurl -d 'url=https://example.com/?a=1&b=2'
# right
curl -X POST https://0wx.cat/api.cgi \
-d action=tinyurl --data-urlencode 'url=https://example.com/?a=1&b=2'
# also right -- JSON needs no escaping
curl -X POST https://0wx.cat/api.cgi -H 'Content-Type: application/json' \
-d '{"action":"tinyurl","url":"https://example.com/?a=1&b=2"}'
# wget has no --data-urlencode, so percent-encode it yourself...
wget -qO- --post-data 'action=tinyurl&url=https%3A%2F%2Fexample.com%2F%3Fa%3D1%26b%3D2' https://0wx.cat/api.cgi
# ...or send JSON, which needs no encoding at all
wget -qO- --header='Content-Type: application/json' \
--post-data '{"action":"tinyurl","url":"https://example.com/?a=1&b=2"}' https://0wx.cat/api.cgi
— bearer token apikey URL
curl -X POST https://0wx.cat/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-d action=whoami
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=whoami' https://0wx.cat/api.cgi
| action | Parameters | |
|---|---|---|
whoami | — | |
ip | — | PTR user agent WHOIS DNS-zone blocklist |
upload | file ( ), resize, lifetime, gallery g * | multipart/form-data id |
tinyurl | url, lifetime | URL |
hugeurl | url, lifetime | URL |
paste | content, lifetime | |
translate | content, to, from | to from langs — Danish da dk from auto |
langs | translate supported_langs API- | |
dyndns | key, ip, format | DNS- API- router URL- key API- ip dyndns2- — good nochg badauth abuse dnserr — routers format=json JSON- |
listfiles * | page, g | - g none |
listpastes * | page | 200 |
listurls * | page | (URL) |
otl * | share | |
listotl * | page | |
listgalleries * | — | id |
gallery * | g, publish | publish |
move * | share ( ), gallery g | ( ) id- |
delete * | share ( ), g, otl, withfiles | URL Share otl |
* API-
share g - JSON-array comma- —
curl -X POST https://0wx.cat/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=move -d share=Ab3xK9pQ -d share=Zz7yT2mN --data-urlencode 'gallery=Holiday 2026'
curl -X POST https://0wx.cat/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=delete -d 'share=Ab3xK9pQ,Zz7yT2mN'
curl -X POST https://0wx.cat/api.cgi -H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_KEY' \
-d '{"action":"move","share":["Ab3xK9pQ","Zz7yT2mN"],"g":7}'
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=delete&share=Ab3xK9pQ,Zz7yT2mN' https://0wx.cat/api.cgi
— upload move — g id- gallery g id — withfiles=true script
curl -X POST https://0wx.cat/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-F action=upload -F file=@photo.jpg --form-string 'gallery=Holiday 2026'
curl -X POST https://0wx.cat/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=gallery -d g=7 -d publish=true
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=gallery&g=7&publish=true' https://0wx.cat/api.cgi
JSON- multipart file files rejected
curl -X POST https://0wx.cat/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-F action=upload \
-F file=@photo.jpg \
-F file=@notes.txt \
-F lifetime=7d
wget- wget multipart/form-data- — -F curl — multipart curl boundary --post-file
m h d — 0
JSON- ok error- message message
{"ok":true,"type":"paste","share":"Ab3xK9pQ",
"url":"https://0wx.cat/p/Ab3xK9pQ","bytes":11}
{"ok":false,"error":"url_too_long",
"message":"URL exceeds the maximum length."}
listfiles file_tags artist title album ID3 Vorbis comments MP4 atoms key null — title album metadata- iTunes- Apple ID
{"ok":true,"type":"files","total":2,"page":1,"pages":1,"files":[
{"share":"Ab3xK9pQ","name":"autobahn.mp3","mime":"audio/mpeg",
"bytes":8123456,"url":"https://0wx.cat/i/Ab3xK9pQ",
"file_tags":{"artist":"Kraftwerk","title":"Autobahn","album":"Autobahn"}},
{"share":"Zz7yT2mN","name":"photo.jpg","mime":"image/jpeg",
"bytes":204800,"url":"https://0wx.cat/i/Zz7yT2mN"}
]}
| error | HTTP | |
|---|---|---|
unknown_action | 400 | |
bad_json | 400 | JSON |
unexpected_parameter | 400 | Parameter — & message parameters |
bad_key | 401 | |
bad_url | 400 | URL http(s) ftp gopher |
bad_lifetime | 400 | m h d |
no_content | 400 | |
url_too_long | 413 | URL |
paste_too_long | 413 | bytes (UTF-8) Latin- |
too_many_files | 413 | |
no_usable_files | 415 | rejected |
backend_unavailable | 502 | - |
internal | 500 | |
whoami script — bytes (UTF-8)
0wx.sh POSIX shell curl — script API- OWX_KEY --key shell-
wget https://0wx.cat/clients/0wx.sh chmod +x 0wx.sh export OWX_KEY=YOUR_KEY ./0wx.sh help ./0wx.sh paste --content 'hello & world'
0wx.py shell-client JSON — --json JSON standard library requests client send() report() message
wget https://0wx.cat/clients/0wx.py chmod +x 0wx.py export OWX_KEY=YOUR_KEY ./0wx.py listfiles ./0wx.py listfiles --json | jq '.files[].url'
0wx.pl Python-client core modules — HTTP::Tiny JSON::PP Perl 5.14 Python-client scripts
wget https://0wx.cat/clients/0wx.pl chmod +x 0wx.pl export OWX_KEY=YOUR_KEY ./0wx.pl listfiles
0wx.ps1 Python-client Windows- JSON — --json Windows PowerShell- PowerShell 7 Set-ExecutionPolicy -Scope Process Bypass Windows script —
$env:OWX_KEY = 'YOUR_KEY' .\0wx.ps1 listfiles .\0wx.ps1 paste --content 'hello & world' .\0wx.ps1 upload --file .\holiday.jpg --gallery 'Holiday 2026'
0wx.html tabs desktop-client — stylesheet script — framework Content-Security-Policy inline script style disk- API cross-origin headers
https://0wx.cat/clients/0wx.html
0wx-gui.ps1 tabs desktop-client WinForms — Windows- folder 0wx.ps1 - Windows script
powershell -ExecutionPolicy Bypass -File .\0wx-gui.ps1
0wx-gtk.pl GTK- tabs — client — Perl GTK3 bindings — Windows- Perl OWX_KEY - click “Server reply”
apt install libgtk3-perl # or: dnf install perl-Gtk3 wget https://0wx.cat/clients/0wx-gtk.pl chmod +x 0wx-gtk.pl OWX_KEY=YOUR_KEY ./0wx-gtk.pl
0wx-android.apk clients phone- app- app store — Android Studio JDK 21 BUILDING.md
https://0wx.cat/clients/0wx-android.apk # install it https://0wx.cat/clients/0wx-android.zip # build it yourself
- URL script