▼
English
Deutsch
Plattdüütsch
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
Quenya
Alles, wat d'Formulairen op dësem Site maachen, fir Skripten. All Äntwert ass JSON, Feeler mat abegraff, dofir muss du ni roden, ob e Body e Resultat oder eng Erklärung ass.
POST op den Endpunkt, entweder mat Formulaireparameter oder mat engem JSON-Body. Béid si gläichwäerteg; huel dat, wat däin Tool méi einfach mécht. De Parameter action wielt, wat gemaach gëtt. Benotz --data-urlencode fir alles, wat een agetippt huet — Paste-Text, eng URL, eng Iwwersetzung — well -d de Wäert réi schéckt an en um éischten & ofgeschnidde gëtt. Einfacht -d geet fir fest Wäerter wéi action selwer. wget huet guer kee --data-urlencode, dofir muss du mat wget sou Wäerter selwer prozentkodéieren oder e JSON-Body schécken, dee keng Kodéierung brauch.
curl -X POST https://0wx.es/api.cgi \
-d action=paste --data-urlencode 'content=hello & world'
curl -X POST https://0wx.es/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.es/api.cgi
An engem Formulaire-Body trennt & Parameter, a curl -d kodéiert net, wat s du him gëss. Eng URL mat Query-String gëtt dofir um éischten & ofgeschnidden, an de Rescht kënnt als eenzel Parameter un. Benotz --data-urlencode, oder schéck JSON. Verluer Parameter ginn ofgeleent amplaz ignoréiert, sou datt dat haart feelschléit amplaz en halwe Link ze späicheren.
# wrong -- the value is cut at the &
curl -X POST https://0wx.es/api.cgi \
-d action=tinyurl -d 'url=https://example.com/?a=1&b=2'
# right
curl -X POST https://0wx.es/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.es/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.es/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.es/api.cgi
Optional. Ouni Schlëssel ass eng Ufro anonym a verhält sech genee wéi en anonyme Besucher — d'Resultat ass souwisou ëffentlech, deen eenzegen Ënnerscheed ass, ob et an denger Dateielëscht landet. Maach e Schlëssel op denger Kontsäit a schéck en als Bearer-Token; en als Parameter apikey matzeginn geet och, mee e Schlëssel an engem Query-String landt a Serverlogs an an der Browserhistorik.
curl -X POST https://0wx.es/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-d action=whoami
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=whoami' https://0wx.es/api.cgi
| action | Parameter | Beschreiwung |
|---|---|---|
whoami | — | Bestätegt, datt e Schlëssel funktionéiert, a mellt déi aktuell Limitten. Kascht näischt; ruff et als éischt op. |
ip | — | Mellt deng Adress, hire PTR, d'Land, d'Regioun an d'Stad, wou se geolokaliséiert gëtt, d'Koordinaten an den User-Agent, deen s du geschéckt hues. Brauch kee Schlëssel an äntwert mat oder ouni d'selwecht. Mat Absicht méi enk wéi d'Websäit: kee WHOIS, keng DNS-Zon a keng Blocklëschten-Ofroen, sou datt en Opruff de Server näischt kascht ausser engem lokalen Datebankzougrëff. |
upload | file (widderhuelbar), resize, lifetime, gallery oder g * | Lued eng oder méi Dateien erop. Muss multipart/form-data sinn. Eng Galerie nennen setzt se direkt dran a gëtt hir ID zréck. |
tinyurl | url, lifetime | Verkierzt eng URL. |
hugeurl | url, lifetime | Mécht eng URL méi laang, absurd laang, mat Absicht. |
paste | content, lifetime | Späichert e Block Text a gëtt e Link dorop zréck. |
translate | content, to, from | Iwwersetzt Text. to a from si Coden aus der Aktioun langs — opgepasst, dat sinn net ëmmer Landescoden: Dänesch ass da, net dk. from ka feelen oder auto sinn, da erkennt de Backend d'Sprooch; et unzeginn gëtt bei kuerzem Text e bessert Resultat. |
langs | Lëscht d'Sproochen op, déi translate akzeptéiert, als supported_langs: een Objet pro Sprooch, Code op Numm, an der Reiefolleg, an där de Site se ubitt. Brauch keen API-Schlëssel. | |
dyndns | key, ip, format | Aktualiséiert en dynameschen DNS-Numm. Déi eenzeg Aktioun ouni API-Schlëssel: si gëtt vun engem Router opgeruff, deen ee Feld fir eng URL huet a kee Wee, fir en Header ze schécken. key ass den Update-Schlëssel vum jeeweilegen Numm, dee bei dengem Kont steet, net däin API-Schlëssel. Looss ip ewech, da gëtt d'Adress benotzt, vun där s du opruffs. D'Äntwert ass dat De-facto-dyndns2-Wuert — good, nochg, badauth, abuse oder dnserr — als reng Text, well dat ass, wat Routeren analyséieren; hänk format=json un fir dat üblecht JSON. |
listfiles * | page, g | Lëscht deng Dateien op mat allem, wat d'Info-Feld weist, plus Miniatur an direktem Link. g beschränkt op eng Galerie, none op Dateien ouni Galerie. |
listpastes * | page | Lëscht deng Texter op, mat enger Virschau vun 200 Zeechen amplaz dem ganzen Inhalt. |
listurls * | page | Lëscht deng kuerz a risegen URLen op, mat der Adress, op déi all eng weist. |
otl * | share | Mécht en Eemol-Link op eng vun dengen Dateien. All Opruff mécht en neien, sou datt déi selwecht Datei zwee Leit ze ginn zwee Linke gëtt. |
listotl * | page | Lëscht deng aktiv Eemol-Linken op, d'Datei, op déi all een weist, an ob déi Datei mëttlerweil ofgelaf ass. |
listgalleries * | — | Lëscht deng Galerien op mat IDen, Nimm, Dateiezuel a Publikatiounsstatus. |
gallery * | g, publish | Mellt de Publikatiounsstatus vun enger Galerie an ännert en, wann publish uginn ass. |
move * | share (widderhuelbar), gallery oder g | Verréckelt Dateien an eng Galerie, per Numm (gëtt ugeluecht, wann en nei ass) oder per ID. Feele béid, kommen se zréck an d'Haaptlëscht. |
delete * | share (widderhuelbar), g, otl, withfiles | Läscht Dateien, Texter, kuerz URLen, Galerien, Eemol-Linken oder eng Mëschung dovun. E Share gëtt fir d'éischt mat denge Dateien, dann mat dengen Texter a Linke verglach, sou datt den Opruffer se net no Typ sortéiere muss. Eemol-Linke kommen extra an otl: e Link ewechhuelen däerf net mam Läsche vun der Datei, op déi e weist, verwiesselbar sinn. |
* Dës Aktioune brauchen en API-Schlëssel. Si liesen oder änneren d'Date vun engem Kont, dofir gëtt et keng anonym Form dovun.
share a g akzeptéieren e widderhuelt Feld, e JSON-Array oder eng Lëscht mat Kommaen — dat, wat däin Tool am einfachste mécht. Duplikater ginn ignoréiert.
curl -X POST https://0wx.es/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.es/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=delete -d 'share=Ab3xK9pQ,Zz7yT2mN'
curl -X POST https://0wx.es/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.es/api.cgi
Iwwerall, wou eng Galerie genannt gëtt — bei upload oder bei move — geschitt dat op déi selwecht zwou Manéieren: g fir eng bestehend ID, oder gallery fir en Numm, deen ugeluecht gëtt, wann en nei ass. Gi béid geschéckt, gewënnt g. D'Äntwert enthält d'Galerie-ID. Opgepasst: eng Galerie läschen huelt nëmmen d'Galerie ewech an léisst hir Dateien an der Haaptlëscht — anescht wéi de Webformulaire, deen se no enger Nofro matläscht. Gëff withfiles=true mat, fir se och ze läschen: e Skript, dat seng Gruppéierungen opraumt, sollt net aus Versinn d'Uploads verléieren.
curl -X POST https://0wx.es/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-F action=upload -F file=@photo.jpg --form-string 'gallery=Holiday 2026'
curl -X POST https://0wx.es/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.es/api.cgi
Uploads kënnen de JSON-Body net benotzen, well eng Datei als multipart geschéckt muss ginn. Widderhuel den Deel file, fir der méi op eemol ze schécken. All Datei gëtt eenzel gemellt: d'Äntwert enthält eng Lëscht files mat deenen, déi ugeholl goufen, an eng Lëscht rejected mat deenen, déi ofgeleent goufen, sou datt en Deelerfolleg ëmmer nach en Erfolleg ass.
curl -X POST https://0wx.es/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-F action=upload \
-F file=@photo.jpg \
-F file=@notes.txt \
-F lifetime=7d
Dovun gëtt et keng wget-Form. wget kann kee multipart/form-data-Body bauen — et huet kee Géigestéck zu curl sengem -F — an Uploads musse multipart sinn. Benotz curl, oder setz Body a Boundary selwer zesummen a schéck se mat --post-file.
Optional bei all Aktioun, déi eppes späichert. Akzeptéiert blo Sekonnen, oder eng Zuel mat m, h oder d dohannert — déi selwecht Formen ewéi d'Webformulairen. Looss et ewech oder gëff 0, fir d'Element onbegrenzt ze halen.
All Äntwert ass e JSON-Objet mat engem Feld ok. Bei Erfolleg enthält et d'Resultat; bei Feeler e stabille error-Code an eng liesbar message. Verzweig op de Code, protokolléier d'Noriicht.
{"ok":true,"type":"paste","share":"Ab3xK9pQ",
"url":"https://0wx.es/p/Ab3xK9pQ","bytes":11}
{"ok":false,"error":"url_too_long",
"message":"URL exceeds the maximum length."}
Wou eng Datei se huet, setzt listfiles file_tags bei hiren Antrag: Interpret, Titel an Album, beim Eroplueden aus ID3, Vorbis-Kommentaren oder MP4-Atomer gelies. De Schlëssel feelt, amplaz null ze sinn, wann et näischt ze mellen gëtt, wat bei de meeschten Dateien de Fall ass; test en also, ier s du e lies. Och eenzel Felder kënne feelen — eng Datei kann en Titel hunn a keen Album. Näischt anescht aus de Metadate vun der Datei gëtt opgedeckt: en iTunes-Kaf enthält den Numm an d'Apple-ID vum Keefer, an déi gi mat Absicht ni gelies.
{"ok":true,"type":"files","total":2,"page":1,"pages":1,"files":[
{"share":"Ab3xK9pQ","name":"autobahn.mp3","mime":"audio/mpeg",
"bytes":8123456,"url":"https://0wx.es/i/Ab3xK9pQ",
"file_tags":{"artist":"Kraftwerk","title":"Autobahn","album":"Autobahn"}},
{"share":"Zz7yT2mN","name":"photo.jpg","mime":"image/jpeg",
"bytes":204800,"url":"https://0wx.es/i/Zz7yT2mN"}
]}
| error | HTTP | Beschreiwung |
|---|---|---|
unknown_action | 400 | Déi Aktioun gëtt et net. |
bad_json | 400 | De Body war kee gültegt JSON, oder e Feld hat eng verschachtelt Struktur. |
unexpected_parameter | 400 | E Parameter ass ukomm, deen dës Aktioun net hëlt — meeschtens en net-kodéierten & an engem Wäert. D'Noriicht nennt d'Parameter. |
bad_key | 401 | De Schlëssel gouf net erkannt. E falsche Schlëssel gëtt ofgeleent amplaz roueg als anonym behandelt ze ginn. |
bad_url | 400 | D'URL ass falsch geformt, oder benotzt en anert Schema wéi http(s), ftp oder gopher. |
bad_lifetime | 400 | D'Liewensdauer war keng Zuel an och keng Zuel mat m, h oder d dohannert. |
no_content | 400 | Et gouf näischt geschéckt fir ze späicheren. |
url_too_long | 413 | D'URL ass méi laang wéi d'Limitt. |
paste_too_long | 413 | Den Text ass méi grouss wéi d'Paste-Limitt. Limitte gi a UTF-8-Bytes gemooss, dofir zielt net-laténgeschen Text méi wéi seng Zeechenzuel et vermuddelt. |
too_many_files | 413 | Méi Dateien wéi een Opruff akzeptéiert. |
no_usable_files | 415 | All Dateie goufen ofgeleent. Kuck an der Lëscht rejected, firwat. |
backend_unavailable | 502 | Den Iwwersetzungs-Backend huet net geäntwert. |
internal | 500 | Eppes ass onerwaart schifgaangen. Et gouf protokolléiert. |
Ruff whoami op, fir déi aktuell Wäerter ze liesen, amplaz se fest anzeprogramméieren — si ginn vum Serverbetreiwer festgeluecht a kënne sech änneren. Gréissten sinn UTF-8-Bytes.
0wx.sh verpaakt alles hei uewen. Et ass reng POSIX-Shell, brauch näischt ausser curl, an ass kuerz genuch, fir et ze liesen, ier s du et lafe léiss — wat richteg ass bei engem Skript, dat däin API-Schlëssel hale wäert. Setz de Schlëssel an OWX_KEY, amplaz --key matzeginn, da bleift en aus denger Shell-Historik eraus.
wget https://0wx.es/clients/0wx.sh chmod +x 0wx.sh export OWX_KEY=YOUR_KEY ./0wx.sh help ./0wx.sh paste --content 'hello & world'
0wx.py mécht dat selwecht wéi de Shell-Client, mee et analyséiert d'Äntwert a gëtt aus, wat d'Felder bedeiten, amplaz dir réit JSON ze ginn — hänk --json un, wann s du déi réi Form wëlls. Nëmme Standardbibliothéik: kee requests, näischt ze installéieren. Wann s du däin eegene Client schreifs, sinn seng Funktiounen send() a report() déi Deeler, déi et wäert sinn ze liesen: zesumme weisen se, wéi d'Ufro opgebaut gëtt, wéi een d'Noriicht aus enger feelgeschloener erauskritt, a wat d'Äntwerten enthalen.
wget https://0wx.es/clients/0wx.py chmod +x 0wx.py export OWX_KEY=YOUR_KEY ./0wx.py listfiles ./0wx.py listfiles --json | jq '.files[].url'
0wx.pl mécht dat selwecht wéi de Python-Client a gëtt dat selwecht aus. Nëmme Core-Moduler — HTTP::Tiny a JSON::PP sinn zënter 5.14 bei Perl dobäi, dofir gëtt et näischt ze installéieren. Et wäert ze liesen nieft dem Python-Client, wann s du däin eegene schreifs: déi zwou Sprooche schléissen bei enger kapotter Ufro ënnerschiddlech feel, a béid Skripte soen, wou.
wget https://0wx.es/clients/0wx.pl chmod +x 0wx.pl export OWX_KEY=YOUR_KEY ./0wx.pl listfiles
0wx.ps1 ass de Géigestéck zum Python-Client fir Windows: déi selwecht Kommandoen, déi selwecht Ausgab, an et analyséiert d'Äntwert, amplaz dir réit JSON ze ginn — hänk dofir --json un. Et ass fir déi Windows PowerShell geschriwwen, déi scho um Rechner ass, dofir gëtt et näischt ze installéieren, an et leeft onverännert op PowerShell 7. Vläicht brauchs du Set-ExecutionPolicy -Scope Process Bypass an der Fënster, aus där s du et starts; dat ass Windows, dat freet, ob s du wierklech en erofgelueden Skript lafe loosse wëlls — eng berechtegt Fro, an d'Datei ass kuerz genuch, fir se virdrun ze liesen.
$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 ass dee selwechte Saz Tabs wéi den Desktop-Client, als dräi Dateien — eng Säit, e Stylesheet an e Skript — ouni Installatioun, ouni Framework an ouni datt eppes vun anzwousch anescht wéi vun dësem Site gelueden gëtt. Dräi amplaz eng, well d'Content-Security-Policy vum Site Inline-Skript a -Stil verbitt, wat et wäert ass bäizebehalen. Dateie kënnen dorop falegelooss ginn. Et muss vun hei opgemaach ginn, net gespäichert a vun denger Festplack: d'API schéckt keng Cross-Origin-Header, dofir géif däi Browser bei enger lokaler Kopie all Ufro ofleenen, ier se erausgeet. De Schlëssel bleift am Späicher, ausser s du hakst un, datt en sech soll gemierkt ginn.
https://0wx.es/clients/0wx.html
0wx-gui.ps1 ass dee selwechte Saz Tabs wéi den Desktop-Client, mat WinForms gezeechent — dat heescht guer näischt ze installéieren, well dat schonn Deel vu Windows ass. Setz et an dee selwechten Dossier wéi 0wx.ps1: d'Fënster léint sech d'Ufroveraarbechtung vun där Datei, amplaz eng zweet Kopie matzeschleefen, dofir brauch et béid. Windows freet, ier et e Skript lafe léisst, dat et net selwer geschriwwen huet, wat eng berechtegt Fro ass; béid Dateie si kuerz genuch, fir se ze liesen, ier s du äntwers.
powershell -ExecutionPolicy Bypass -File .\0wx-gui.ps1
0wx-gtk.pl ass eng kleng GTK-Fënster mat Tabs fir eropzelueden, anzesetzen, ze verkierzen an deng Dateien duerchzekucken — als Lëscht oder als Galerie vu Miniaturen, no Galerie gefiltert. Et ass deen eenzege Client hei, deen eppes installéiert brauch — d'GTK3-Bindunge vu Perl — wat et wäert ass ze wëssen nieft der Windows-Fënster hei uewen, déi guer näischt brauch. Alles anescht, wat et benotzt, ass bei Perl dobäi. De Schlëssel gëtt nëmmen am Späicher gehalen: d'Fënster zoumaachen vergësst en, an OWX_KEY setzen fëllt en beim Start an. Egal wat et dir weist, déi réi Äntwert vum Server ass ee Klick ewech ënner “Server reply”.
apt install libgtk3-perl # or: dnf install perl-Gtk3 wget https://0wx.es/clients/0wx-gtk.pl chmod +x 0wx-gtk.pl OWX_KEY=YOUR_KEY ./0wx-gtk.pl
0wx-android.apk mécht dat, wat déi aner Clientë maachen, vum Telefon aus: eroplueden, asetzen, verkierzen, iwwersetzen an deng Dateien als Lëscht oder Galerie duerchkucken. Eng Datei aus enger anerer App domat deele lued se erop, an Text deele späichert en als Text. Et ass a kengem App-Store, dofir freet däin Apparat, ob s du d'Installatioun erlaabs — eng Fro, déi een allgemeng eescht huele sollt, an de Grond, firwat de komplette Quellcode och hei läit: maach en an Android Studio op a bau e selwer, amplaz der Datei ze vertrauen. Fir ze bauen brauch et JDK 21; d'BUILDING.md dran seet, firwat.
https://0wx.es/clients/0wx-android.apk # install it https://0wx.es/clients/0wx-android.zip # build it yourself
Et gëtt mat Absicht keng Aktioun fir vu wäitem ofzehuelen. Si géif de Server eng vum Opruffer gewielten URL huele loossen, wat eng Ugrëffsfläch fir Request Forgery ass, an e Skript kann dat vill méi haart undreiwen wéi e Formulaire. Lued d'Datei léiwer selwer erop.