Geliştiriciler için API Referansı v3

Başlarken

İsteklerin sistem tarafından işlenmesi için bir API anahtarı gereklidir. Bir kullanıcı kaydolduğunda, bu kullanıcı için otomatik olarak bir API anahtarı oluşturulur. API anahtarı, her istekle birlikte gönderilmelidir (aşağıdaki tam örneğe bakın). API anahtarı gönderilmezse veya süresi dolmuşsa bir hata oluşur. Kötüye kullanımı önlemek için lütfen API anahtarınızı gizli tuttuğunuzdan emin olun.

Kimlik Doğrulama

API sistemiyle kimlik doğrulaması yapmak için API anahtarınızı her istekle birlikte bir yetkilendirme belirteci olarak göndermeniz gerekir. Aşağıda örnek kodu görebilirsiniz.

curl --location --request POST 'https://www.qral.net/api/url/add' \ 
--header 'Authorization: Bearer YOURAPIKEY
--header 'Content-Type: application/json' \ 
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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);
Oran Sınırı

API'miz, kararlılığını en üst düzeye çıkarmak için isteklerdeki ani artışlara karşı koruma sağlayan bir hız sınırlayıcıya sahiptir. Hız sınırlayıcımız şu anda 1 dakika başına 30 istekle sınırlandırılmıştır.

Yanıtın yanında birkaç başlık gönderilir ve bunlar istekle ilgili çeşitli bilgileri belirlemek için incelenebilir.

X-RateLimit-Limit: 30
X-RateLimit-Remaining: 29
X-RateLimit-Reset: TIMESTAMP
Yanıt İşleme

Tüm API yanıtı, varsayılan olarak JSON biçiminde döndürülür. Bunu kullanılabilir verilere dönüştürmek için dile göre uygun işlevin kullanılması gerekecektir. PHP'de, json_decode() işlevi, verileri bir nesneye (varsayılan) veya bir diziye (ikinci parametreyi true olarak ayarlayın) dönüştürmek için kullanılabilir. Hata anahtarının kontrol edilmesi bir hata olup olmadığı hakkında bilgi verdiği için çok önemlidir. Başlık kodunu da kontrol edebilirsiniz.

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

Hesap

Hesap Oluştur
GET https://www.qral.net/api/account

Hesapla ilgili bilgi almak için bu uç noktaya bir istek gönderebilirsiniz ve bu, hesapla ilgili verileri döndürür.

curl --location --request GET 'https://www.qral.net/api/account' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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;
Server 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"
    }
}
Hesabını Güncelle
PUT https://www.qral.net/api/account/update

Hesapla ilgili bilgileri güncellemek için bu uç noktaya bir istek gönderebilirsiniz; bu, hesaptaki verileri güncelleyecektir.

curl --location --request PUT 'https://www.qral.net/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://www.qral.net/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;
Server response
{
    "error": 0,
    "message": "Account has been successfully updated."
}

Bağlantılar


QR Kodları

Tüm QR kodlarını listele
GET https://www.qral.net/api/qr?limit=2&page=1

API üzerinden QR kodlarınızı almak için bu uç noktayı kullanabilirsiniz. Ayrıca verileri filtreleyebilirsiniz (Daha fazla bilgi için tabloya bakın).

ParametreAçıklama
limit (optional) Per page data result
page (optional) Current page request
curl --location --request GET 'https://www.qral.net/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://www.qral.net/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;
Server response
{
    "error": "0",
    "data": {
        "result": 2,
        "perpage": 2,
        "currentpage": 1,
        "nextpage": 1,
        "maxpage": 1,
        "qrs": [
            {
                "id": 2,
                "link": "https:\/\/www.qral.net\/qr\/a2d5e",
                "scans": 0,
                "title": "Google",
                "date": "2020-11-10 18:01:43"
            },
            {
                "id": 1,
                "link": "https:\/\/www.qral.net\/qr\/b9edfe",
                "scans": 5,
                "title": "Google Canada",
                "date": "2020-11-10 18:00:25"
            }
        ]
    }
}
QR Kodu Alın
GET https://www.qral.net/api/qr/:id

API aracılığıyla tek bir QR kodunun ayrıntılarını almak için bu uç noktayı kullanabilirsiniz.

curl --location --request GET 'https://www.qral.net/api/qr/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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;
Server response
{
    "error": 0,
    "details": {
        "id": 1,
        "link": "https:\/\/www.qral.net\/qr\/b9edfe",
        "scans": 5,
        "title": "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 Kodu Oluşturun
POST https://www.qral.net/api/qr/add

Bir QR Kodunu kısaltmak için, bir POST isteği aracılığıyla JSON'da geçerli bir veri göndermeniz gerekir. Veriler, aşağıda gösterildiği gibi talebinizin ham gövdesi olarak gönderilmelidir. Aşağıdaki örnek, gönderebileceğiniz tüm parametreleri gösterir, ancak hepsini göndermeniz gerekmez (Daha fazla bilgi için tabloya bakın).

ParametreAçıklama
type (required) text | vcard | link | email | phone | sms | wifi
data (required) Data to be embedded inside the QR code. The data can be string or array depending on the type
background (optional) Hex color e.g. #ffffff
foreground (optional) Hex color e.g. #000000
logo (optional) Path to the logo either png or jpg
curl --location --request POST 'https://www.qral.net/api/qr/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "link",
    "data": "https:\/\/google.com",
    "background": "#ffffff",
    "foreground": "#000000",
    "logo": "https:\/\/site.com\/logo.png"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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": "#ffffff",
    "foreground": "#000000",
    "logo": "https:\/\/site.com\/logo.png"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Server response
{
    "error": 0,
    "id": 3,
    "link": "https:\/\/www.qral.net\/qr\/a58f79"
}
QR Kodunu Güncelle
PUT https://www.qral.net/api/qr/:id/update

Bir QR Kodunu güncellemek için, bir PUT isteği aracılığıyla JSON'da geçerli bir veri göndermeniz gerekir. Veriler, aşağıda gösterildiği gibi talebinizin ham gövdesi olarak gönderilmelidir. Aşağıdaki örnek, gönderebileceğiniz tüm parametreleri gösterir, ancak hepsini göndermeniz gerekmez (Daha fazla bilgi için tabloya bakın).

ParametreAçıklama
data (required) Data to be embedded inside the QR code. The data can be string or array depending on the type
background (optional) Hex color e.g. #ffffff
foreground (optional) Hex color e.g. #000000
logo (optional) Path to the logo either png or jpg
curl --location --request PUT 'https://www.qral.net/api/qr/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "link",
    "data": "https:\/\/google.com",
    "background": "#ffffff",
    "foreground": "#000000",
    "logo": "https:\/\/site.com\/logo.png"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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": "#ffffff",
    "foreground": "#000000",
    "logo": "https:\/\/site.com\/logo.png"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Server response
{
    "error": 0,
    "message": "QR has been updated successfully."
}
QR Kodunu Sil
DELETE https://www.qral.net/api/qr/:id/delete

Bir QR kodunu silmek için bir SİL isteği göndermeniz gerekir.

curl --location --request DELETE 'https://www.qral.net/api/qr/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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;
Server response
{
    "error": 0,
    "message": "QR Code has been deleted successfully."
}

Planlar

Bu uç noktaya yalnızca yönetici ayrıcalıklarına sahip kullanıcılar erişebilir.

Tüm Planları Listele
GET https://www.qral.net/api/plans

Platformdaki tüm planların bir listesini alın.

curl --location --request GET 'https://www.qral.net/api/plans' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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;
Server response
{
    "error": 0,
    "data": [
        {
            "id": 2,
            "name": "Business",
            "free": false,
            "prices": {
                "monthly": 9.99,
                "yearly": 99.99,
                "lifetime": 999.99
            },
            "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"
                }
            }
        }
    ]
}
Bir kullanıcıyı bir plana abone olma
PUT https://www.qral.net/api/plan/:planid/user/:userid

Bir kullanıcıyı plana abone olmak için, bu uç noktaya plan kimliği ve kullanıcı kimliği ile bir PUT isteği gönderin. Abonelik türü ve sona erme tarihi belirtilmelidir. Son kullanma tarihi belirtilmemişse, türe göre tarih ayarlanacaktır.

ParametreAçıklama
type monthly | yearly | lifetime
expiration (isteğe bağlı) Planın sona erme tarihi ör.2022-09-11 18:26:20
curl --location --request PUT 'https://www.qral.net/api/plan/:planid/user/:userid' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "monthly",
    "expiration": "2022-09-11 18:26:20"
}'
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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": "2022-09-11 18:26:20"
}',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Server response
{
    "error": 0,
    "message": "User has been subscribed to this plan."
}

Kullanıcılar

Bu uç noktaya yalnızca yönetici ayrıcalıklarına sahip kullanıcılar erişebilir.

Tüm Kullanıcıları Listele
GET https://www.qral.net/api/users?filter=free

Platformdaki tüm kullanıcıların bir listesini alın. Veriler, url'de bir filtre parametresi gönderilerek filtrelenebilir.

ParametreAçıklama
filter admin | free | pro
curl --location --request GET 'https://www.qral.net/api/users?filter=free' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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;
Server 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"
        },
        {
            "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"
        }
    ]
}
Kullanıcı Oluştur
POST https://www.qral.net/api/user/add

Bir kullanıcı oluşturmak için bu uç noktayı kullanın ve aşağıdaki bilgileri JSON olarak gönderin.

ParametreAçıklama
username (required) User's username. Needs to be valid.
email (required) User's email. Needs to be valid.
password (required) User's password. Minimum 5 characters.
planid (optional) Premium plan. This can be found in the admin panel.
expiration (optional) Membership expiration example 2020-12-26 12:00:00
curl --location --request POST 'https://www.qral.net/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 => "https://www.qral.net/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;
Server response
{
    "error": 0,
    "message": "User has been registered.",
    "data": {
        "id": 3,
        "email": "demo@yourwebsite.com",
        "username": "user"
    }
}
Kullanıcıyı Sil
DELETE https://www.qral.net/api/user/:id/delete

Bir kullanıcıyı silmek için bu uç noktayı kullanın.

curl --location --request DELETE 'https://www.qral.net/api/user/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.qral.net/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;
Server response
{
    "error": 0,
    "message": "User has been deleted."
}