API Documentation

Integrate LinkMeow into your apps. Shorten URLs, manage links, and access analytics programmatically with our REST API.

Base URL

https://api.linkmeow.com/api/v1

Authentication

X-API-Key: lm_xxx...

Rate Limits

60 req/min тАв 1,000 req/day

Getting Started

1. Generate an API Key

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.

2. Make Your First Request

bash
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"}'

3. Get Your Short URL

json
{
  "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"
}

Authentication

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:

http
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Daily-Limit: 1000
X-RateLimit-Daily-Remaining: 995

URL Shortening

Manage URLs

Analytics

Error Responses

StatusMeaning
400Bad request тАФ invalid URL or missing fields
401Unauthorized тАФ invalid or missing API key
403Forbidden тАФ URL quota exhausted
404Not found тАФ URL doesn't exist or not owned by you
429Rate limit exceeded тАФ check X-RateLimit headers
500Server error тАФ try again later

Code Examples

Node.js / JavaScript

javascript
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/aBcDeFg

Python

python
import 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/aBcDeFg

Bulk Shortening

javascript
const 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`);
API Documentation - LinkMeow | LinkMeow