快速开始
一次请求生成你的第一个短链接。
获取密钥
在账户的 API 页面创建,可限制密钥权限。
发送请求
带上 X-Api-Key 请求头,POST 长网址,可选指定别名。
使用返回结果
return.url 为短链接,return.qr 为二维码,return.stats 为统计页面。
你的第一个请求
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"
}
}认证
在 X-Api-Key 请求头中发送密钥。基础缩短无需密钥;使用密钥创建的链接归属于你的账户。
响应格式
每个接口都返回 JSON:status 为 success 或 error,message 说明错误,return 包含数据。
{ "status": "success", "message": "...", "return": { ... } }链接
POST/api/getLink.json创建短链接密钥可选
| 参数 | 是否必填 | 说明 |
|---|---|---|
url | 必填 | 目标网址,http 或 https |
alias | 可选 | 自定义代码,2–32 个字符:字母、数字、_ 和 - |
mode | 可选 | redirect(默认)、preview 或 frame |
expire | 可选 | 有效期(秒),0 表示永不过期 |
password | 可选 | 访问者继续访问前需输入的密码 |
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.json链接统计:按日点击、来源、设备和浏览器密钥可选
| 参数 | 是否必填 | 说明 |
|---|---|---|
code | 必填 | 链接的短代码 |
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.json列出你的链接需要密钥
无需参数:密钥即可识别你的账户。
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.json修改链接需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
code | 必填 | 链接的短代码 |
url, mode, expire, password | 可选 | 要修改的字段的新值 |
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.json删除链接需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
code | 必填 | 链接的短代码 |
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())媒体、二维码与临时邮箱
这些接口需要 X-Api-Key 请求头,或通过 RapidAPI 调用。
GET/api/download.json从 1000 多个网站下载视频或图片:返回带签名下载链接的格式需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
url | 必填 | 包含视频或图片的页面地址 |
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.json生成 PNG 或 SVG 格式的二维码需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
data | 必填 | 要编码的文本或网址 |
format | 可选 | png 或 svg |
fg, bg | 可选 | 前景色和背景色,十六进制 |
ecc | 可选 | 纠错等级:L、M、Q 或 H |
size | 可选 | 图片尺寸(像素) |
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.json获取或创建临时邮箱地址需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
address | username | 可选 | 临时地址或新地址的名称;留空则随机生成 |
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.json列出临时邮箱中的邮件需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
address | 必填 | 临时邮箱地址 |
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.json读取单封邮件需要密钥
| 参数 | 是否必填 | 说明 |
|---|---|---|
address | 必填 | 临时邮箱地址 |
id | 必填 | 邮件列表中的邮件 ID |
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())未找到结果
没有匹配的方法。试试 qr 或 stats 这样的路径。
在线试用
直接在此浏览并调用每个接口。通过 Authorize 按钮粘贴你的 API 密钥即可发起已认证请求。
嵌入短链接工具
将此代码片段放到任何页面,即可添加一个可用的短链接工具,并附带指向 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>
简单易用的短链接 REST API
Urlik REST API 让你在自己的代码中创建、读取、更新和删除短链接,并以 JSON 形式拉取点击统计。它是一个简洁的 HTTPS API——发送 POST 请求,得到可预期的 JSON 响应——因此适用于任何语言和平台。
基础缩短无需任何凭据。若要把链接绑定到你的账户并在之后管理,请在 X-Api-Key 标头中传入你的密钥(可在账户页找到)。响应始终遵循下方所示的 status、message 和 return 结构。
需要 API 密钥吗?
基础缩短不需要——你可以匿名创建链接。密钥(在你的账户页中)会把链接绑定到你名下,列出、更新或删除链接时必须使用。
响应是什么格式?
每个端点都返回 JSON,包含 status、人类可读的 message 和承载数据的 return 对象,因此各接口的解析方式完全一致。
有速率限制吗?
有,请求会按调用方限速,以保证服务快速且公平。经过认证的密钥比匿名流量拥有更高的配额。
可以在任何语言中使用吗?
可以。它是标准的 HTTPS JSON API,任何能发送 POST 请求的工具——curl、Python、PHP、JavaScript 或 Go——都能使用。
Urlik 把一系列快速、注重隐私的网页工具汇聚一处,让你无需在多个服务之间切换或注册账户,就能处理日常的链接任务。无论是分享推广活动、收取款项、验证注册邮箱,还是发送机密文件,都有专门的免费工具随时待命。