برای پردازش درخواستها توسط سیستم، وجود کلید API الزامی است. پس از ثبتنام کاربر، یک کلید API بهطور خودکار برای او ایجاد میشود. این کلید باید همراه هر درخواست ارسال گردد (نمونه کامل در زیر). اگر کلید API ارسال نشود یا منقضی شده باشد، خطا رخ خواهد داد. لطفاً برای جلوگیری از سوءاستفاده، کلید API خود را محرمانه نگه دارید.
برای احراز هویت در سیستم API، لازم است کلید API خود را بهعنوان توکن مجوز همراه هر درخواست ارسال کنید. نمونه کد در زیر آورده شده است.
curl --location --request POST 'https://301l.ir/api/account' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/account",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/account',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: ''
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/account"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/account");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
API ما دارای محدودکننده نرخ است تا از افزایش ناگهانی درخواستها جلوگیری کرده و پایداری حداکثری را تضمین کند. محدودکننده نرخ فعلاً روی 30 درخواست در هر 1 دقیقه تنظیم شده است. لطفاً توجه داشته باشید نرخ ممکن است بر اساس طرح اشتراکی تغییر کند.
چندین هدر همراه پاسخ ارسال میشود که میتوان آنها را برای بررسی اطلاعات مختلف درباره درخواست تحلیل کرد.
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 29
X-RateLimit-Reset: TIMESTAMP
تمامی پاسخهای API بهطور پیشفرض در قالب JSON بازگردانده میشوند. برای تبدیل آنها به دادههای قابل استفاده، باید بر اساس زبان برنامهنویسی از تابع مناسب استفاده کنید. در PHP میتوانید از تابع json_decode() برای تبدیل دادهها به شیء (پیشفرض) یا آرایه (با تنظیم پارامتر دوم روی true) استفاده کنید. بررسی کلید خطا بسیار مهم است، زیرا مشخص میکند که آیا خطایی رخ داده یا خیر. همچنین میتوانید کد هدر را بررسی کنید.
{
"error": 1,
"message": "An error occurred"
}
https://301l.ir/api/qr?limit=2&page=1
برای دریافت کدهای QR خود از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/qr?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/qr?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/qr?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/qr?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"qrs": [
{
"id": 2,
"link": "https:\/\/301l.ir\/qr\/a2d5e",
"scans": 0,
"name": "Google",
"date": "2020-11-10 18:01:43"
},
{
"id": 1,
"link": "https:\/\/301l.ir\/qr\/b9edfe",
"scans": 5,
"name": "Google Canada",
"date": "2020-11-10 18:00:25"
}
]
}
}
https://301l.ir/api/qr/:id
برای دریافت جزئیات یک کد QR از طریق API، میتوانید از این نقطه پایانی استفاده کنید.
curl --location --request GET 'https://301l.ir/api/qr/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/qr/:id",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/qr/:id',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/qr/:id"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/qr/:id");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"details": {
"id": 1,
"link": "https:\/\/301l.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
}
}
}
https://301l.ir/api/qr/add
برای ایجاد یک کد QR، باید داده معتبر را بهصورت JSON از طریق درخواست POST ارسال کنید. داده باید بهعنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| type | (الزامی) text | vcard | link | email | phone | sms | wifi |
| data | (الزامی) دادهای که باید داخل کد QR جاسازی شود. داده میتواند رشته یا آرایه باشد بسته به نوع |
| background | (اختیاری) رنگ RGB، مثال: rgb(255,255,255) |
| foreground | (اختیاری) رنگ RGB، مثال: rgb(0,0,0) |
| logo | (اختیاری) مسیر لوگو بهصورت png یا jpg |
| name | (اختیاری) نام کد QR |
curl --location --request POST 'https://301l.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",
"name": "QR Code API"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/qr/add",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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",
"name": "QR Code API"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/qr/add',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png",
"name": "QR Code API"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/qr/add"
payload = {
"type": "link",
"data": "https://google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https://site.com/logo.png",
"name": "QR Code API"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/qr/add");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png",
"name": "QR Code API"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 3,
"link": "https:\/\/301l.ir\/qr\/a58f79"
}
https://301l.ir/api/qr/:id/update
برای بروزرسانی یک کد QR، باید داده معتبر را بهصورت JSON از طریق درخواست PUT ارسال کنید. داده باید بهعنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| data | (الزامی) دادهای که باید داخل کد QR جاسازی شود. داده میتواند رشته یا آرایه باشد بسته به نوع |
| background | (اختیاری) رنگ RGB، مثال: rgb(255,255,255) |
| foreground | (اختیاری) رنگ RGB، مثال: rgb(0,0,0) |
| logo | (اختیاری) مسیر لوگو بهصورت png یا jpg |
curl --location --request PUT 'https://301l.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 => "https://301l.ir/api/qr/:id/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/qr/:id/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/qr/:id/update"
payload = {
"type": "link",
"data": "https://google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https://site.com/logo.png"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/qr/:id/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "QR has been updated successfully."
}
https://301l.ir/api/qr/:id/delete
برای حذف یک کد QR، باید یک درخواست DELETE ارسال کنید.
curl --location --request DELETE 'https://301l.ir/api/qr/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/qr/:id/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'DELETE',
'url': 'https://301l.ir/api/qr/:id/delete',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/qr/:id/delete"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("DELETE", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://301l.ir/api/qr/:id/delete");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "QR Code has been deleted successfully."
}
https://301l.ir/api/splash?limit=2&page=1
برای دریافت صفحات Splash سفارشی از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (جدول را برای اطلاعات بیشتر ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/splash?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/splash?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/splash?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/splash?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
]
}
}
https://301l.ir/api/account
برای دریافت اطلاعات حساب، میتوانید یک درخواست به این نقطه پایانی ارسال کنید و دادههای حساب بازگردانده میشود.
curl --location --request GET 'https://301l.ir/api/account' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/account",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/account',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/account"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/account");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
}
https://301l.ir/api/account/update
برای بروزرسانی اطلاعات حساب، میتوانید یک درخواست به این نقطه پایانی ارسال کنید و دادههای حساب بروزرسانی میشود.
curl --location --request PUT 'https://301l.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 => "https://301l.ir/api/account/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS =>
'{
"email": "newemail@google.com",
"password": "newpassword"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/account/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"email": "newemail@google.com",
"password": "newpassword"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/account/update"
payload = {
"email": "newemail@google.com",
"password": "newpassword"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/account/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"email": "newemail@google.com",
"password": "newpassword"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Account has been successfully updated."
}
https://301l.ir/api/domains?limit=2&page=1
برای دریافت دامنههای برند شده از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (جدول را برای اطلاعات بیشتر ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/domains?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/domains?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/domains?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/domains?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
]
}
}
https://301l.ir/api/domain/add
یک دامنه میتواند با استفاده از این نقطه پایانی اضافه شود. لطفاً مطمئن شوید دامنه بهدرستی به سرور ما متصل شده باشد.
| پارامتر | توضیحات |
|---|---|
| domain | (الزامی) دامنه برند شده شامل http یا https |
| redirectroot | (اختیاری) ریدایرکت ریشه وقتی کسی دامنه شما را بازدید میکند |
| redirect404 | (اختیاری) ریدایرکت ۴۰۴ سفارشی |
curl --location --request POST 'https://301l.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 => "https://301l.ir/api/domain/add",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/domain/add',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/domain/add"
payload = {
"domain": "https://domain1.com",
"redirectroot": "https://rootdomain.com",
"redirect404": "https://rootdomain.com/404"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/domain/add");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 1
}
https://301l.ir/api/domain/:id/update
برای بروزرسانی یک دامنه برند شده، باید داده معتبر را به صورت JSON از طریق درخواست PUT ارسال کنید. داده باید به عنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| redirectroot | (اختیاری) ریدایرکت ریشه وقتی کسی دامنه شما را بازدید میکند |
| redirect404 | (اختیاری) ریدایرکت ۴۰۴ سفارشی |
curl --location --request PUT 'https://301l.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 => "https://301l.ir/api/domain/:id/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/domain/:id/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"redirectroot": "https:\/\/rootdomain-new.com",
"redirect404": "https:\/\/rootdomain-new.com\/404"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/domain/:id/update"
payload = {
"redirectroot": "https://rootdomain-new.com",
"redirect404": "https://rootdomain-new.com/404"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/domain/:id/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"redirectroot": "https:\/\/rootdomain-new.com",
"redirect404": "https:\/\/rootdomain-new.com\/404"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Domain has been updated successfully."
}
https://301l.ir/api/domain/:id/delete
برای حذف یک دامنه، باید یک درخواست DELETE ارسال کنید.
curl --location --request DELETE 'https://301l.ir/api/domain/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/domain/:id/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'DELETE',
'url': 'https://301l.ir/api/domain/:id/delete',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/domain/:id/delete"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("DELETE", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://301l.ir/api/domain/:id/delete");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Domain has been deleted successfully."
}
https://301l.ir/api/urls?limit=2&page=1&order=date
برای دریافت لینکهای خود از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
| order | (اختیاری) مرتبسازی دادهها بر اساس تاریخ یا کلیک |
| short | (اختیاری) جستجو با استفاده از URL کوتاه. توجه داشته باشید که هنگام استفاده از پارامتر short، تمام پارامترهای دیگر نادیده گرفته میشوند و در صورت مطابقت، یک پاسخ تکلینکی بازگردانده خواهد شد. |
| q | (اختیاری) جستجوی لینکها با استفاده از یک کلمه کلیدی |
curl --location --request GET 'https://301l.ir/api/urls?limit=2&page=1&order=date' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/urls?limit=2&page=1&order=date",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/urls?limit=2&page=1&order=date',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/urls?limit=2&page=1&order=date"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/urls?limit=2&page=1&order=date");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"urls": [
{
"id": 2,
"alias": "google",
"shorturl": "https:\/\/301l.ir\/google",
"longurl": "https:\/\/google.com",
"clicks": 0,
"title": "Google",
"description": "",
"date": "2020-11-10 18:01:43"
},
{
"id": 1,
"alias": "googlecanada",
"shorturl": "https:\/\/301l.ir\/googlecanada",
"longurl": "https:\/\/google.ca",
"clicks": 0,
"title": "Google Canada",
"description": "",
"date": "2020-11-10 18:00:25"
}
]
}
}
https://301l.ir/api/url/:id
برای دریافت جزئیات یک لینک از طریق API، میتوانید از این نقطه پایانی استفاده کنید.
curl --location --request GET 'https://301l.ir/api/url/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/url/:id",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/url/:id',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/url/:id"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/url/:id");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 1,
"details": {
"id": 1,
"shorturl": "https:\/\/301l.ir\/googlecanada",
"longurl": "https:\/\/google.com",
"title": "Google",
"description": "",
"location": {
"canada": "https:\/\/google.ca",
"united states": "https:\/\/google.us"
},
"device": {
"iphone": "https:\/\/google.com",
"android": "https:\/\/google.com"
},
"expiry": null,
"date": "2020-11-10 18:01:43"
},
"data": {
"clicks": 0,
"uniqueClicks": 0,
"topCountries": 0,
"topReferrers": 0,
"topBrowsers": 0,
"topOs": 0,
"socialCount": {
"facebook": 0,
"twitter": 0,
"google": 0
}
}
}
https://301l.ir/api/url/add
برای کوتاه کردن یک لینک، باید داده معتبر را بهصورت JSON از طریق درخواست POST ارسال کنید. داده باید بهعنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| url | (الزامی) آدرس URL بلند برای کوتاه کردن. |
| custom | (اختیاری) نام مستعار سفارشی بهجای نام مستعار تصادفی. |
| type | (اختیاری) نوع ریدایرکت [direct، frame، splash]، فقط id برای صفحه splash سفارشی یا overlay-id برای صفحات CTA |
| password | (اختیاری) حفاظت با رمز عبور |
| domain | (اختیاری) دامنه سفارشی |
| expiry | (اختیاری) تاریخ انقضای لینک (مثال: 2021-09-28 23:11:16) |
| geotarget | (اختیاری) دادههای هدفگیری جغرافیایی |
| devicetarget | (اختیاری) دادههای هدفگیری دستگاه |
| languagetarget | (اختیاری) دادههای هدفگیری زبان |
| metatitle | (اختیاری) عنوان متا |
| metadescription | (اختیاری) توضیحات متا |
| metaimage | (اختیاری) لینک به یک تصویر jpg یا png |
| description | (اختیاری) یادداشت یا توضیحات |
| pixels | (اختیاری) آرایهای از شناسههای پیکسل |
| channel | (اختیاری) شناسه کانال |
| campaign | (اختیاری) شناسه کمپین |
| deeplink | (اختیاری) شیء شامل لینکهای اپاستور. هنگام استفاده از این مورد، تنظیم هدفگیری دستگاه نیز مهم است. (جدید) اکنون میتوانید پارامتر "auto" را روی true تنظیم کنید تا بهطور خودکار لینکهای عمیق از لینک بلند ارائهشده تولید شوند. |
| status | (اختیاری) public یا private (پیشفرض) |
curl --location --request POST 'https://301l.ir/api/url/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https:\/\/google.com",
"status": "private",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"metatitle": "Not Google",
"metadescription": "Not Google description",
"metaimage": "https:\/\/www.mozilla.org\/media\/protocol\/img\/logos\/firefox\/browser\/og.4ad05d4125a5.png",
"description": "For facebook",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"campaign": 1,
"deeplink": {
"auto": true,
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"languagetarget": [
{
"language": "en",
"link": "https:\/\/google.com"
},
{
"language": "fr",
"link": "https:\/\/google.ca"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/url/add",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS =>
'{
"url": "https:\/\/google.com",
"status": "private",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"metatitle": "Not Google",
"metadescription": "Not Google description",
"metaimage": "https:\/\/www.mozilla.org\/media\/protocol\/img\/logos\/firefox\/browser\/og.4ad05d4125a5.png",
"description": "For facebook",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"campaign": 1,
"deeplink": {
"auto": true,
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"languagetarget": [
{
"language": "en",
"link": "https:\/\/google.com"
},
{
"language": "fr",
"link": "https:\/\/google.ca"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/url/add',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"url": "https:\/\/google.com",
"status": "private",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"metatitle": "Not Google",
"metadescription": "Not Google description",
"metaimage": "https:\/\/www.mozilla.org\/media\/protocol\/img\/logos\/firefox\/browser\/og.4ad05d4125a5.png",
"description": "For facebook",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"campaign": 1,
"deeplink": {
"auto": true,
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"languagetarget": [
{
"language": "en",
"link": "https:\/\/google.com"
},
{
"language": "fr",
"link": "https:\/\/google.ca"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/url/add"
payload = {
"url": "https://google.com",
"status": "private",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"metatitle": "Not Google",
"metadescription": "Not Google description",
"metaimage": "https://www.mozilla.org/media/protocol/img/logos/firefox/browser/og.4ad05d4125a5.png",
"description": "For facebook",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"campaign": 1,
"deeplink": {
"auto": true,
"apple": "https://apps.apple.com/us/app/google/id284815942",
"google": "https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https://google.ca"
},
{
"location": "United States",
"link": "https://google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https://google.com"
},
{
"device": "Android",
"link": "https://google.com"
}
],
"languagetarget": [
{
"language": "en",
"link": "https://google.com"
},
{
"language": "fr",
"link": "https://google.ca"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/url/add");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"url": "https:\/\/google.com",
"status": "private",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"metatitle": "Not Google",
"metadescription": "Not Google description",
"metaimage": "https:\/\/www.mozilla.org\/media\/protocol\/img\/logos\/firefox\/browser\/og.4ad05d4125a5.png",
"description": "For facebook",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"campaign": 1,
"deeplink": {
"auto": true,
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"languagetarget": [
{
"language": "en",
"link": "https:\/\/google.com"
},
{
"language": "fr",
"link": "https:\/\/google.ca"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 3,
"shorturl": "https:\/\/301l.ir\/google"
}
https://301l.ir/api/url/:id/update
برای بروزرسانی یک لینک، باید داده معتبر را بهصورت JSON از طریق درخواست PUT ارسال کنید. داده باید بهعنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| url | (الزامی) آدرس URL بلند برای کوتاه کردن. |
| custom | (اختیاری) نام مستعار سفارشی بهجای نام مستعار تصادفی. |
| type | (اختیاری) نوع ریدایرکت [direct، frame، splash] |
| password | (اختیاری) حفاظت با رمز عبور |
| domain | (اختیاری) دامنه سفارشی |
| expiry | (اختیاری) تاریخ انقضای لینک (مثال: 2021-09-28 23:11:16) |
| geotarget | (اختیاری) دادههای هدفگیری جغرافیایی |
| devicetarget | (اختیاری) دادههای هدفگیری دستگاه |
| languagetarget | (اختیاری) دادههای هدفگیری زبان |
| metatitle | (اختیاری) عنوان متا |
| metadescription | (اختیاری) توضیحات متا |
| metaimage | (اختیاری) لینک به یک تصویر jpg یا png |
| pixels | (اختیاری) آرایهای از شناسههای پیکسل |
| channel | (اختیاری) شناسه کانال |
| campaign | (اختیاری) شناسه کمپین |
| deeplink | (اختیاری) شیء شامل لینکهای اپاستور. هنگام استفاده از این مورد، تنظیم هدفگیری دستگاه نیز مهم است. |
curl --location --request PUT 'https://301l.ir/api/url/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"deeplink": {
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/url/:id/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS =>
'{
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"deeplink": {
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/url/:id/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"deeplink": {
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/url/:id/update"
payload = {
"url": "https://google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"deeplink": {
"apple": "https://apps.apple.com/us/app/google/id284815942",
"google": "https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https://google.ca"
},
{
"location": "United States",
"link": "https://google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https://google.com"
},
{
"device": "Android",
"link": "https://google.com"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/url/:id/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"deeplink": {
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 3,
"short": "https:\/\/301l.ir\/google"
}
https://301l.ir/api/url/:id/delete
برای حذف یک لینک، باید یک درخواست DELETE ارسال کنید.
curl --location --request DELETE 'https://301l.ir/api/url/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/url/:id/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'DELETE',
'url': 'https://301l.ir/api/url/:id/delete',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/url/:id/delete"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("DELETE", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://301l.ir/api/url/:id/delete");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Link has been deleted successfully"
}
https://301l.ir/api/pixels?limit=2&page=1
برای دریافت کدهای پیکسل خود از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/pixels?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/pixels?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/pixels?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/pixels?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
]
}
}
https://301l.ir/api/pixel/add
یک پیکسل میتواند با استفاده از این نقطه پایانی ایجاد شود. شما باید نوع پیکسل و برچسب آن را ارسال کنید.
| پارامتر | توضیحات |
|---|---|
| type | (required) gtmpixel | gapixel | fbpixel | adwordspixel | linkedinpixel | twitterpixel | adrollpixel | quorapixel | pinterest | bing | snapchat | reddit | tiktok |
| name | (الزامی) نام سفارشی برای پیکسل شما |
| tag | (الزامی) برچسب پیکسل |
curl --location --request POST 'https://301l.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 => "https://301l.ir/api/pixel/add",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/pixel/add',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"type": "gtmpixel",
"name": "My GTM",
"tag": "GTM-ABCDE"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/pixel/add"
payload = {
"type": "gtmpixel",
"name": "My GTM",
"tag": "GTM-ABCDE"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/pixel/add");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"type": "gtmpixel",
"name": "My GTM",
"tag": "GTM-ABCDE"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 1
}
https://301l.ir/api/pixel/:id/update
برای بروزرسانی یک پیکسل، باید داده معتبر را بهصورت JSON از طریق درخواست PUT ارسال کنید. داده باید بهعنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| name | (اختیاری) نام سفارشی برای پیکسل شما |
| tag | (الزامی) برچسب پیکسل |
curl --location --request PUT 'https://301l.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 => "https://301l.ir/api/pixel/:id/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS =>
'{
"name": "My GTM",
"tag": "GTM-ABCDE"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/pixel/:id/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "My GTM",
"tag": "GTM-ABCDE"
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/pixel/:id/update"
payload = {
"name": "My GTM",
"tag": "GTM-ABCDE"
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/pixel/:id/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"name": "My GTM",
"tag": "GTM-ABCDE"
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Pixel has been updated successfully."
}
https://301l.ir/api/pixel/:id/delete
برای حذف یک پیکسل، باید یک درخواست DELETE ارسال کنید.
curl --location --request DELETE 'https://301l.ir/api/pixel/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/pixel/:id/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'DELETE',
'url': 'https://301l.ir/api/pixel/:id/delete',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/pixel/:id/delete"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("DELETE", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://301l.ir/api/pixel/:id/delete");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Pixel has been deleted successfully."
}
https://301l.ir/api/overlay?limit=2&page=1
برای دریافت پوششهای CTA از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/overlay?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/overlay?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/overlay?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/overlay?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
]
}
}
https://301l.ir/api/channels?limit=2&page=1
برای دریافت کانالهای خود از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/channels?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/channels?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/channels?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/channels?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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
}
]
}
}
https://301l.ir/api/channel/:id?limit=1&page=1
برای دریافت آیتمها در کانالهای انتخابشده از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/channel/:id?limit=1&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/channel/:id?limit=1&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/channel/:id?limit=1&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/channel/:id?limit=1&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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": "https:\/\/301l.ir\/google",
"date": "2022-05-12"
},
{
"type": "bio",
"id": 1,
"title": "My Sample Bio",
"preview": "https:\/\/301l.ir\/mybio",
"link": "https:\/\/301l.ir\/mybio",
"date": "2022-06-01"
}
]
}
}
https://301l.ir/api/channel/add
یک کانال میتواند با استفاده از این نقطه پایانی اضافه شود.
| پارامتر | توضیحات |
|---|---|
| name | (الزامی) نام کانال |
| description | (اختیاری) توضیحات کانال |
| color | (اختیاری) رنگ نشان کانال (HEX) |
| starred | (اختیاری) ستارهدار کردن کانال یا خیر (true یا false) |
curl --location --request POST 'https://301l.ir/api/channel/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/channel/add",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS =>
'{
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/channel/add',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/channel/add"
payload = {
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/channel/add");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"id": 3,
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}
https://301l.ir/api/channel/:channelid/assign/:type/:itemid
یک آیتم میتواند با ارسال درخواست شامل شناسه کانال، نوع آیتم (لینکها، بیو یا QR) و شناسه آیتم به هر کانالی اختصاص داده شود.
| پارامتر | توضیحات |
|---|---|
| :channelid | (الزامی) شناسه کانال |
| :type | (الزامی) links یا bio یا qr |
| :itemid | (الزامی) شناسه آیتم |
curl --location --request POST 'https://301l.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 => "https://301l.ir/api/channel/:channelid/assign/:type/:itemid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/channel/:channelid/assign/:type/:itemid',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/channel/:channelid/assign/:type/:itemid"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/channel/:channelid/assign/:type/:itemid");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Item successfully added to the channel."
}
https://301l.ir/api/channel/:id/update
برای بروزرسانی یک کانال، باید داده معتبر را بهصورت JSON از طریق درخواست PUT ارسال کنید. داده باید بهعنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| name | (اختیاری) نام کانال |
| description | (اختیاری) توضیحات کانال |
| color | (اختیاری) رنگ نشان کانال (HEX) |
| starred | (اختیاری) ستارهدار کردن کانال یا خیر (true یا false) |
curl --location --request PUT 'https://301l.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 => "https://301l.ir/api/channel/:id/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/channel/:id/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "Acme Corp",
"description": "channel for items for Acme Corp",
"color": "#FFFFFF",
"starred": false
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/channel/:id/update"
payload = {
"name": "Acme Corp",
"description": "channel for items for Acme Corp",
"color": "#FFFFFF",
"starred": false
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/channel/:id/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"name": "Acme Corp",
"description": "channel for items for Acme Corp",
"color": "#FFFFFF",
"starred": false
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Channel has been updated successfully."
}
https://301l.ir/api/channel/:id/delete
برای حذف یک کانال، باید یک درخواست DELETE ارسال کنید. تمامی آیتمها نیز لغو اختصاص داده خواهند شد.
curl --location --request DELETE 'https://301l.ir/api/channel/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/channel/:id/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'DELETE',
'url': 'https://301l.ir/api/channel/:id/delete',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/channel/:id/delete"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("DELETE", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://301l.ir/api/channel/:id/delete");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Channel has been deleted successfully."
}
https://301l.ir/api/campaigns?limit=2&page=1
برای دریافت کمپینهای خود از طریق API، میتوانید از این نقطه پایانی استفاده کنید. همچنین میتوانید دادهها را فیلتر کنید (جدول را برای اطلاعات بیشتر ببینید).
| پارامتر | توضیحات |
|---|---|
| limit | (اختیاری) نتیجه دادهها به ازای هر صفحه |
| page | (اختیاری) درخواست صفحه جاری |
curl --location --request GET 'https://301l.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 => "https://301l.ir/api/campaigns?limit=2&page=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://301l.ir/api/campaigns?limit=2&page=1',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/campaigns?limit=2&page=1"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("GET", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://301l.ir/api/campaigns?limit=2&page=1");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
]
}
}
https://301l.ir/api/campaign/add
یک کمپین میتواند با استفاده از این نقطه پایانی اضافه شود.
| پارامتر | توضیحات |
|---|---|
| name | (اختیاری) نام کمپین |
| slug | (اختیاری) Slug گرداننده |
| public | (اختیاری) دسترسی |
curl --location --request POST 'https://301l.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 => "https://301l.ir/api/campaign/add",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/campaign/add',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "New Campaign",
"slug": "new-campaign",
"public": true
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/campaign/add"
payload = {
"name": "New Campaign",
"slug": "new-campaign",
"public": true
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/campaign/add");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"name": "New Campaign",
"slug": "new-campaign",
"public": true
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
https://301l.ir/api/campaign/:campaignid/assign/:linkid
یک لینک کوتاه میتواند با استفاده از این نقطه پایانی به کمپین اختصاص داده شود. این نقطه پایانی به شناسه کمپین و شناسه لینک کوتاه نیاز دارد.
curl --location --request POST 'https://301l.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 => "https://301l.ir/api/campaign/:campaignid/assign/:linkid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://301l.ir/api/campaign/:campaignid/assign/:linkid',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/campaign/:campaignid/assign/:linkid"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://301l.ir/api/campaign/:campaignid/assign/:linkid");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Link successfully added to the campaign."
}
https://301l.ir/api/campaign/:id/update
برای بروزرسانی یک کمپین، باید داده معتبر را به صورت JSON از طریق درخواست PUT ارسال کنید. داده باید به عنوان بدنه خام درخواست شما ارسال شود همانطور که در زیر نشان داده شده است. مثال زیر همه پارامترهایی که میتوانید ارسال کنید را نشان میدهد اما ارسال همه آنها الزامی نیست (برای اطلاعات بیشتر جدول را ببینید).
| پارامتر | توضیحات |
|---|---|
| name | (الزامی) نام کمپین |
| slug | (اختیاری) Slug گرداننده |
| public | (اختیاری) دسترسی |
curl --location --request PUT 'https://301l.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 => "https://301l.ir/api/campaign/:id/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"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;
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://301l.ir/api/campaign/:id/update',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"name": "Twitter Campaign",
"slug": "twitter-campaign",
"public": true
}),
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/campaign/:id/update"
payload = {
"name": "Twitter Campaign",
"slug": "twitter-campaign",
"public": true
}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("PUT", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://301l.ir/api/campaign/:id/update");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{
"name": "Twitter Campaign",
"slug": "twitter-campaign",
"public": true
}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"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"
}
https://301l.ir/api/campaign/:id/delete
برای حذف یک کمپین، باید یک درخواست DELETE ارسال کنید.
curl --location --request DELETE 'https://301l.ir/api/campaign/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://301l.ir/api/campaign/:id/delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 2,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
],
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'DELETE',
'url': 'https://301l.ir/api/campaign/:id/delete',
'headers': {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
},
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://301l.ir/api/campaign/:id/delete"
payload = {}
headers = {
'Authorization': 'Bearer YOURAPIKEY',
'Content-Type': 'application/json'
}
response = requests.request("DELETE", url, headers=headers, json=payload)
print(response.text)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://301l.ir/api/campaign/:id/delete");
request.Headers.Add("Authorization", "Bearer YOURAPIKEY");
var content = new StringContent("{}", System.Text.Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"error": 0,
"message": "Campaign has been deleted successfully."
}