Text in einen URL-Slug umwandeln
Diese Funktion wandelt einen beliebigen Text – etwa einen Seitentitel – in einen URL-tauglichen Slug um: Kleinschreibung, Bindestriche statt Leerzeichen und eine korrekte Transliteration von Umlauten und Sonderzeichen. Gedacht für alle, die für eine neue Seite, einen Blogbeitrag oder ein Produkt schnell eine saubere URL brauchen.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Was einen guten Slug ausmacht
Ein Slug besteht ausschließlich aus Kleinbuchstaben, Ziffern und Bindestrichen, ohne Umlaute, Leerzeichen oder Sonderzeichen – so bleibt die URL in jedem Browser und jedem System zuverlässig lesbar. Aus „Größe ändern“ wird so „groesse-aendern“, aus „Übersetzung prüfen“ wird „uebersetzung-pruefen“.
Wie Umlaute korrekt behandelt werden
Die Funktion transliteriert nach der im deutschsprachigen Web üblichen Konvention: ü wird zu ue, ö zu oe, ä zu ae, ß zu ss. Das ist wichtig, weil eine URL mit rohem Umlaut in manchen Systemen zu Problemen führt und weil diese Schreibweise dem entspricht, was deutschsprachige Nutzerinnen und Nutzer beim Betrachten der URL erwarten.
Mehrere Titel auf einmal umwandeln
Neben einem einzelnen Text lässt sich auch eine Liste von Titeln einfügen, etwa beim Import mehrerer Artikel oder Produkte aus einer Tabelle. Jede Zeile wird einzeln in einen eindeutigen Slug umgewandelt, sodass eine ganze Produktliste in einem Durchgang URL-taugliche Kennungen erhält.
Kostenlos, lokal, per API automatisierbar
Die Umwandlung läuft direkt in Ihrem Browser. Für die automatisierte Erzeugung von Slugs beim Anlegen neuer Inhalte in einem eigenen System steht derselbe Aufruf über die API zur Verfügung, für $0.002 pro Anfrage.
Anwendungsfälle
Eine URL für einen neuen Blogbeitrag
Eine Redaktion wandelt den Titel „Wie rechnen Sie US-Maßeinheiten um?“ in eine kurze, lesbare URL um, statt die Slug-Erzeugung von Hand im Content-System nachzupflegen.
Produktkatalog mit sprechenden URLs
Katrin Baumann importiert eine Liste von Produktnamen aus einer Tabelle und wandelt alle in einem Durchgang in URL-taugliche Slugs um, bevor sie die Produkte in den Webshop einpflegt.
Umlaute korrekt in einer Dateinamen-Konvention
Ein Entwickler bei der Schneider IT-Systeme GmbH & Co. KG vereinheitlicht Dateinamen mit Umlauten für ein Ablagesystem, das nur ASCII-Zeichen zulässt.
Häufige Fragen
Wie werden Umlaute im Slug dargestellt?
Nach der üblichen Konvention: ü wird zu ue, ö zu oe, ä zu ae, ß zu ss.
Kann ich mehrere Titel auf einmal umwandeln?
Ja. Sie fügen eine Liste von Texten ein, und jede Zeile wird einzeln in einen eigenen Slug umgewandelt.
Was passiert mit Satzzeichen wie Fragezeichen oder Doppelpunkt?
Sie werden entfernt, da sie in einer URL nicht vorkommen dürfen. Mehrere aufeinanderfolgende Leerzeichen werden zu einem einzelnen Bindestrich zusammengefasst.
Werden meine Texte übertragen oder gespeichert?
Nein. Die Umwandlung erfolgt direkt in Ihrem Browser.
Muss ich mich anmelden?
Nein. Es gibt derzeit keine Konten – die Nutzung im Browser ist kostenlos und ohne Limit.
Was kostet die Nutzung über die API?
$0.002 pro Anfrage, unabhängig davon, wie viele Titel in dieser einen Anfrage umgewandelt werden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/slug \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/slug", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/slug",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/slug", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/slug", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": [
"valor-1",
"valor-2"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.slug",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |