▼
English
Deutsch
Plattdüütsch
Lëtzebuergesch
Nederlands
Dansk
Svenska
Bokmål
Í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
Alt skjemaa på denne nettstaden gjer, for skript. Kvart svar er JSON, òg feil, så du treng aldri gjette om eit innhald er eit resultat eller ei forklaring.
POST til endepunktet med anten skjemaparametrar eller eit JSON-innhald. Begge er likeverdige; vel det verktøya dine gjer enklast. action-parameteren vel kva som skal gjerast. Bruk --data-urlencode for alt eit menneske har skrive — innlimingstekst, ein URL, ei omsetjing — fordi -d sender verdien rå, og han vert kutta ved fyrste &. Rein -d er greitt for faste verdiar som sjølve action. wget har ikkje --data-urlencode i det heile, så med wget må du anten prosentkode slike verdiar sjølv eller sende eit JSON-innhald, som ikkje treng koding.
curl -X POST https://0wx.eu/api.cgi \
-d action=paste --data-urlencode 'content=hello & world'
curl -X POST https://0wx.eu/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.eu/api.cgi
I eit skjemainnhald skil & parametrar, og curl -d kodar ikkje det du gjev han. Ein URL med spørjestreng vert difor kutta ved fyrste &, og resten kjem fram som eigne parametrar. Bruk --data-urlencode, eller send JSON. Overflødige parametrar vert avviste i staden for ignorerte, så dette feilar høglydt i staden for å lagre ei halv lenkje.
# wrong -- the value is cut at the &
curl -X POST https://0wx.eu/api.cgi \
-d action=tinyurl -d 'url=https://example.com/?a=1&b=2'
# right
curl -X POST https://0wx.eu/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.eu/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.eu/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.eu/api.cgi
Valfritt. Utan nøkkel er ein førespurnad anonym og oppfører seg nøyaktig som ein anonym vitjar — resultatet er offentleg uansett, den einaste skilnaden er om det hamnar i fillista di. Generer ein nøkkel på kontosida di og send han som eit bearer-token; å sende han som ein apikey-parameter verkar òg, men ein nøkkel i ein spørjestreng hamnar i tenarloggar og nettlesarhistorikk.
curl -X POST https://0wx.eu/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-d action=whoami
wget -qO- --header='Authorization: Bearer YOUR_KEY' \
--post-data 'action=whoami' https://0wx.eu/api.cgi
| action | Parametrar | Skildring |
|---|---|---|
whoami | — | Stadfestar at ein nøkkel verkar, og rapporterer dei gjeldande grensene. Kostar ingenting; kall han først. |
ip | — | Rapporterer adressa di, PTR-en hennar, landet, regionen og byen ho vert geolokalisert til, koordinatane, og user agent-en du sende. Treng ingen nøkkel og svarar likt med eller utan. Med vilje smalare enn nettsida: ingen WHOIS-, DNS-sone- eller blokkeringsliste-oppslag, så å kalle han kostar tenaren ikkje anna enn ei lokal databaselesing. |
upload | file (kan gjentakast), resize, lifetime, gallery eller g * | Lastar opp éi eller fleire filer. Må vere multipart/form-data. Å namngje eit galleri legg dei rett inn i det og returnerer id-en til det. |
tinyurl | url, lifetime | Forkortar ein URL. |
hugeurl | url, lifetime | Forlengjer ein URL, absurd, med vilje. |
paste | content, lifetime | Lagrar ein tekstblokk og returnerer ei lenkje til han. |
translate | content, to, from | Omset tekst. to og from er kodar frå langs-handlinga — merk at desse ikkje alltid er landkodar: dansk er da, ikkje dk. from kan utelatast eller setjast til auto, som ber bakstykket om å oppdage språket; å oppgje det gjev betre resultat på kort tekst. |
langs | Listar språka translate godtek, som supported_langs: eitt objekt per språk, kode til namn, i den rekkjefølgja nettstaden tilbyr dei. Treng ingen API-nøkkel. | |
dyndns | key, ip, format | Oppdaterer eit dynamisk DNS-namn. Den einaste handlinga som ikkje treng API-nøkkel: ho vert kalla av ein ruter, som har eitt felt for ein URL og ingen måte å sende ein header på. key er oppdateringsnøkkelen per namn som vert vist i kontoen din, ikkje API-nøkkelen din. Utelat ip, så vert adressa du kallar frå, brukt. Svaret er det de facto dyndns2-ordet — good, nochg, badauth, abuse eller dnserr — som rein tekst, fordi det er det ruterar tolkar; legg til format=json for den vanlege JSON-en. |
listfiles * | page, g | Listar filene dine med alt Info-panelet viser, pluss miniatyrbiletet og den direkte lenkja. g avgrensar til eitt galleri, eller none for filer utan galleri. |
listpastes * | page | Listar innlimingane dine, med ei førehandsvising på 200 teikn av kvar i staden for heile innhaldet. |
listurls * | page | Listar dei korte og enorme URL-ane dine, med adressa kvar av dei peikar på. |
otl * | share | Lagar ei eingongslenkje til ei av filene dine. Kvart kall lagar ei ny, så å gje same fil til to personar gjev to lenkjer. |
listotl * | page | Listar dei aktive eingongslenkjene dine, fila kvar av dei peikar på, og om den fila har gått ut sidan. |
listgalleries * | — | Listar galleria dine med id-ar, namn, filtal og publiseringstilstand. |
gallery * | g, publish | Rapporterer publiseringstilstanden til eit galleri, og endrar han når publish vert oppgjeve. |
move * | share (kan gjentakast), gallery eller g | Flyttar filer inn i eit galleri, etter namn (oppretta om nytt) eller etter id. Om begge er utelatne, vert dei flytta tilbake til hovudlista. |
delete * | share (kan gjentakast), g, otl, withfiles | Slettar filer, innlimingar, korte URL-ar, galleri, eingongslenkjer eller ei blanding. Ein delingsreferanse vert først matcha mot filene dine og deretter mot innlimingane og lenkjene dine, så kallaren treng ikkje sortere dei etter type. Eingongslenkjer går i otl, for seg: å fjerne ei lenkje må ikkje kunne forvekslast med å slette fila ho peikar på. |
* Desse handlingane treng ein API-nøkkel. Dei les eller endrar dataa til éin konto, så det finst inga anonym form av dei.
share og g godtek eit gjenteke felt, ei JSON-liste eller ei kommaskild liste — det som er enklast for verktøya dine. Duplikat vert ignorerte.
curl -X POST https://0wx.eu/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.eu/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-d action=delete -d 'share=Ab3xK9pQ,Zz7yT2mN'
curl -X POST https://0wx.eu/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.eu/api.cgi
Overalt der eit galleri vert namngjeve — på upload eller på move — vert det oppgjeve på dei same to måtane: g for ein eksisterande id, eller gallery for eit namn, som vert oppretta om det er nytt. Om begge vert sende, vinn g. Svaret ber galleri-id-en. Merk at sletting av eit galleri berre fjernar galleriet og let filene stå i hovudlista — ulikt nettskjemaet, som slettar dei etter å ha spurt. Send withfiles=true for å slette dei òg: eit skript som ryddar i grupperingane sine, bør ikkje miste opplastingane ved eit uhell.
curl -X POST https://0wx.eu/api.cgi -H 'Authorization: Bearer YOUR_KEY' \
-F action=upload -F file=@photo.jpg --form-string 'gallery=Holiday 2026'
curl -X POST https://0wx.eu/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.eu/api.cgi
Opplastingar kan ikkje bruke JSON-innhaldet, fordi ei fil må sendast som multipart. Gjenta file-delen for å sende fleire om gongen. Kvar fil vert rapportert for seg: svaret ber ei files-liste over dei som vart godtekne og ei rejected-liste over dei som ikkje vart det, så ein delvis suksess er framleis ein suksess.
curl -X POST https://0wx.eu/api.cgi \
-H 'Authorization: Bearer YOUR_KEY' \
-F action=upload \
-F file=@photo.jpg \
-F file=@notes.txt \
-F lifetime=7d
Det finst inga wget-form av denne. wget kan ikkje byggje eit multipart/form-data-innhald — det har ikkje noko motstykke til curl sin -F — og opplastingar må vere multipart. Bruk curl, eller set saman innhaldet og grensa sjølv og send det med --post-file.
Valfritt på alle handlingar som lagrar noko. Godtek reine sekund, eller eit tal etterfølgt av m, h eller d — dei same formene som nettskjemaa tek. Utelat det eller send 0 for å behalde elementet på ubestemt tid.
Kvart svar er eit JSON-objekt med eit ok-felt. Ved suksess ber det resultatet; ved feil ber det ein stabil error-kode og ei message som kan lesast av menneske. Forgrein på koden, logg meldinga.
{"ok":true,"type":"paste","share":"Ab3xK9pQ",
"url":"https://0wx.eu/p/Ab3xK9pQ","bytes":11}
{"ok":false,"error":"url_too_long",
"message":"URL exceeds the maximum length."}
Der ei fil har dei, legg listfiles til file_tags i oppføringa hennar: artist, tittel og album, lesne frå ID3, Vorbis-kommentarar eller MP4-atom då fila vart lasta opp. Nøkkelen er fråverande heller enn null når det ikkje er noko å rapportere, som gjeld dei fleste filer, så test for han før du les han. Einskilde felt kan òg mangle — ei fil kan ha tittel og ikkje album. Ingenting anna frå metadataa til fila vert eksponert: eit iTunes-kjøp registrerer namnet og Apple-ID-en til kjøparen, og dei vert med vilje aldri lesne.
{"ok":true,"type":"files","total":2,"page":1,"pages":1,"files":[
{"share":"Ab3xK9pQ","name":"autobahn.mp3","mime":"audio/mpeg",
"bytes":8123456,"url":"https://0wx.eu/i/Ab3xK9pQ",
"file_tags":{"artist":"Kraftwerk","title":"Autobahn","album":"Autobahn"}},
{"share":"Zz7yT2mN","name":"photo.jpg","mime":"image/jpeg",
"bytes":204800,"url":"https://0wx.eu/i/Zz7yT2mN"}
]}
| error | HTTP | Skildring |
|---|---|---|
unknown_action | 400 | Inga slik handling. |
bad_json | 400 | Innhaldet var ikkje gyldig JSON, eller eit felt inneheldt ein nøsta struktur. |
unexpected_parameter | 400 | Det kom ein parameter som denne handlinga ikkje tek — vanlegvis ein ukoda & i ein verdi. Meldinga namngjev parametrane. |
bad_key | 401 | Nøkkelen vart ikkje kjend att. Ein feil nøkkel vert avvist i staden for stilt handsama som anonym. |
bad_url | 400 | URL-en er feilforma, eller brukar eit anna skjema enn http(s), ftp eller gopher. |
bad_lifetime | 400 | Levetida var ikkje eit tal eller eit tal etterfølgt av m, h eller d. |
no_content | 400 | Ingenting vart sendt til lagring. |
url_too_long | 413 | URL-en er lengre enn grensa. |
paste_too_long | 413 | Teksten er større enn innlimingsgrensa. Grensene vert målte i UTF-8-byte, så ikkje-latinsk tekst tel meir enn teikntalet tyder på. |
too_many_files | 413 | Fleire filer enn eitt kall godtek. |
no_usable_files | 415 | Alle filene vart avviste. Sjå rejected-lista for grunnen. |
backend_unavailable | 502 | Omsetjingsbakstykket svara ikkje. |
internal | 500 | Noko svikta uventa. Det er logga. |
Kall whoami for å lese dei gjeldande verdiane i staden for å hardkode dei — dei vert sette av tenaroperatøren og kan endre seg. Storleikar er UTF-8-byte.
0wx.sh pakkar inn alt det ovanfor. Det er reint POSIX-skal og treng ikkje anna enn curl, og det er kort nok til å lese før du køyrer det — som er det rette å gjere med eit skript som skal halde på API-nøkkelen din. Legg nøkkelen i OWX_KEY i staden for å sende --key, så held han seg utanfor skalhistorikken din.
wget https://0wx.eu/clients/0wx.sh chmod +x 0wx.sh export OWX_KEY=YOUR_KEY ./0wx.sh help ./0wx.sh paste --content 'hello & world'
0wx.py gjer det same som skalklienten, men tolkar svaret og skriv ut kva felta tyder i staden for å gje deg rå JSON — legg til --json når du vil ha den rå forma tilbake. Berre standardbibliotek: ingen requests, ingenting å installere. Om du skriv din eigen klient, er funksjonane send() og report() delane som er verde å lese: til saman viser dei korleis ein byggjer førespurnaden, korleis ein får meldinga ut av ein mislukka førespurnad, og kva svara inneheld.
wget https://0wx.eu/clients/0wx.py chmod +x 0wx.py export OWX_KEY=YOUR_KEY ./0wx.py listfiles ./0wx.py listfiles --json | jq '.files[].url'
0wx.pl gjer det same som Python-klienten og skriv ut det same. Berre kjernemodular — HTTP::Tiny og JSON::PP har følgt med Perl sidan 5.14, så det er ingenting å installere. Verd å lese ved sida av Python-klienten om du skriv din eigen: dei to språka feilar ulikt på ein øydelagd førespurnad, og begge skripta seier kvar.
wget https://0wx.eu/clients/0wx.pl chmod +x 0wx.pl export OWX_KEY=YOUR_KEY ./0wx.pl listfiles
0wx.ps1 er Python-klienten sitt motstykke for Windows: same kommandoar, same utskrift, og han tolkar svaret i staden for å gje deg rå JSON — legg til --json for det. Han er skriven for den Windows PowerShell som alt er på maskina, så det er ingenting å installere, og han køyrer uendra på PowerShell 7. Du treng kanskje Set-ExecutionPolicy -Scope Process Bypass i vindauget du køyrer han frå, som er Windows som spør om du verkeleg meinte å køyre eit skript du lasta ned — eit rimeleg spørsmål, og fila er kort nok til å lese først.
$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 er det same settet med faner som skrivebordsklienten, som tre filer — ei side, eit stilark og eit skript — utan installering, utan rammeverk, og ingenting lasta frå andre stader enn denne nettstaden. Tre i staden for éi fordi nettstaden sin Content-Security-Policy forbyr innebygd skript og stil, som det er verd å halde på. Filer kan sleppast på det. Det må opnast herifrå i staden for å lagrast og opnast frå disken din: API-et sender ingen cross-origin-headerar, så ein lokal kopi ville få kvar førespurnad avvist av nettlesaren din før han gjekk ut. Nøkkelen vert halden i minnet med mindre du kryssar av for å hugse han.
https://0wx.eu/clients/0wx.html
0wx-gui.ps1 er det same settet med faner som skrivebordsklienten, teikna med WinForms — som tyder ingenting å installere i det heile, sidan det alt er ein del av Windows. Legg han i same mappe som 0wx.ps1: vindauget låner den fila si handsaming av førespurnader i staden for å bere ein ekstra kopi, så begge trengst. Windows vil spørje før det køyrer eit skript det ikkje skreiv sjølv, som er eit rimeleg spørsmål; begge filene er korte nok til å lese før du svarar.
powershell -ExecutionPolicy Bypass -File .\0wx-gui.ps1
0wx-gtk.pl er eit lite GTK-vindauge med faner for opplasting, innliming, forkorting og blaing i filene dine — som ei liste eller som eit galleri av miniatyrbilete, filtrert etter galleri. Det er den einaste klienten her som treng noko installert — Perl sine GTK3-bindingar — som er verd å vite ved sida av Windows-vindauget ovanfor, sidan det treng ingenting i det heile. Alt anna det brukar, følgjer med Perl. Nøkkelen vert berre halden i minnet: å lukke vindauget gløymer han, og å setje OWX_KEY fyller han inn ved oppstart. Uansett kva det viser deg, er det rå svaret frå tenaren eitt klikk unna under “Server reply”.
apt install libgtk3-perl # or: dnf install perl-Gtk3 wget https://0wx.eu/clients/0wx-gtk.pl chmod +x 0wx-gtk.pl OWX_KEY=YOUR_KEY ./0wx-gtk.pl
0wx-android.apk gjer det dei andre klientane gjer, frå ein telefon: opplasting, innliming, forkorting, omsetjing og blaing i filene dine som ei liste eller eit galleri. Å dele ei fil til han frå ein annan app lastar henne opp, og å dele tekst lagrar han som ei innliming. Han er ikkje i nokon appbutikk, så eininga di vil spørje om du tillèt å installere han — som er eit spørsmål det er verd å ta alvorleg generelt, og grunnen til at heile kjeldekoden òg er her: opne han i Android Studio og bygg han sjølv i staden for å stole på fila. Bygging treng JDK 21; BUILDING.md inni seier kvifor.
https://0wx.eu/clients/0wx-android.apk # install it https://0wx.eu/clients/0wx-android.zip # build it yourself
Det finst med vilje inga fjernhentingshandling. Ho ville få tenaren til å hente ein URL som kallaren vel, som er ei angrepsflate for førespurnadsforfalsking, og eit skript kan drive det langt hardare enn eit skjema. Last opp fila sjølv i staden.