Integrate LinkMeow into your apps. Shorten URLs, manage links, and access analytics programmatically with our REST API.
https://api.linkmeow.com/api/v1X-API-Key: lm_xxx...60 req/min тАв 1,000 req/day
Go to your Dashboard тЖТ Profile тЖТ expand the API Keys section to create and manage your keys. Each key is only shown once at creation тАФ save it securely.
curl -X POST https://api.linkmeow.com/api/v1/shorten \
-H "Content-Type: application/json" \
-H "X-API-Key: lm_your_api_key_here" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "title": "My Video"}'{
"id": 4567,
"short_url": "aBcDeFg",
"full_short_url": "https://lkmw.me/aBcDeFg",
"original_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "My Video",
"created_at": "2025-04-21T10:30:00.000Z"
}All API endpoints require authentication via the X-API-Key header. API keys are tied to your LinkMeow account тАФ all shortened URLs count toward your account quota.
тЪая╕П Keep your API key secret
Never expose your API key in client-side code or public repositories. Use environment variables or a secrets manager.
Rate Limit Headers
Every response includes rate limit information:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Daily-Limit: 1000
X-RateLimit-Daily-Remaining: 995| Status | Meaning |
|---|---|
| 400 | Bad request тАФ invalid URL or missing fields |
| 401 | Unauthorized тАФ invalid or missing API key |
| 403 | Forbidden тАФ URL quota exhausted |
| 404 | Not found тАФ URL doesn't exist or not owned by you |
| 429 | Rate limit exceeded тАФ check X-RateLimit headers |
| 500 | Server error тАФ try again later |
const response = await fetch("https://api.linkmeow.com/api/v1/shorten", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.LINKMEOW_API_KEY,
},
body: JSON.stringify({
url: "https://example.com/my-long-url",
title: "My Link",
}),
});
const data = await response.json();
console.log(data.full_short_url);
// тЖТ https://lkmw.me/aBcDeFgimport requests
response = requests.post(
"https://api.linkmeow.com/api/v1/shorten",
headers={
"Content-Type": "application/json",
"X-API-Key": "lm_your_api_key_here",
},
json={
"url": "https://example.com/my-long-url",
"title": "My Link",
},
)
data = response.json()
print(data["full_short_url"])
# тЖТ https://lkmw.me/aBcDeFgconst response = await fetch("https://api.linkmeow.com/api/v1/shorten/bulk", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.LINKMEOW_API_KEY,
},
body: JSON.stringify({
urls: [
{ url: "https://example.com/page-1", title: "Page 1" },
{ url: "https://example.com/page-2", title: "Page 2" },
{ url: "https://example.com/page-3", title: "Page 3" },
],
}),
});
const { results, successful, failed } = await response.json();
console.log(`Created ${successful} short URLs, ${failed} failed`);