Toolorah API
API-Zugang ist für neue Abonnements derzeit nicht verfügbar.
Schnellstart
Jedes Tool verwendet den unten angegebenen Endpunkt. Sende deinen API-Schlüssel als Bearer-Token und einen JSON-Body mit input und options. Hier ist derselbe Aufruf in drei Sprachen: POST /api/v1/<tool> { input, options }
curl -X POST https://www.toolorah.com/api/v1/base64 \
-H "Authorization: Bearer nt_live_xxx" \
-H "Content-Type: application/json" \
-d '{"input":"hello world","options":{"mode":"encode"}}' const res = await fetch("https://www.toolorah.com/api/v1/base64", {
method: "POST",
headers: {
"Authorization": "Bearer nt_live_xxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ input: "hello world", options: { mode: "encode" } }),
});
const data = await res.json();
console.log(data.result); // "aGVsbG8gd29ybGQ=" import requests
res = requests.post(
"https://www.toolorah.com/api/v1/base64",
headers={"Authorization": "Bearer nt_live_xxx"},
json={"input": "hello world", "options": {"mode": "encode"}},
)
print(res.json()["result"]) # aGVsbG8gd29ybGQ= Authentifizierung
Erstelle auf der Seite API-Schlüssel einen Schlüssel und sende ihn bei jeder Anfrage als Bearer-Token: API-Schlüssel abrufen
Authorization: Bearer nt_live_xxxxxxxxxxxxxxxx Schlüssel besitzen die Berechtigungen des Tarifs, unter dem sie erstellt wurden. Behandle sie wie Passwörter: Bewahre sie serverseitig auf und widerrufe offengelegte Schlüssel auf der Schlüsselseite.
Anfragen und Antworten
Alle Endpunkte verwenden POST und akzeptieren einen JSON-Body mit zwei Feldern:
input— der zu verarbeitende Text (oder bei PDF-Tools eine Base64-Datei).options— ein toolspezifisches Einstellungsobjekt. Optional; sinnvolle Standardwerte werden angewendet.
Ein erfolgreicher Aufruf gibt 200 mit dieser Struktur zurück:
{
"tool": "base64",
"result": "aGVsbG8gd29ybGQ=",
"meta": { }
} Fehler geben einen Nicht-2xx-Status mit einem einzelnen error-Feld zurück:
{ "error": "Invalid or revoked API key." } Ratenlimits
- Pro — 1.000 Aufrufe/Tag
- Elite — 10.000 Aufrufe/Tag
Limits werden um 00:00 UTC zurückgesetzt. Jede Antwort enthält dein aktuelles Budget:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 942 Nach Überschreiten des Limits geben Aufrufe 429 mit einem Retry-After-Header zurück. Fehlerhafte Anfragen zählen nicht zum Kontingent.
Batch-Anfragen
Verarbeite viele Eingaben in einer einzigen Anfrage, statt pro Element einen HTTP-Aufruf zu schleifen. Sende inputs als Array von Strings; options gilt für jedes Element. Verfügbar in Pro (25 Eingaben pro Anfrage) und Elite (250).
curl -X POST https://www.toolorah.com/api/v1/base64/batch -H "Authorization: Bearer nt_live_..." -H "Content-Type: application/json" -d '{"inputs":["hello","world"],"options":{"mode":"encode"}}' {
"tool": "base64",
"count": 2,
"succeeded": 2,
"failed": 0,
"results": [
{ "index": 0, "result": "aGVsbG8=" },
{ "index": 1, "result": "d29ybGQ=" }
]
} Jede Eingabe kostet einen Aufruf deines Tageskontingents — Batches sparen Roundtrips, kein Kontingent. Ein Batch, der dein Tageslimit überschreiten würde, wird komplett abgelehnt und nichts wird verarbeitet, du erhältst also nie ein halbfertiges Ergebnis.
Die Ergebnisse kommen in derselben Reihenfolge wie die Eingaben zurück, jeweils mit ihrem index. Eine fehlerhafte Eingabe verwirft die übrigen nicht: Für diesen Index wird ein error-Feld zurückgegeben, während alle anderen Ergebnisse gelingen. Prüfe succeeded und failed in der Antwort.
| Tarif | Eingaben pro Anfrage |
|---|---|
| Free | — |
| Pro | 25 |
| Elite | 250 |
Hilfs-Endpunkte
Zwei GET-Endpunkte, um herauszufinden, was du aufrufen kannst und wie viel Kontingent dir bleibt. Beide benötigen denselben Bearer-Schlüssel.
| Endpunkt | Body |
|---|---|
GET /api/v1/tools | Listet jedes aufrufbare Tool mit Endpunkt, ob es Text oder eine Datei annimmt, und dem Batch-Limit deines Tarifs. Nutze das, statt eine Liste fest zu verdrahten, die veraltet, sobald wir Tools hinzufügen. |
GET /api/v1/usage | Gibt deinen Tarif, die heutige Nutzung und verbleibende Aufrufe, dein Batch-Limit und den Zeitpunkt des Kontingent-Resets zurück. Zählt NICHT gegen dein Kontingent, du kannst also gefahrlos abfragen. |
{
"plan": "pro",
"daily": { "limit": 1000, "used": 42, "remaining": 958 },
"batch": { "maxInputsPerRequest": 25 },
"resetsAt": "2026-08-24T00:00:00.000Z"
} Endpunkte
Text- und Hilfstools. Steuere das Verhalten über die aufgeführten options.
| Tool | Endpunkt | Optionen |
|---|---|---|
base64 | POST /api/v1/base64 | { "mode": "encode" } mode: encode | decode |
url-encoder | POST /api/v1/url-encoder | { "mode": "encode" } mode: encode | decode |
json-formatter | POST /api/v1/json-formatter | { "mode": "format", "indent": 2 } mode: format | minify | validate |
jwt-decoder | POST /api/v1/jwt-decoder | Dekodiert Header und Payload (ohne Signaturprüfung). |
hash-generator | POST /api/v1/hash-generator | { "algo": "SHA-256" } algo: SHA-1 | SHA-256 | SHA-512 |
regex-tester | POST /api/v1/regex-tester | { "pattern": "\\d+", "flags": "g", "mode": "match" } mode: match | replace (+ replaceWith) |
word-counter | POST /api/v1/word-counter | Gibt Wort-, Zeichen- und Satzzahlen zurück. |
case-converter | POST /api/v1/case-converter | { "type": "title" } type: upper, lower, title, sentence, camel, pascal, snake, kebab, constant |
text-cleaner | POST /api/v1/text-cleaner | { "trim": true, "collapseSpaces": true } Bereinigt Leerraum und Sonderzeichen. |
remove-duplicate-lines | POST /api/v1/remove-duplicate-lines | { "caseSensitive": false } Entfernt doppelte Zeilen. |
text-sorter | POST /api/v1/text-sorter | { "order": "asc", "numeric": false } Sortiert Zeilen. |
text-reverser | POST /api/v1/text-reverser | { "mode": "characters" } mode: characters | words | lines |
markdown-formatter | POST /api/v1/markdown-formatter | Konvertiert Markdown in HTML. |
lorem-ipsum | POST /api/v1/lorem-ipsum | { "count": 3, "unit": "paragraphs" } unit: paragraphs | sentences | words (kein input nötig) |
password-generator | POST /api/v1/password-generator | { "length": 16, "symbols": true } Kein input nötig. |
random-number | POST /api/v1/random-number | { "min": 1, "max": 100, "count": 5 } Kein input nötig. |
percentage-calculator | POST /api/v1/percentage-calculator | { "operation": "percentOf", "a": 20, "b": 150 } operation: percentOf | isWhatPercentOf | percentChange |
bmi-calculator | POST /api/v1/bmi-calculator | { "weight": 70, "height": 175 } |
emi-calculator | POST /api/v1/emi-calculator | { "principal": 300000, "rate": 6.5, "months": 360 } |
sip-calculator | POST /api/v1/sip-calculator | { "amount": 10000, "rate": 12, "years": 10, "mode": "sip", "stepUp": 0 } |
gst-calculator | POST /api/v1/gst-calculator | { "amount": 1000, "rate": 18, "mode": "add", "supply": "intra" } |
income-tax-calculator | POST /api/v1/income-tax-calculator | { "income": 1500000, "regime": "new", "age": "below60", "deductions": 0 } |
uuid-generator | POST /api/v1/uuid-generator | { "count": 5, "upper": false, "noHyphens": false, "braces": false } Erzeugt v4-UUIDs (kein input nötig). |
timestamp-converter | POST /api/v1/timestamp-converter | Akzeptiert einen Unix-Zeitstempel in Sekunden oder Millisekunden und gibt ISO-, UTC-, lokale und Epoch-Werte zurück. |
css-minifier | POST /api/v1/css-minifier | Minifiziert CSS durch Entfernen von Kommentaren und Leerraum. |
html-formatter | POST /api/v1/html-formatter | { "mode": "beautify", "indent": 2 } mode: beautify | minify (indent: number | "tab") |
markdown-preview | POST /api/v1/markdown-preview | Konvertiert Markdown in HTML. |
PDF-Endpunkte
PDF-Tools arbeiten mit Dateien. Anfragen enthalten Base64-Dateien im JSON und result enthält das Ausgabe-PDF als Base64. Die dekodierte Nutzlast sollte unter etwa 4 MB bleiben. WebP funktioniert nur im Browser; sende PNG oder JPG.
| Tool | Endpunkt | Body |
|---|---|---|
pdf-merger | POST /api/v1/pdf-merger | { "files": ["<base64>", "<base64>", …] } 2–20 PDFs, in Array-Reihenfolge zusammengeführt. |
pdf-splitter | POST /api/v1/pdf-splitter | { "file": "<base64>", "options": { "mode": "extract", "pages": "1-3, 5" } } mode: extract | remove. Seitenbereiche funktionieren wie im Web-Tool. |
png-to-pdf | POST /api/v1/png-to-pdf | { "images": ["<base64>", …], "options": { "pageSize": "a4", "orientation": "auto", "margin": "small" } } 1–50 PNG/JPG-Bilder, eines pro Seite. pageSize: a4 | letter | fit; margin: none | small | large. |
# Merge two PDFs (bash)
curl -X POST https://www.toolorah.com/api/v1/pdf-merger \
-H "Authorization: Bearer nt_live_xxx" \
-H "Content-Type: application/json" \
-d "{\"files\":[\"$(base64 -w0 a.pdf)\",\"$(base64 -w0 b.pdf)\"]}" \
| jq -r '.result' | base64 -d > merged.pdf Fehler
401— fehlender oder ungültiger API-Schlüssel403— dein Tarif enthält keinen API-Zugriff404— unbekanntes Tool422— ungültige Eingabe (zum Beispiel fehlerhaftes JSON oder Regex)429— Tageslimit erreicht