API Documentation

Phiên bản v1 · Cập nhật lần cuối: 2025

Tích hợp tính năng rút gọn link LinkShort vào ứng dụng, website, hoặc workflow của bạn chỉ trong vài phút. API cung cấp đầy đủ chức năng tạo, quản lý và theo dõi link rút gọn.

Yêu cầu gói dịch vụ

API chỉ khả dụng với các gói trả phí sau. Gói Cơ Bản (Free) và Pro không có quyền truy cập API.

Gói Ultra89.000đ/tháng
  • API access
  • Clicks không giới hạn
  • 5 custom domains
Gói Ultra+129.000đ/tháng
  • API access
  • Clicks không giới hạn
  • Hỗ trợ ưu tiên 24/7

Base URL

Tất cả API endpoint đều có tiền tố sau. API chỉ hoạt động tại domain chính thức.

https://rutgon.vmeta.vn/api/v1

Xác thực (Authentication)

Mọi request đến API đều phải kèm theo API key qua một trong hai cách sau:

Cách 1 — Header X-API-Key (khuyến nghị)

curl https://rutgon.vmeta.vn/api/v1/links \
  -H "X-API-Key: ls_live_YOUR_API_KEY_HERE"

Cách 2 — Header Authorization: Bearer

curl https://rutgon.vmeta.vn/api/v1/links \
  -H "Authorization: Bearer ls_live_YOUR_API_KEY_HERE"

Bảo mật key của bạn. Không chia sẻ API key trên client-side (JavaScript trình duyệt, mobile app không bảo mật). Chỉ gọi API từ server-side (backend, webhook, serverless functions).

Cách lấy API Key

  1. 1
    Đăng ký / Đăng nhập vào tài khoản tại rutgon.vmeta.vn/register
  2. 2
    Nâng cấp lên gói Ultra hoặc Ultra+ tại rutgon.vmeta.vn/pricing (gói Cơ Bản và Pro không có API access)
  3. 3
    Vào Dashboard → Cài đặt → phần API Key
  4. 4
    Nhấn Tạo API Key để sinh key mới dạng ls_live_xxxxxxxxxx...
  5. 5
    Sao chép và lưu trữ key an toàn (ví dụ: biến môi trường .env). Key chỉ hiển thị một lần khi cấp lại.

Định dạng Response

Tất cả response đều là JSON với Content-Type: application/json.

Response thành công

{
  "data": { ... },       // Đối với endpoint đơn lẻ
  "data": [ ... ],       // Đối với endpoint danh sách
  "meta": {             // Đính kèm khi phân trang
    "total": 42,
    "page": 1,
    "limit": 20,
    "totalPages": 3
  }
}

Response lỗi

{
  "error": "Mô tả lỗi",
  "code": "ERROR_CODE"    // Mã lỗi để xử lý trong code
}

Endpoints

Mã lỗi (Error Codes)

HTTP StatuscodeÝ nghĩa
200—Thành công
201—Tạo mới thành công
400—Request không hợp lệ (sai tham số, URL sai định dạng...)
401MISSING_API_KEYKhông có API key trong request
401INVALID_API_KEYAPI key sai hoặc đã bị thu hồi
403INVALID_HOSTRequest không đến từ domain cho phép (rutgon.vmeta.vn)
403PLAN_NOT_SUPPORTEDGói dịch vụ không hỗ trợ API (cần Ultra / Ultra+)
404—Link không tồn tại hoặc không thuộc tài khoản
409—Mã rút gọn đã tồn tại
500—Lỗi server nội bộ

Ví dụ tích hợp

Node.js / TypeScript

const API_KEY = process.env.LINKSHORT_API_KEY // ls_live_xxx
const BASE    = 'https://rutgon.vmeta.vn/api/v1'

async function shortenUrl(originalUrl: string, title?: string) {
  const res = await fetch(`${BASE}/links`, {
    method: 'POST',
    headers: {
      'X-API-Key': API_KEY!,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ originalUrl, title }),
  })

  if (!res.ok) {
    const err = await res.json()
    throw new Error(err.error)
  }

  const { data } = await res.json()
  return data.shortUrl  // "https://rutgon.vmeta.vn/p/abc123"
}

// Sử dụng
const shortUrl = await shortenUrl('https://example.com/very/long/path', 'Trang chủ')
console.log(shortUrl)

Python

import os
import requests

API_KEY = os.environ['LINKSHORT_API_KEY']  # ls_live_xxx
BASE    = 'https://rutgon.vmeta.vn/api/v1'

def shorten_url(original_url: str, title: str = None) -> str:
    response = requests.post(
        f'{BASE}/links',
        headers={'X-API-Key': API_KEY, 'Content-Type': 'application/json'},
        json={'originalUrl': original_url, 'title': title},
    )
    response.raise_for_status()
    return response.json()['data']['shortUrl']

# Sử dụng
short_url = shorten_url('https://example.com/very/long/path', 'Trang chủ')
print(short_url)  # https://rutgon.vmeta.vn/p/abc123

PHP

<?php
$apiKey = getenv('LINKSHORT_API_KEY'); // ls_live_xxx
$base   = 'https://rutgon.vmeta.vn/api/v1';

function shortenUrl(string $url, string $title = ''): string {
    global $apiKey, $base;
    $ch = curl_init("$base/links");
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_HTTPHEADER     => ["X-API-Key: $apiKey", 'Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => json_encode(['originalUrl' => $url, 'title' => $title]),
    ]);
    $body = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $body['data']['shortUrl'];
}

echo shortenUrl('https://example.com/very/long/path', 'Trang chủ');
// https://rutgon.vmeta.vn/p/abc123

Cần hỗ trợ tích hợp?

Liên hệ đội ngũ hỗ trợ nếu bạn gặp khó khăn trong quá trình tích hợp API.