← بازگشت به پنل کاربری
REST API

مستندات API

سامانه کوتاه‌کننده لینک حرفه‌ای با پشتیبانی از رمز عبور و تاریخ انقضا

دریافت کلید API

برای استفاده از API به کلید نیاز دارید. به صورت رایگان ثبت‌نام کنید:

GET /api.php?action=stats

دریافت آمار کلی سامانه

نیازی به احراز هویت ندارد. تعداد کل لینک‌ها و کلیک‌ها را نمایش می‌دهد.

مثال درخواست

curl -X GET "https://webhook.rubka.ir/api.php?action=stats"

پاسخ سرور

{
    "success": true,
    "data": {
        "total_links": 1250,
        "total_clicks": 8730,
        "status": "active"
    }
}
GET /api.php?action=info&code={code}

دریافت اطلاعات یک لینک کوتاه

اطلاعات کامل لینک کوتاه شده را نمایش می‌دهد. نیازی به احراز هویت ندارد.

مثال درخواست

curl -X GET "https://webhook.rubka.ir/api.php?action=info&code=abc123"

پاسخ سرور

{
    "success": true,
    "data": {
        "code": "abc123",
        "long_url": "https://example.com",
        "clicks": 150,
        "created_at": "2024-01-15 10:30:00",
        "expires_at": null,
        "has_password": false,
        "is_active": true
    }
}
POST /api.php?action=shorten

کوتاه کردن لینک

نیاز به احراز هویت با هدر X-API-Key دارد. لینک را کوتاه می‌کند.

هدرهای مورد نیاز

X-API-Key: YOUR_API_KEY
Content-Type: application/json

مثال‌های درخواست

1. کوتاه کردن لینک ساده
curl -X POST "https://webhook.rubka.ir/api.php?action=shorten" \
    -H "X-API-Key: YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com/very/long/url"}'
2. کوتاه کردن با اسلاگ دلخواه
curl -X POST "https://webhook.rubka.ir/api.php?action=shorten" \
    -H "X-API-Key: YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com", "slug": "mylink"}'
3. کوتاه کردن با رمز عبور
curl -X POST "https://webhook.rubka.ir/api.php?action=shorten" \
    -H "X-API-Key: YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com/secret", "password": "mypass123"}'
4. کوتاه کردن با تاریخ انقضا (۷ روز بعد)
curl -X POST "https://webhook.rubka.ir/api.php?action=shorten" \
    -H "X-API-Key: YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com/temp", "expires_at": "7d"}'
5. ترکیب همه قابلیت‌ها
curl -X POST "https://webhook.rubka.ir/api.php?action=shorten" \
    -H "X-API-Key: YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com/private", "slug": "myprivate", "password": "secure123", "expires_at": "30d"}'

پاسخ موفق

{
    "success": true,
    "data": {
        "short_url": "https://webhook.rubka.ir/abc123",
        "code": "abc123",
        "expires_at": "2025-12-31 23:59:59",
        "has_password": true
    }
}

امکانات ویژه

محافظت با رمز عبور

با اضافه کردن فیلد password، لینک با رمز عبور محافظت می‌شود. کاربران قبل از هدایت باید رمز را وارد کنند.

{
    "url": "https://example.com/secret-document",
    "password": "myStrongPassword123"
}

تاریخ انقضا

با اضافه کردن فیلد expires_at می‌توانید تاریخ انقضای لینک را مشخص کنید.

فرمت‌های قابل قبول:

  • "7d" - ۷ روز بعد
  • "30d" - ۳۰ روز بعد
  • "2025-12-31 23:59:59" - تاریخ دقیق
{
    "url": "https://example.com/temporary-link",
    "expires_at": "7d"
}

نمونه کدهای برنامه‌نویسی

پایتون (Python)

import requests

API_KEY = "your_api_key_here"

def shorten_url(url, password=None, expires_at=None):
    headers = {
        "X-API-Key": API_KEY,
        "Content-Type": "application/json"
    }
    data = {"url": url}
    if password:
        data["password"] = password
    if expires_at:
        data["expires_at"] = expires_at
    
    response = requests.post(
        "https://webhook.rubka.ir/api.php?action=shorten",
        headers=headers,
        json=data
    )
    return response.json()

# مثال استفاده
result = shorten_url("https://python.org", password="secret123", expires_at="30d")
print(result["data"]["short_url"])

جاوااسکریپت (JavaScript)

const API_KEY = "your_api_key_here";

async function shortenUrl(url, options = {}) {
    const response = await fetch(
        "https://webhook.rubka.ir/api.php?action=shorten",
        {
            method: "POST",
            headers: {
                "X-API-Key": API_KEY,
                "Content-Type": "application/json"
            },
            body: JSON.stringify({ url, ...options })
        }
    );
    return response.json();
}

// مثال استفاده
const result = await shortenUrl("https://example.com", {
    password: "mypass123",
    expires_at: "7d"
});
console.log(result.data.short_url);

PHP

<?php
$apiKey = "your_api_key_here";

function shortenUrl($url, $password = null, $expiresAt = null) {
    global $apiKey;
    $data = ["url" => $url];
    if ($password) $data["password"] = $password;
    if ($expiresAt) $data["expires_at"] = $expiresAt;
    
    $ch = curl_init("https://webhook.rubka.ir/api.php?action=shorten");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "X-API-Key: $apiKey",
        "Content-Type: application/json"
    ]);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    return json_decode(curl_exec($ch), true);
}

$result = shortenUrl("https://example.com", "mypass123", "7d");
echo $result["data"]["short_url"];
?>

خطاهای احتمالی

پیام خطاتوضیح
API Key نامعتبر استکلید API ارسال شده معتبر نیست
لینک اصلی وارد نشدهفیلد url در درخواست خالی است
لینک اصلی معتبر نیستقالب لینک وارد شده صحیح نیست
این اسلاگ قبلاً استفاده شده استاسلاگ وارد شده تکراری است
لینک یافت نشدکد لینک در سامانه وجود ندارد
رمز عبور باید حداقل ۴ کاراکتر باشدرمز عبور وارد شده کوتاه است
تاریخ انقضا باید در آینده باشدتاریخ انقضا نامعتبر یا گذشته است
اسلاگ باید بین ۲ تا ۳۰ کاراکتر باشدطول اسلاگ وارد شده مجاز نیست