API توسعه دهندگان v3

شروع کنید

همیشه یک کلید API برای پردازش درخواست‌ها توسط سیستم مورد نیاز است. پس از ثبت نام کاربر، یک کلید API به طور خودکار برای او ایجاد می شود. که باید با هر درخواست ارسال شود (نمونه روبرو را ببینید). اگر کلید API ارسال نشود یا منقضی شده باشد، خطایی رخ می دهد. لطفاً برای جلوگیری از سوء استفاده، کلید API خود را مخفی نگه دارید.

احراز هویت

برای احراز هویت با سیستم API، باید با هر درخواست، کلید API خود را به عنوان نشانه مجوز ارسال کنید. نمونه کد را می توانید در زیر مشاهده کنید.

curl --location --request POST 'http://4ul.ir/api/url/add' \ 
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \ 
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/url/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer YOURAPIKEY",
    "Content-Type: application/json",
    ),
));

$response = curl_exec($curl);
محدودیت تعداد درخواست

API ما دارای یک محدود کننده تعداد درخواست برای محافظت از سرور در برابر افزایش تعداد درخواست ها (برای به حداکثر رساندن ثبات API) است. سیستم محدود کننده ما در حال حاضر به میزان 30 درخواست در هر 1 دقیقه محدود شده است.

چندین سربرگ در کنار پاسخ ارسال می شود و می توان آنها را برای تعیین اطلاعات مختلف در مورد درخواست بررسی کرد.

X-RateLimit-Limit: 30
X-RateLimit-Remaining: 29
X-RateLimit-Reset: TIMESTAMP
مدیریت پاسخ

تمام پاسخ های API به طور پیش فرض در قالب JSON برگردانده می شوند که برای تبدیل آن به داده های قابل استفاده، باید از تابع مناسب مطابق با زبان استفاده شود. در PHP، تابع json_decode می تواند برای تبدیل داده ها به یک شی (پیش فرض) یا یک آرایه استفاده شود. بسیار مهم است که کلید خطا و کد هدر را بررسی کنید زیرا اطلاعاتی در مورد وجود یا عدم وجود خطا ارائه می دهد.

{
    "error": 1,
    "message": "An error ocurred"
}

حساب کاربری

دریافت اطلاعات حساب
GET http://4ul.ir/api/account

برای دریافت اطلاعات در مورد حساب کاربری، می توانید درخواستی را به این لینک ارسال کنید تا داده های موجود در حساب کاربری ارسال شود.

curl --location --request GET 'http://4ul.ir/api/account' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/account",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "data": {
        "id": 1,
        "email": "sample@domain.com",
        "username": "sampleuser",
        "avatar": "https:\/\/domain.com\/content\/avatar.png",
        "status": "pro",
        "expires": "2022-11-15 15:00:00",
        "registered": "2020-11-10 18:01:43"
    }
}
بروزرسانی حساب کاربری
PUT http://4ul.ir/api/account/update

برای بروزرسانی اطلاعات حساب کاربری، می توانید درخواستی را به این لینک ارسال کنید تا داده های موجود در حساب کاربری بروزرسانی شود.

curl --location --request PUT 'http://4ul.ir/api/account/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "newemail@google.com",
    "password": "newpassword"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/account/update",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "email": "newemail@google.com",
    "password": "newpassword"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Account has been successfully updated."
}

دامنه ها

لیست همه دامنه ها
GET http://4ul.ir/api/domains?limit=2&page=1

برای دریافت کدهای دامنه خود از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/domains?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/domains?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "domains": [
            {
                "id": 1,
                "domain": "https:\/\/domain1.com",
                "redirectroot": "https:\/\/rootdomain.com",
                "redirect404": "https:\/\/rootdomain.com\/404"
            },
            {
                "id": 2,
                "domain": "https:\/\/domain2.com",
                "redirectroot": "https:\/\/rootdomain2.com",
                "redirect404": "https:\/\/rootdomain2.com\/404"
            }
        ]
    }
}
ایجاد دامنه
POST http://4ul.ir/api/domain/add

با استفاده از این درخواست می توان یک دامنه به حساب خود اضافه کنید. لطفاً مطمئن شوید که دامنه به درستی به سرور ما متصل شده است.

پارامترتوضیحات
domain ضروری | دامنه شامل http یا https
redirectroot اختیاری | آدرس تغییر مسیر هنگامی که کسی مستقیم دامنه شما را باز میکند
redirect404 اختیاری | صفحه 404 دلخواه
curl --location --request POST 'http://4ul.ir/api/domain/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "domain": "https:\/\/domain1.com",
    "redirectroot": "https:\/\/rootdomain.com",
    "redirect404": "https:\/\/rootdomain.com\/404"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/domain/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "domain": "https:\/\/domain1.com",
    "redirectroot": "https:\/\/rootdomain.com",
    "redirect404": "https:\/\/rootdomain.com\/404"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "id": 1
}
بروزرسانی دامنه
PUT http://4ul.ir/api/domain/:id/update

برای بروزرسانی یک دامنه، باید یک داده معتبر در JSON از طریق یک درخواست PUT ارسال کنید. داده ها باید به عنوان متن خام درخواست شما مطابق شکل زیر ارسال شوند. مثال زیر تمام پارامترهایی را که می توانید ارسال کنید نشان می دهد اما لازم نیست همه را ارسال کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
redirectroot اختیاری | آدرس تغییر مسیر هنگامی که کسی مستقیم دامنه شما را باز میکند
redirect404 اختیاری | صفحه 404 دلخواه
curl --location --request PUT 'http://4ul.ir/api/domain/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "redirectroot": "https:\/\/rootdomain-new.com",
    "redirect404": "https:\/\/rootdomain-new.com\/404"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/domain/:id/update",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "redirectroot": "https:\/\/rootdomain-new.com",
    "redirect404": "https:\/\/rootdomain-new.com\/404"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Domain has been updated successfully."
}
حذف دامنه
DELETE http://4ul.ir/api/domain/:id/delete

برای حذف یک دامنه، باید یک درخواست DELETE ارسال کنید.

curl --location --request DELETE 'http://4ul.ir/api/domain/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/domain/:id/delete",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Domain has been deleted successfully."
}

اسپلش سفارشی

لیست همه اسپلش های سفارشی
GET http://4ul.ir/api/splash?limit=2&page=1

برای دریافت صفحات اسپلش سفارشی از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/splash?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/splash?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "splash": [
            {
                "id": 1,
                "name": "Product 1 Promo",
                "date": "2020-11-10 18:00:00"
            },
            {
                "id": 2,
                "name": "Product 2 Promo",
                "date": "2020-11-10 18:10:00"
            }
        ]
    }
}

کمپین ها

لیست کمپین ها
GET http://4ul.ir/api/campaigns?limit=2&page=1

برای دریافت کمپین های خود از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/campaigns?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/campaigns?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "campaigns": [
            {
                "id": 1,
                "name": "Sample Campaign",
                "public": false,
                "rotator": false,
                "list": "https:\/\/domain.com\/u\/admin\/list-1"
            },
            {
                "id": 2,
                "domain": "Facebook Campaign",
                "public": true,
                "rotator": "https:\/\/domain.com\/r\/test",
                "list": "https:\/\/domain.com\/u\/admin\/test-2"
            }
        ]
    }
}
ایجاد کمپین
POST http://4ul.ir/api/campaign/add

با استفاده از این درخواست میتوانید کمپین ایجاد کنید.

پارامترتوضیحات
name اختیاری | نام کمپین
slug اختیاری | نامک کمپین
public اختیاری | نوع دسترسی
curl --location --request POST 'http://4ul.ir/api/campaign/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "New Campaign",
    "slug": "new-campaign",
    "public": true
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/campaign/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "name": "New Campaign",
    "slug": "new-campaign",
    "public": true
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "id": 3,
    "domain": "New Campaign",
    "public": true,
    "rotator": "https:\/\/domain.com\/r\/new-campaign",
    "list": "https:\/\/domain.com\/u\/admin\/new-campaign-3"
}
افزودن لینک به کمپین
POST http://4ul.ir/api/campaign/:campaignid/assign/:linkid

با استفاده از این درخواست می توان یک پیوند کوتاه به یک کمپین اختصاص داد. این درخواست به شناسه کمپین و شناسه پیوند کوتاه نیاز دارد.

curl --location --request POST 'http://4ul.ir/api/campaign/:campaignid/assign/:linkid' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/campaign/:campaignid/assign/:linkid",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Link successfully added to the campaign."
}
بروزرسانی کمپین
PUT http://4ul.ir/api/campaign/:id/update

برای به‌روزرسانی یک کمپین، باید یک داده معتبر به JSON از طریق یک درخواست PUT ارسال کنید. داده ها باید به عنوان متن خام درخواست شما مطابق شکل زیر ارسال شوند. مثال زیر تمام پارامترهایی را که می توانید ارسال کنید نشان می دهد اما لازم نیست همه را ارسال کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
name ضروری | نام کمپین
slug اختیاری | نامک کمپین
public اختیاری | نوع دسترسی
curl --location --request PUT 'http://4ul.ir/api/campaign/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "Twitter Campaign",
    "slug": "twitter-campaign",
    "public": true
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/campaign/:id/update",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "name": "Twitter Campaign",
    "slug": "twitter-campaign",
    "public": true
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "id": 3,
    "domain": "Twitter Campaign",
    "public": true,
    "rotator": "https:\/\/domain.com\/r\/twitter-campaign",
    "list": "https:\/\/domain.com\/u\/admin\/twitter-campaign-3"
}
حذف کمپین
DELETE http://4ul.ir/api/campaign/:id/delete

برای حذف یک کمپین، باید یک درخواست DELETE ارسال کنید.

curl --location --request DELETE 'http://4ul.ir/api/campaign/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/campaign/:id/delete",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Campaign has been deleted successfully."
}

پوشش های CTA

لیست همه پوشش های CTA
GET http://4ul.ir/api/overlay?limit=2&page=1

برای دریافت پوشش های CTAاز طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/overlay?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/overlay?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "cta": [
            {
                "id": 1,
                "type": "message",
                "name": "Product 1 Promo",
                "date": "2020-11-10 18:00:00"
            },
            {
                "id": 2,
                "type": "contact",
                "name": "Contact Page",
                "date": "2020-11-10 18:10:00"
            }
        ]
    }
}

کانال

لیست کانال ها
GET http://4ul.ir/api/channels?limit=2&page=1

برای دریافت کانال های خود از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/channels?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/channels?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "channels": [
            {
                "id": 1,
                "name": "Channel 1",
                "description": "Description of channel 1",
                "color": "#000000",
                "starred": true
            },
            {
                "id": 2,
                "name": "Channel 2",
                "description": "Description of channel 2",
                "color": "#FF0000",
                "starred": false
            }
        ]
    }
}
لیست موارد موجود در کانال
GET http://4ul.ir/api/channel/:id?limit=1&page=1

برای دریافت موارد موجود در یک کانال انتخابی از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/channel/:id?limit=1&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/channel/:id?limit=1&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "items": [
            {
                "type": "links",
                "id": 1,
                "title": "My Sample Link",
                "preview": "https:\/\/google.com",
                "link": "http:\/\/4ul.ir\/google",
                "date": "2022-05-12"
            },
            {
                "type": "bio",
                "id": 1,
                "title": "My Sample Bio",
                "preview": "http:\/\/4ul.ir\/mybio",
                "link": "http:\/\/4ul.ir\/mybio",
                "date": "2022-06-01"
            }
        ]
    }
}
ایجاد کانال
POST http://4ul.ir/api/channel/add

با استفاده از این درخواست میتوانید کانالی ایجاد کنید.

پارامترتوضیحات
name ضروری | نام کانال
description اختیاری | توضیحات کانال
color اختیاری | رنگ نشان کانال با کد هکس
starred اختیاری | کانال ویژه است؟ (مقادیر true یا false)
curl --location --request POST 'http://4ul.ir/api/channel/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "New Channel",
    "description": "my new channel",
    "color": "#00000",
    "starred": true
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/channel/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "name": "New Channel",
    "description": "my new channel",
    "color": "#00000",
    "starred": true
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "id": 3,
    "name": "New Channel",
    "description": "my new channel",
    "color": "#000000",
    "starred": true
}
اختصاص به کانال
POST http://4ul.ir/api/channel/:channelid/assign/:type/:itemid

با ارسال درخواست با شناسه کانال، نوع مورد (لینک ها، بیو یا qr) و شناسه مورد، می توان یک آیتم را به هر کانالی اختصاص داد.

پارامترتوضیحات
:channelid ضروری | شناسه کانال
:type ضروری | links یا bio یا qr
:itemid ضروری | شناسه مورد
curl --location --request POST 'http://4ul.ir/api/channel/:channelid/assign/:type/:itemid' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/channel/:channelid/assign/:type/:itemid",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Item successfully added to the channel."
}
بروزرسانی کانال
PUT http://4ul.ir/api/channel/:id/update

برای به روز رسانی یک کانال، باید یک داده معتبر به JSON از طریق یک درخواست PUT ارسال کنید. داده ها باید به عنوان متن خام درخواست شما مطابق شکل زیر ارسال شوند. مثال زیر تمام پارامترهایی را که می توانید ارسال کنید نشان می دهد اما لازم نیست همه را ارسال کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
name اختیاری | نام کانال
description اختیاری | توضیحات کانال
color اختیاری | رنگ نشان کانال با کد هکس
starred اختیاری | کانال ویژه است؟ (مقادیر true یا false)
curl --location --request PUT 'http://4ul.ir/api/channel/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "Acme Corp",
    "description": "channel for items for Acme Corp",
    "color": "#FFFFFF",
    "starred": false
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/channel/:id/update",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "name": "Acme Corp",
    "description": "channel for items for Acme Corp",
    "color": "#FFFFFF",
    "starred": false
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Channel has been updated successfully."
}
حذف کانال
DELETE http://4ul.ir/api/channel/:id/delete

برای حذف یک کانال، باید یک درخواست DELETE ارسال کنید. همه موارد نیز از بین خواهند رفت.

curl --location --request DELETE 'http://4ul.ir/api/channel/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/channel/:id/delete",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Channel has been deleted successfully."
}

لینک


پیکسل ها

لیست همه پیکسل ها
GET http://4ul.ir/api/pixels?limit=2&page=1

برای دریافت کدهای پیکسل خود از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/pixels?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/pixels?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "pixels": [
            {
                "id": 1,
                "type": "gtmpixel",
                "name": "GTM Pixel",
                "tag": "GA-123456789",
                "date": "2020-11-10 18:00:00"
            },
            {
                "id": 2,
                "type": "twitterpixel",
                "name": "Twitter Pixel",
                "tag": "1234567",
                "date": "2020-11-10 18:10:00"
            }
        ]
    }
}
ایجاد پیکسل
POST http://4ul.ir/api/pixel/add

با استفاده از این درخواست می توان یک پیکسل ایجاد کرد. باید نوع پیکسل و تگ را ارسال کنید.

پارامترتوضیحات
type ضروری | gtmpixel ، gapixel ، fbpixel ، adwordspixel ، linkedinpixel ، twitterpixel ، adrollpixel ، quorapixel ، pinterest ، bing ، snapchat ، reddit
name ضروری | نام دلخواه پیکسل
tag ضروری | تگ دلخواه پیکسل
curl --location --request POST 'http://4ul.ir/api/pixel/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "gtmpixel",
    "name": "My GTM",
    "tag": "GTM-ABCDE"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/pixel/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "type": "gtmpixel",
    "name": "My GTM",
    "tag": "GTM-ABCDE"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "id": 1
}
بروزرسانی پیکسل
PUT http://4ul.ir/api/pixel/:id/update

برای بروزرسانی یک پیکسل، باید یک داده معتبر به JSON از طریق یک درخواست PUT ارسال کنید. داده ها باید به عنوان متن خام درخواست شما مطابق شکل زیر ارسال شوند. مثال زیر تمام پارامترهایی را که می توانید ارسال کنید نشان می دهد. لازم نیست همه را ارسال کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
name اختیاری | نام دلخواه برای پیکسل
tag ضروری | تگ دلخواه پیکسل
curl --location --request PUT 'http://4ul.ir/api/pixel/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "My GTM",
    "tag": "GTM-ABCDE"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/pixel/:id/update",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "name": "My GTM",
    "tag": "GTM-ABCDE"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Pixel has been updated successfully."
}
حذف پیکسل
DELETE http://4ul.ir/api/pixel/:id/delete

برای حذف پیکسل، باید یک درخواست DELETE ارسال کنید.

curl --location --request DELETE 'http://4ul.ir/api/pixel/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/pixel/:id/delete",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "Pixel has been deleted successfully."
}

کد QR

لیست همه کد های QR
GET http://4ul.ir/api/qr?limit=2&page=1

برای دریافت کدهای QR خود از طریق API، می توانید از این درخواست استفاده کنید. همچنین می توانید داده ها را فیلتر کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
limit اختیاری | تعداد نتیجه در هر برگه
page اختیاری | شماره برگه مورد نظر
curl --location --request GET 'http://4ul.ir/api/qr?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/qr?limit=2&page=1",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "qrs": [
            {
                "id": 2,
                "link": "http:\/\/4ul.ir\/qr\/a2d5e",
                "scans": 0,
                "name": "Google",
                "date": "2020-11-10 18:01:43"
            },
            {
                "id": 1,
                "link": "http:\/\/4ul.ir\/qr\/b9edfe",
                "scans": 5,
                "name": "Google Canada",
                "date": "2020-11-10 18:00:25"
            }
        ]
    }
}
دریافت QR کد تکی
GET http://4ul.ir/api/qr/:id

برای دریافت جزئیات یک QR کد از طریق API، می توانید از این درخواست استفاده کنید.

curl --location --request GET 'http://4ul.ir/api/qr/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/qr/:id",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "details": {
        "id": 1,
        "link": "http:\/\/4ul.ir\/qr\/b9edfe",
        "scans": 5,
        "name": "Google Canada",
        "date": "2020-11-10 18:00:25"
    },
    "data": {
        "clicks": 1,
        "uniqueClicks": 1,
        "topCountries": {
            "Unknown": "1"
        },
        "topReferrers": {
            "Direct, email and other": "1"
        },
        "topBrowsers": {
            "Chrome": "1"
        },
        "topOs": {
            "Windows 10": "1"
        },
        "socialCount": {
            "facebook": 0,
            "twitter": 0,
            "instagram": 0
        }
    }
}
ایجاد QR کد
POST http://4ul.ir/api/qr/add

برای ایجاد یک QR کد، باید یک داده معتبر در JSON از طریق یک درخواست POST ارسال کنید. داده ها باید به عنوان متن خام درخواست شما مطابق شکل زیر ارسال شوند. مثال زیر تمام پارامترهایی را که می توانید ارسال کنید نشان می دهد اما لازم نیست همه را ارسال کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
type ضروری | text ، vcard ، link ، email ، phone ، sms ، wifi
data ضروری | داده هایی که باید در داخل QR کد جاسازی شوند. بسته به نوع داده ها می توانند رشته یا آرایه باشند
background اختیاری | کد رنگ مانند rgb(255,255,255)
foreground اختیاری | کد رنگ مانند rgb(0,0,0)
logo اختیاری | لینک لوگو
curl --location --request POST 'http://4ul.ir/api/qr/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "link",
    "data": "https:\/\/google.com",
    "background": "rgb(255,255,255)",
    "foreground": "rgb(0,0,0)",
    "logo": "https:\/\/site.com\/logo.png"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/qr/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "type": "link",
    "data": "https:\/\/google.com",
    "background": "rgb(255,255,255)",
    "foreground": "rgb(0,0,0)",
    "logo": "https:\/\/site.com\/logo.png"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "id": 3,
    "link": "http:\/\/4ul.ir\/qr\/a58f79"
}
بروزرسانی QR کد
PUT http://4ul.ir/api/qr/:id/update

برای بروزرسانی یک کد QR، باید یک داده معتبر در JSON از طریق یک درخواست POST ارسال کنید. داده ها باید به عنوان متن خام درخواست شما مطابق شکل زیر ارسال شوند. مثال زیر تمام پارامترهایی را که می توانید ارسال کنید نشان می دهد اما لازم نیست همه را ارسال کنید (برای اطلاعات بیشتر به جدول مراجعه کنید).

پارامترتوضیحات
data ضروری | داده هایی که باید در داخل QR کد جاسازی شوند. بسته به نوع داده ها می توانند رشته یا آرایه باشند
background اختیاری | کد رنگ مانند rgb(255,255,255)
foreground اختیاری | کد رنگ مانند rgb(0,0,0)
logo اختیاری | لینک لوگو
curl --location --request PUT 'http://4ul.ir/api/qr/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "link",
    "data": "https:\/\/google.com",
    "background": "rgb(255,255,255)",
    "foreground": "rgb(0,0,0)",
    "logo": "https:\/\/site.com\/logo.png"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/qr/:id/update",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "type": "link",
    "data": "https:\/\/google.com",
    "background": "rgb(255,255,255)",
    "foreground": "rgb(0,0,0)",
    "logo": "https:\/\/site.com\/logo.png"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "QR has been updated successfully."
}
حذف QR کد
DELETE http://4ul.ir/api/qr/:id/delete

برای حذف یک کد QR، باید یک درخواست DELETE ارسال کنید.

curl --location --request DELETE 'http://4ul.ir/api/qr/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/qr/:id/delete",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "QR Code has been deleted successfully."
}

پلن های عضویت

این درخواست ها فقط برای کاربرانی با نقش مدیرکل در دسترس هستند!

لیست همه پلن ها
GET http://4ul.ir/api/plans

لیست تمام پلن های موجود در سایت را دریافت کنید.

curl --location --request GET 'http://4ul.ir/api/plans' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/plans",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "data": [
        {
            "id": 2,
            "name": "Business",
            "free": false,
            "prices": {
                "monthly": 9.9900000000000002131628207280300557613372802734375,
                "yearly": 99.9899999999999948840923025272786617279052734375,
                "lifetime": 999.990000000000009094947017729282379150390625
            },
            "limits": {
                "links": 100,
                "clicks": 100000,
                "retention": 60,
                "custom": {
                    "enabled": "0"
                },
                "team": {
                    "enabled": "0",
                    "count": "0"
                },
                "splash": {
                    "enabled": "1",
                    "count": "5"
                },
                "overlay": {
                    "enabled": "1",
                    "count": "10"
                },
                "pixels": {
                    "enabled": "1",
                    "count": "10"
                },
                "domain": {
                    "enabled": "1",
                    "count": "1"
                },
                "multiple": {
                    "enabled": "0"
                },
                "alias": {
                    "enabled": "1"
                },
                "device": {
                    "enabled": "0"
                },
                "geo": {
                    "enabled": "0"
                },
                "bundle": {
                    "enabled": "0"
                },
                "parameters": {
                    "enabled": "0"
                },
                "export": {
                    "enabled": "0"
                },
                "api": {
                    "enabled": "0"
                }
            }
        },
        {
            "id": 1,
            "name": "Starter",
            "free": true,
            "prices": null,
            "limits": {
                "links": 10,
                "clicks": 1000,
                "retention": 7,
                "custom": {
                    "enabled": "0"
                },
                "team": {
                    "enabled": "0",
                    "count": "0"
                },
                "splash": {
                    "enabled": "0",
                    "count": "0"
                },
                "overlay": {
                    "enabled": "0",
                    "count": "10"
                },
                "pixels": {
                    "enabled": "0",
                    "count": "10"
                },
                "domain": {
                    "enabled": "0",
                    "count": "0"
                },
                "multiple": {
                    "enabled": "0"
                },
                "alias": {
                    "enabled": "0"
                },
                "device": {
                    "enabled": "0"
                },
                "geo": {
                    "enabled": "0"
                },
                "bundle": {
                    "enabled": "0"
                },
                "parameters": {
                    "enabled": "0"
                },
                "export": {
                    "enabled": "0"
                },
                "api": {
                    "enabled": "0"
                }
            }
        }
    ]
}
اختصاص یک پلن به کاربر
PUT http://4ul.ir/api/plan/:planid/user/:userid

برای عضویت کاربر در پلن، یک درخواست PUT با شناسه پلن و شناسه کاربر به این آدرس ارسال کنید. نوع اشتراک و تاریخ انقضا باید مشخص شود. اگر تاریخ انقضا مشخص نشده باشد، تاریخ بر اساس نوع آن تنظیم می شود.

پارامترتوضیحات
type monthly | yearly | lifetime
expiration اختیاری | تاریخ انقضا به میلادی
curl --location --request PUT 'http://4ul.ir/api/plan/:planid/user/:userid' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "monthly",
    "expiration": "2023-01-03 12:31:45"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/plan/:planid/user/:userid",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "type": "monthly",
    "expiration": "2023-01-03 12:31:45"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "User has been subscribed to this plan."
}

کاربران

این درخواست ها فقط برای کاربرانی با نقش مدیرکل در دسترس هستند!

لیست کاربران
GET http://4ul.ir/api/users?filter=free

لیستی از همه کاربران در سایت را دریافت کنید. داده ها را می توان با ارسال یک پارامتر فیلتر در آدرس اینترنتی فیلتر کرد.

پارامترتوضیحات
filter admin | free | pro
email جستجوی کاربران با ایمیل
curl --location --request GET 'http://4ul.ir/api/users?filter=free' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/users?filter=free",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "data": [
        {
            "id": 2,
            "email": "sample2@domain.com",
            "username": "sample2user",
            "avatar": "https:\\\/\\\/domain.com\/content\/avatar2.png",
            "status": "free",
            "planid": 1,
            "expires": null,
            "registered": "2020-11-10 18:01:43",
            "apikey": "ABC123DEF456"
        },
        {
            "id": 1,
            "email": "sample@domain.com",
            "username": "sampleuser",
            "avatar": "https:\\\/\\\/domain.com\/content\/avatar.png",
            "status": "pro",
            "planid": 2,
            "expires": "2022-11-15 15:00:00",
            "registered": "2020-11-10 18:01:43",
            "apikey": "ABC123DEF456"
        }
    ]
}
اطلاعات کاربر
GET http://4ul.ir/api/user/:id

دریافت اطلاعات کاربر

curl --location --request GET 'http://4ul.ir/api/user/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/user/:id",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "data": {
        "id": 2,
        "email": "sample2@domain.com",
        "username": "sample2user",
        "avatar": "https:\\\/\\\/domain.com\/content\/avatar2.png",
        "status": "free",
        "planid": 1,
        "expires": null,
        "registered": "2020-11-10 18:01:43",
        "apikey": "ABC123DEF456"
    }
}
ایجاد کاربر
POST http://4ul.ir/api/user/add

برای ایجاد کاربر، از این درخواست استفاده کنید و اطلاعات زیر را به صورت JSON ارسال کنید.

پارامترتوضیحات
username ضروری | نام کاربری که باید مجاز باشد
email ضروری | ایمیل کاربر که باید مجاز باشد
password ضروری | رمزعبور کاربر که حداقل 5 کاراکتر باشد
planid اختیاری | شناسه پلن ویژه
expiration اختیاری | تاریخ انقضا عضویت به میلادی
curl --location --request POST 'http://4ul.ir/api/user/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "user",
    "password": "1234567891011",
    "email": "demo@yourwebsite.com",
    "planid": 1,
    "expiration": "2020-11-20 11:00:00"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/user/add",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    CURLOPT_POSTFIELDS => '{
    "username": "user",
    "password": "1234567891011",
    "email": "demo@yourwebsite.com",
    "planid": 1,
    "expiration": "2020-11-20 11:00:00"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "User has been registered.",
    "data": {
        "id": 3,
        "email": "demo@yourwebsite.com",
        "username": "user"
    }
}
حذف کاربر
DELETE http://4ul.ir/api/user/:id/delete

برای حذف کاربر از این درخواست استفاده کنید

curl --location --request DELETE 'http://4ul.ir/api/user/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/user/:id/delete",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "message": "User has been deleted."
}
ورود به عنوان کاربر
GET http://4ul.ir/api/user/login/:id

این درخواست یک پیوند منحصر به فرد ایجاد می کند که به کاربر امکان می دهد به طور خودکار به پلت فرم وارد شود. این لینک های ورود به سیستم به مدت 1 ساعت معتبر هستند و می توان آنها را یک بار استفاده کرد.

curl --location --request GET 'http://4ul.ir/api/user/login/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://4ul.ir/api/user/login/:id",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 2,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Authorization: Bearer YOURAPIKEY",
        "Content-Type: application/json",
    ),
    
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
پاسخ سرور
{
    "error": 0,
    "url": "http:\/\/4ul.ir\/user\/login\/sso\/vaaprdykrynzpwxcxwiragmnrlfrtqho"
}