REST API
Créez des liens courts, lisez les statistiques de clics et générez des QR codes depuis votre code. Du JSON sur HTTPS et un seul en-tête pour l’authentification.
- URL de base
- https://urlik.xyz/api/
- Authentification
- X-Api-Key
- Format
- JSON · UTF-8
- Méthodes
- 10
- Webhooks
- Webhooks
Démarrage rapide
Votre premier lien court en une seule requête.
Obtenez une clé
Créez-la dans votre compte, rubrique API. Ses droits peuvent être limités.
Envoyez la requête
Faites un POST avec l’URL longue et l’en-tête X-Api-Key, plus un alias si besoin.
Utilisez le résultat
return.url est le lien court, return.qr son QR code et return.stats la page de statistiques.
Votre première requête
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"
}
}Authentification
Envoyez votre clé dans l’en-tête X-Api-Key. Le raccourcissement simple fonctionne sans clé ; les liens créés avec une clé appartiennent à votre compte.
Format de réponse
Chaque méthode répond en JSON : status vaut success ou error, message explique l’erreur, return contient les données.
{ "status": "success", "message": "...", "return": { ... } }Liens
POST/api/getLink.jsonCréer un lien courtClé facultative
| Paramètre | Obligatoire | Description |
|---|---|---|
url | obligatoire | URL de destination, http ou https |
alias | facultatif | Code personnalisé, 2 à 32 caractères : lettres, chiffres, _ et - |
mode | facultatif | redirect (par défaut), preview ou frame |
expire | facultatif | Durée de vie en secondes, 0 = sans expiration |
password | facultatif | Mot de passe demandé pour continuer |
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.jsonStatistiques du lien : clics par jour, sources, appareils et navigateursClé facultative
| Paramètre | Obligatoire | Description |
|---|---|---|
code | obligatoire | Code court du lien |
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.jsonListe de vos liensClé requise
Aucun paramètre : la clé identifie votre compte.
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.jsonModifier un lienClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
code | obligatoire | Code court du lien |
url, mode, expire, password | facultatif | Nouvelles valeurs des champs à modifier |
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.jsonSupprimer un lienClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
code | obligatoire | Code court du lien |
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())Médias, QR et e-mail temporaire
Ces méthodes exigent l’en-tête X-Api-Key ou un appel via RapidAPI.
GET/api/download.jsonTélécharger une vidéo ou une photo depuis plus de 1000 sites : formats avec liens signésClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
url | obligatoire | Adresse d’une page avec vidéo ou photo |
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.jsonGénérer un QR code en PNG ou SVGClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
data | obligatoire | Texte ou adresse à encoder |
format | facultatif | png ou svg |
fg, bg | facultatif | Couleur du motif et du fond, hex |
ecc | facultatif | Correction d’erreurs : L, M, Q ou H |
size | facultatif | Taille de l’image en pixels |
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.jsonObtenir ou créer une adresse temporaireClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
address | username | facultatif | Adresse temporaire ou nom d’une nouvelle ; vide = adresse aléatoire |
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.jsonListe des messages d’une boîte temporaireClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
address | obligatoire | Adresse temporaire |
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.jsonLire un messageClé requise
| Paramètre | Obligatoire | Description |
|---|---|---|
address | obligatoire | Adresse temporaire |
id | obligatoire | Identifiant du message dans la liste |
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())Aucun résultat
Aucune méthode ne correspond. Essayez un chemin comme qr ou stats.
Essayer en direct
Explorez et appelez chaque endpoint ici même. Collez votre clé API via le bouton Authorize pour lancer des requêtes authentifiées.
Intégrer le raccourcisseur
Déposez cet extrait sur n’importe quelle page pour ajouter un raccourcisseur d’URL fonctionnel avec un lien vers urlik.xyz :
<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>
Une API REST simple pour les liens courts
L’API REST d’Urlik vous permet de créer, lire, mettre à jour et supprimer des liens courts depuis votre propre code et de récupérer les statistiques de clics en JSON. C’est une API HTTPS toute simple — envoyez une requête POST, recevez une réponse JSON prévisible — qui fonctionne donc depuis n’importe quel langage ou plateforme.
Le raccourcissement basique ne nécessite aucun identifiant. Pour rattacher les liens à votre compte et les gérer plus tard, envoyez votre clé dans l’en-tête X-Api-Key, disponible dans votre compte. Les réponses suivent toujours la même structure status, message et return présentée ci-dessous.
Ai-je besoin d’une clé API ?
Pas pour le raccourcissement basique — vous pouvez créer un lien anonymement. Une clé, disponible dans votre compte, rattache les liens à votre profil et est requise pour les lister, les mettre à jour ou les supprimer.
Dans quel format sont les réponses ?
Chaque endpoint renvoie du JSON avec un status, un message lisible et un objet return contenant les données, pour un parsing cohérent d’un appel à l’autre.
Y a-t-il une limite de requêtes ?
Oui, les requêtes sont limitées par appelant pour garder le service rapide et équitable. Les clés authentifiées bénéficient d’un quota plus élevé que le trafic anonyme.
Puis-je l’utiliser depuis n’importe quel langage ?
Oui. C’est une API JSON HTTPS standard : tout ce qui peut envoyer une requête POST — curl, Python, PHP, JavaScript ou Go — peut l’utiliser.
Urlik réunit un ensemble d’outils web rapides et respectueux de la vie privée en un seul endroit, pour gérer vos tâches de liens du quotidien sans jongler entre plusieurs services ni créer de comptes. Que vous partagiez une campagne, encaissiez un paiement, vérifiiez une inscription ou envoyiez un fichier confidentiel, un outil dédié et gratuit est prêt à faire le travail.