Werkzeugkisterl API
v1OpenAPI 3.1Einzelne Werkzeuge als Schnittstelle für Shells, Skripte und Programme. Kostenlos, ohne Anmeldung.
https://werkzeugkisterl.at/api/v1openapi.jsonSendet Daten
- Gesendet
- Die Parameter deiner Anfrage. Sende deshalb nichts Vertrauliches.
- Zweck
- Der Server berechnet daraus das Ergebnis und schickt es zurück.
- Gespeichert
- Nichts. Im Zugriffsprotokoll stehen nur der aufgerufene Endpunkt und die gekürzte IP-Adresse, nicht die Parameter.
- Methode
- Nur GET
- Format
- JSON, UTF-8; Bilder als SVG/PNG
- Anmeldung
- Keine
- Limit
- 30 Anfragen/Minute je IP
Zeit
GET/api/v1/timestampZeitstempel umrechnen
Wandelt einen Unix-Zeitstempel in ein Datum um oder ein Datum in einen Zeitstempel. Ohne Parameter kommt die aktuelle Zeit zurück.
Dasselbe im Browser, ohne Übertragung an den Server: Zeitstempel-Konverter
Parameter
string · query · optional
Zeitstempel, der umgerechnet werden soll. Nicht zusammen mit „date“.
string · query · optional
Einheit von „value“. Vorgabe ist auto: Die Einheit wird an der Stellenzahl erkannt.
Erlaubt: auto, s, ms, us, ns
string · query · optional
Datum mit Uhrzeit und Zeitzone nach ISO 8601. Nicht zusammen mit „value“.
string · query · optional
Zeitzone (IANA-Name), in der das Ergebnis zusätzlich ausgegeben wird.
Ausprobieren
curl "https://werkzeugkisterl.at/api/v1/timestamp"
Antworten
200Erfolgreich
| Feld | Typ | Bedeutung |
|---|---|---|
| seconds | integer | Sekunden seit dem 1. Jänner 1970 (UTC). |
| milliseconds | integer | Dasselbe in Millisekunden. |
| utc | string | Zeitpunkt nach ISO 8601 in UTC. |
| unit | string | Nur mit „value“: die Einheit, in der die Zahl gelesen wurde. |
| local | string | Nur mit „tz“: Zeitpunkt nach ISO 8601 in dieser Zeitzone, mit Abstand zu UTC. |
| zone | string | Nur mit „tz“: die verwendete Zeitzone. |
Zeitstempel in ein Datum, zusätzlich in Wiener Ortszeit: GET /api/v1/timestamp?value=1700000000&tz=Europe/Vienna
{
"seconds": 1700000000,
"milliseconds": 1700000000000,
"utc": "2023-11-14T22:13:20.000Z",
"unit": "s",
"local": "2023-11-14T23:13:20+01:00",
"zone": "Europe/Vienna"
}Datum in einen Zeitstempel: GET /api/v1/timestamp?date=2026-10-10T15:30:00%2B02:00
{
"seconds": 1791639000,
"milliseconds": 1791639000000,
"utc": "2026-10-10T13:30:00.000Z"
}Fehler dieses Endpunkts
- 400
invalid_value„value“ ist keine Zahl. - 400
invalid_unit„unit“ ist unbekannt oder ohne „value“ angegeben. - 400
invalid_date„date“ ist kein gültiges Datum mit Zeitzone. - 400
invalid_tz„tz“ ist keine bekannte Zeitzone. - 400
conflicting_parameters„value“ und „date“ wurden gemeinsam angegeben. - 400
out_of_rangeDer Zeitpunkt liegt außerhalb der Jahre 1 bis 9999.
Dazu kommen die allgemeinen Fehler, die für alle Endpunkte gelten.
Netzwerk
GET/api/v1/ipEigene IP-Adresse
Gibt die öffentliche IP-Adresse zurück, von der die Anfrage kam. Andere Adressen lassen sich damit nicht abfragen.
Dasselbe als Seite im Browser: Meine IP-Adresse
Parameter
string · query · optional
Form der Antwort. Vorgabe ist json; mit text kommt nur die Adresse zurück, praktisch für Skripte.
Erlaubt: json, text
Ausprobieren
curl "https://werkzeugkisterl.at/api/v1/ip"
Antworten
200Erfolgreich
| Feld | Typ | Bedeutung |
|---|---|---|
| ip | string | IP-Adresse, unter der unser Server die Anfrage sieht. |
| version | integer | 4 für IPv4, 6 für IPv6. |
Eigene Adresse als JSON: GET /api/v1/ip
{
"ip": "203.0.113.42",
"version": 4
}Als reiner Text: GET /api/v1/ip?format=text
203.0.113.42
Fehler dieses Endpunkts
- 400
invalid_format„format“ ist weder json noch text. - 500
address_unavailableDie Adresse konnte nicht ermittelt werden.
Dazu kommen die allgemeinen Fehler, die für alle Endpunkte gelten.
Codes
GET/api/v1/qrQR-Code erzeugen
Erzeugt aus einem Text oder Link einen QR-Code als Bild. Der Inhalt steht direkt im Code: ohne Umleitung, ohne Ablaufdatum. Sende nichts Vertrauliches wie WLAN-Passwörter; dafür gibt es das Werkzeug im Browser.
Dasselbe im Browser, ohne Übertragung an den Server: QR-Code-Generator
Parameter
string · query · Pflicht
Inhalt des QR-Codes, URL-kodiert. Höchstens 858 Bytes in UTF-8 mit ecc=L, 666 mit M, 482 mit Q und 382 mit H.
string · query · optional
Bildformat. Vorgabe ist svg.
Erlaubt: svg, png
integer · query · optional
Kantenlänge in Pixeln, 100 bis 1000. Vorgabe ist 300.
string · query · optional
Fehlerkorrektur von L (niedrig) bis H (hoch). Vorgabe ist M. Mehr Fehlerkorrektur macht den Code robuster, aber dichter.
Erlaubt: L, M, Q, H
integer · query · optional
Heller Rand in Modulen, 0 bis 10. Vorgabe ist 4, wie für sicheres Scannen empfohlen.
Ausprobieren
curl "https://werkzeugkisterl.at/api/v1/qr" --output qr.svg
Antworten
200Erfolgreich
Die Antwort ist das Bild selbst, schwarz auf weiß. Ein PNG ist genau „size“ Pixel groß; jedes Modul belegt ganze Pixel, damit die Kanten scharf bleiben. Reicht „size“ für den Inhalt nicht aus, wird das PNG so groß wie nötig. Fehler kommen wie überall als JSON.
Content-Type: image/svg+xml, image/png
Link als SVG: GET /api/v1/qr?text=https%3A%2F%2Fwerkzeugkisterl.at
Text als PNG mit 600 Pixeln: GET /api/v1/qr?text=Gr%C3%BC%C3%9F%20Gott&format=png&size=600
Fehler dieses Endpunkts
- 400
missing_text„text“ fehlt oder ist leer. - 400
text_too_long„text“ passt bei dieser Fehlerkorrektur nicht in einen QR-Code. - 400
invalid_format„format“ ist weder svg noch png. - 400
invalid_size„size“ ist keine ganze Zahl von 100 bis 1000. - 400
invalid_ecc„ecc“ ist nicht L, M, Q oder H. - 400
invalid_margin„margin“ ist keine ganze Zahl von 0 bis 10.
Dazu kommen die allgemeinen Fehler, die für alle Endpunkte gelten.
Fehler
Jede Fehlerantwort hat dieselbe Form. code bleibt innerhalb einer Version gleich und eignet sich für Programme, message ist für Menschen gedacht und kann sich ändern.
{
"error": {
"code": "invalid_value",
"message": "„value“ muss ein Zeitstempel aus Ziffern sein, zum Beispiel 1700000000."
}
}| Status | Code | Bedeutung |
|---|---|---|
| 400 | unknown_parameter | Ein Parameter ist unbekannt, meist ein Tippfehler. |
| 400 | invalid_parameter | Ein Parameter kommt doppelt vor oder ist zu lang. |
| 403 | forbidden_origin | Die Anfrage kam aus dem Browser von einer anderen Website. |
| 404 | not_found | Diesen Endpunkt gibt es nicht. |
| 405 | method_not_allowed | Es sind nur GET-Anfragen möglich. |
| 429 | rate_limited | Zu viele Anfragen in kurzer Zeit. |
Gut zu wissen
- Limit: 30 Anfragen pro Minute und IP-Adresse, gleichmäßig verteilt: dauerhaft etwa eine Anfrage alle zwei Sekunden, dazu ein Puffer für rund zehn Anfragen in schneller Folge. Darüber antwortet die API mit 429 und nennt im Kopf
Retry-Afterdie Wartezeit in Sekunden; danach geht es sofort weiter. - Browser: Von anderen Websites aus lässt sich die API im Browser nicht aufrufen. Sie ist für Shells, Skripte und Server gedacht.
- Versionen: Innerhalb von
v1können Felder und Endpunkte dazukommen, bestehende werden nicht umbenannt oder entfernt. Ignoriere unbekannte Felder; größere Änderungen erscheinen unter einer neuen Version. - Werkzeuge: Die Datei openapi.json lässt sich in Programme wie Postman oder Insomnia importieren. Eine kurze Übersicht liefert
GET /api/v1. - Sonderzeichen: Werte mit Leerzeichen, Umlauten oder Zeichen wie
&und+müssen URL-kodiert sein. curl erledigt das mitcurl -G --data-urlencode "text=Grüß Gott" … - PowerShell: Schreibe dort
curl.exestattcurl, sonst startet ein anderes Programm mit Sicherheitsabfrage. - Verfügbarkeit: Kostenlos und ohne Zusage. Baue die API nicht dort ein, wo ein Ausfall Schaden anrichtet.
Mehr dazu in den Nutzungshinweisen und in der Datenschutzerklärung.