REST API
Erstellen Sie Kurzlinks, lesen Sie Klickstatistiken und erzeugen Sie QR-Codes aus Ihrem eigenen Code. JSON über HTTPS und ein einziger Header zur Authentifizierung.
- Basis-URL
- https://urlik.xyz/api/
- Authentifizierung
- X-Api-Key
- Format
- JSON · UTF-8
- Methoden
- 10
- Webhooks
- Webhooks
Schnellstart
Ihr erster Kurzlink mit einer einzigen Anfrage.
Schlüssel holen
Legen Sie ihn in Ihrem Konto unter API an. Rechte lassen sich einschränken.
Anfrage senden
Sende die lange URL per POST mit dem Header X-Api-Key, auf Wunsch mit Alias.
Ergebnis nutzen
return.url ist der Kurzlink, return.qr sein QR-Code und return.stats die Statistikseite.
Ihre erste Anfrage
curl -X POST https://urlik.xyz/api/getLink.json \ -H "X-Api-Key: $URLIK_KEY" \ -d "url=https://example.com/spring-sale" \ -d "alias=spring" \ -d "mode=redirect"
const res = await fetch("https://urlik.xyz/api/getLink.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ url: "https://example.com/spring-sale", alias: "spring" })
});
const data = await res.json();
console.log(data.return.url); // https://urlik.xyz/spring$ch = curl_init("https://urlik.xyz/api/getLink.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["url" => "https://example.com/spring-sale", "alias" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
echo $data["return"]["url"]; // https://urlik.xyz/springimport os, requests
r = requests.post(
"https://urlik.xyz/api/getLink.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"url": "https://example.com/spring-sale", "alias": "spring"},
)
print(r.json()["return"]["url"]) # https://urlik.xyz/spring{
"status": "success",
"return": {
"hex": "spring",
"url": "https://urlik.xyz/spring",
"qr": "https://urlik.xyz/qr/spring.png",
"stats": "https://urlik.xyz/spring+",
"mode": "redirect"
}
}Authentifizierung
Senden Sie Ihren Schlüssel im Header X-Api-Key. Einfaches Kürzen geht auch ohne; mit Schlüssel erstellte Links gehören zu Ihrem Konto.
Antwortformat
Jede Methode antwortet mit JSON: status ist success oder error, message erklärt Fehler, return enthält die Daten.
{ "status": "success", "message": "...", "return": { ... } }Links
POST/api/getLink.jsonKurzlink erstellenSchlüssel optional
| Parameter | Pflicht | Beschreibung |
|---|---|---|
url | Pflicht | Ziel-URL, http oder https |
alias | optional | Eigener Code, 2–32 Zeichen: Buchstaben, Ziffern, _ und - |
mode | optional | redirect (Standard), preview oder frame |
expire | optional | Lebensdauer in Sekunden, 0 = kein Ablauf |
password | optional | Passwort, das Besucher eingeben müssen |
curl -X POST https://urlik.xyz/api/getLink.json -H "X-Api-Key: $URLIK_KEY" \ -d "url=https://example.com/spring-sale"
const res = await fetch("https://urlik.xyz/api/getLink.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ url: "https://example.com/spring-sale" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/getLink.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["url" => "https://example.com/spring-sale"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/getLink.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"url": "https://example.com/spring-sale"},
)
print(r.json())POST/api/stats.jsonLink-Statistik: Klicks pro Tag, Quellen, Geräte und BrowserSchlüssel optional
| Parameter | Pflicht | Beschreibung |
|---|---|---|
code | Pflicht | Kurzcode des Links |
curl -X POST https://urlik.xyz/api/stats.json -H "X-Api-Key: $URLIK_KEY" \ -d "code=spring"
const res = await fetch("https://urlik.xyz/api/stats.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ code: "spring" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/stats.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["code" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/stats.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"code": "spring"},
)
print(r.json())POST/api/links.jsonIhre Links auflistenSchlüssel nötig
Keine Parameter: Der Schlüssel identifiziert Ihr Konto.
curl -X POST https://urlik.xyz/api/links.json -H "X-Api-Key: $URLIK_KEY"
const res = await fetch("https://urlik.xyz/api/links.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/links.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => [],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/links.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={},
)
print(r.json())POST/api/update.jsonLink ändernSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
code | Pflicht | Kurzcode des Links |
url, mode, expire, password | optional | Neue Werte der Felder, die Sie ändern |
curl -X POST https://urlik.xyz/api/update.json -H "X-Api-Key: $URLIK_KEY" \ -d "code=spring"
const res = await fetch("https://urlik.xyz/api/update.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ code: "spring" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/update.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["code" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/update.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"code": "spring"},
)
print(r.json())POST/api/delete.jsonLink löschenSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
code | Pflicht | Kurzcode des Links |
curl -X POST https://urlik.xyz/api/delete.json -H "X-Api-Key: $URLIK_KEY" \ -d "code=spring"
const res = await fetch("https://urlik.xyz/api/delete.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ code: "spring" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/delete.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["code" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/delete.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"code": "spring"},
)
print(r.json())Medien, QR und Wegwerf-Mail
Diese Methoden brauchen den Header X-Api-Key oder einen Aufruf über RapidAPI.
GET/api/download.jsonVideo oder Foto von 1000+ Seiten laden: Formate mit signierten Download-LinksSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
url | Pflicht | Adresse einer Seite mit Video oder Foto |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/download.json?url=https%3A%2F%2Fexample.com%2Fspring-sale"
const res = await fetch("https://urlik.xyz/api/download.json?" + new URLSearchParams({ url: "https://example.com/spring-sale" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/download.json?" . http_build_query(["url" => "https://example.com/spring-sale"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/download.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"url": "https://example.com/spring-sale"},
)
print(r.json())GET/api/qr.jsonQR-Code als PNG oder SVG erzeugenSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
data | Pflicht | Zu codierender Text oder Adresse |
format | optional | png oder svg |
fg, bg | optional | Vorder- und Hintergrundfarbe, hex |
ecc | optional | Fehlerkorrektur: L, M, Q oder H |
size | optional | Bildgröße in Pixeln |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/qr.json?data=https%3A%2F%2Furlik.xyz"
const res = await fetch("https://urlik.xyz/api/qr.json?" + new URLSearchParams({ data: "https://urlik.xyz" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/qr.json?" . http_build_query(["data" => "https://urlik.xyz"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/qr.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"data": "https://urlik.xyz"},
)
print(r.json())GET/api/mailbox.jsonTemporäre Adresse abrufen oder erstellenSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
address | username | optional | Temporäre Adresse oder Name für eine neue; leer erzeugt eine zufällige |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/mailbox.json?address=demo%40example.com"
const res = await fetch("https://urlik.xyz/api/mailbox.json?" + new URLSearchParams({ address: "[email protected]" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/mailbox.json?" . http_build_query(["address" => "[email protected]"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/mailbox.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"address": "[email protected]"},
)
print(r.json())GET/api/messages.jsonNachrichten eines temporären PostfachsSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
address | Pflicht | Temporäre Adresse |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/messages.json?address=demo%40example.com"
const res = await fetch("https://urlik.xyz/api/messages.json?" + new URLSearchParams({ address: "[email protected]" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/messages.json?" . http_build_query(["address" => "[email protected]"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/messages.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"address": "[email protected]"},
)
print(r.json())GET/api/message.jsonEine Nachricht lesenSchlüssel nötig
| Parameter | Pflicht | Beschreibung |
|---|---|---|
address | Pflicht | Temporäre Adresse |
id | Pflicht | Nachrichten-ID aus der Postfachliste |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/message.json?address=demo%40example.com&id=1"
const res = await fetch("https://urlik.xyz/api/message.json?" + new URLSearchParams({ address: "[email protected]", id: "1" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/message.json?" . http_build_query(["address" => "[email protected]", "id" => "1"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/message.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"address": "[email protected]", "id": "1"},
)
print(r.json())Nichts gefunden
Keine Methode passt. Versuch einen Pfad wie qr oder stats.
Live ausprobieren
Erkunden und rufen Sie jeden Endpunkt direkt hier auf. Fügen Sie Ihren API-Schlüssel über die Schaltfläche Authorize ein, um authentifizierte Anfragen zu senden.
Shortener einbetten
Fügen Sie dieses Snippet auf einer beliebigen Seite ein, um einen funktionierenden URL-Shortener mit Link zu urlik.xyz zu erhalten:
<iframe src="https://urlik.xyz/embed" style="width:100%;max-width:520px;height:150px;border:0" title="URL shortener by urlik.xyz" loading="lazy"></iframe>
Eine einfache REST-API für Kurzlinks
Mit der REST-API von Urlik erstellen, lesen, aktualisieren und löschen Sie Kurzlinks aus Ihrem eigenen Code und rufen Klick-Statistiken als JSON ab. Es ist eine schlichte HTTPS-API — POST-Anfrage senden, vorhersehbare JSON-Antwort erhalten — und funktioniert daher aus jeder Sprache und auf jeder Plattform.
Einfaches Kürzen benötigt keine Zugangsdaten. Um Links Ihrem Konto zuzuordnen und später zu verwalten, senden Sie Ihren Schlüssel im Header X-Api-Key, den Sie in Ihrem Konto finden. Die Antworten folgen stets derselben Struktur aus status, message und return, wie unten gezeigt.
Brauche ich einen API-Schlüssel?
Nicht für einfaches Kürzen — einen Link können Sie anonym erstellen. Ein Schlüssel, zu finden in Ihrem Konto, ordnet Links Ihnen zu und ist zum Auflisten, Aktualisieren oder Löschen erforderlich.
In welchem Format kommen die Antworten?
Jeder Endpunkt liefert JSON mit einem status, einer menschenlesbaren message und einem return-Objekt mit den Daten — das Parsen bleibt über alle Aufrufe hinweg konsistent.
Gibt es ein Rate-Limit?
Ja, Anfragen werden pro Aufrufer begrenzt, damit der Dienst schnell und fair bleibt. Authentifizierte Schlüssel erhalten ein höheres Kontingent als anonymer Traffic.
Kann ich sie aus jeder Sprache nutzen?
Ja. Es ist eine standardmäßige HTTPS-JSON-API — alles, was eine POST-Anfrage senden kann (curl, Python, PHP, JavaScript oder Go), kann sie nutzen.
Urlik vereint eine Reihe schneller, datenschutzfreundlicher Web-Tools an einem Ort, damit Sie alltägliche Link-Aufgaben erledigen können, ohne mit separaten Diensten zu jonglieren oder Konten anzulegen. Ob Sie eine Kampagne teilen, eine Zahlung entgegennehmen, eine Registrierung bestätigen oder eine vertrauliche Datei versenden — für jede Aufgabe steht ein eigenes, kostenloses Tool bereit.