An API key is required for requests to be processed by the system. Once a user registers, an API key is automatically generated for this user. The API key must be sent with each request (see full example below). If the API key is not sent or is expired, there will be an error. Please make sure to keep your API key secret to prevent abuse.
To authenticate with the API system, you need to send your API key as an authorization token with each request. You can see sample code below.
curl --location --request POST 'http://4dbda.clickthru.ca/api/url/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/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);
Our API has a rate limiter to safeguard against spike in requests to maximize its stability. Our rate limiter is currently caped at 30 requests per 1 minute.
Several headers will be sent alongside the response and these can be examined to determine various information about the request.
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 29
X-RateLimit-Reset: TIMESTAMP
All API response are returned in JSON format by default. To convert this into usable data, the appropriate function will need to be used according to the language. In PHP, the function json_decode() can be used to convert the data to either an object (default) or an array (set the second parameter to true). It is very important to check the error key as that provides information on whether there was an error or not. You can also check the header code.
{
"error": 1,
"message": "An error ocurred"
}
http://4dbda.clickthru.ca/api/account
To get information on the account, you can send a request to this endpoint and it will return data on the account.
curl --location --request GET 'http://4dbda.clickthru.ca/api/account' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/account",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"data": {
"id": 1,
"email": "sample@domain.com",
"username": "sampleuser",
"avatar": "https:\/\/domain.com\/content\/avatar.png",
"status": "pro",
"expires": "2022-11-15 15:00:00",
"registered": "2020-11-10 18:01:43"
}
}
http://4dbda.clickthru.ca/api/account/update
To update information on the account, you can send a request to this endpoint and it will update data on the account.
curl --location --request PUT 'http://4dbda.clickthru.ca/api/account/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "newemail@google.com",
"password": "newpassword"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/account/update",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"PUT",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"email": "newemail@google.com",
"password": "newpassword"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "Account has been successfully updated."
}
http://4dbda.clickthru.ca/api/domains?limit=2&page=1
To get your branded domains codes via the API, you can use this endpoint. You can also filter data (See table for more info).
Parameter | Description |
---|---|
limit | (optional) Per page data result |
page | (optional) Current page request |
curl --location --request GET 'http://4dbda.clickthru.ca/api/domains?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/domains?limit=2&page=1",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"domains": [
{
"id": 1,
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
},
{
"id": 2,
"domain": "https:\/\/domain2.com",
"redirectroot": "https:\/\/rootdomain2.com",
"redirect404": "https:\/\/rootdomain2.com\/404"
}
]
}
}
http://4dbda.clickthru.ca/api/domain/add
A domain can be added using this endpoint. You need to send the pixel type and the tag.
Parameter | Description |
---|---|
domain | (required) Branded domain including http or https |
redirectroot | (optional) Root redirect when someone visits your domain |
redirect404 | (optional) Custom 404 redirect |
curl --location --request POST 'http://4dbda.clickthru.ca/api/domain/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/domain/add",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"POST",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"id": 1
}
http://4dbda.clickthru.ca/api/domain/:id/update
To update a branded domain, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
Parameter | Description |
---|---|
redirectroot | (optional) Root redirect when someone visits your domain |
redirect404 | (optional) Custom 404 redirect |
curl --location --request PUT 'http://4dbda.clickthru.ca/api/domain/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"redirectroot": "https:\/\/rootdomain-new.com",
"redirect404": "https:\/\/rootdomain-new.com\/404"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/domain/:id/update",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"PUT",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"redirectroot": "https:\/\/rootdomain-new.com",
"redirect404": "https:\/\/rootdomain-new.com\/404"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "Domain has been updated successfully."
}
http://4dbda.clickthru.ca/api/domain/:id/delete
To delete a domain, you need to send a DELETE request.
curl --location --request DELETE 'http://4dbda.clickthru.ca/api/domain/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/domain/:id/delete",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"DELETE",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "Domain has been deleted successfully."
}
http://4dbda.clickthru.ca/api/splash?limit=2&page=1
To get custom splash pages via the API, you can use this endpoint. You can also filter data (See table for more info).
Parameter | Description |
---|---|
limit | (optional) Per page data result |
page | (optional) Current page request |
curl --location --request GET 'http://4dbda.clickthru.ca/api/splash?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/splash?limit=2&page=1",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"splash": [
{
"id": 1,
"name": "Product 1 Promo",
"date": "2020-11-10 18:00:00"
},
{
"id": 2,
"name": "Product 2 Promo",
"date": "2020-11-10 18:10:00"
}
]
}
}
http://4dbda.clickthru.ca/api/overlay?limit=2&page=1
To get cta overlays via the API, you can use this endpoint. You can also filter data (See table for more info).
Parameter | Description |
---|---|
limit | (optional) Per page data result |
page | (optional) Current page request |
curl --location --request GET 'http://4dbda.clickthru.ca/api/overlay?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/overlay?limit=2&page=1",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"cta": [
{
"id": 1,
"type": "message",
"name": "Product 1 Promo",
"date": "2020-11-10 18:00:00"
},
{
"id": 2,
"type": "contact",
"name": "Contact Page",
"date": "2020-11-10 18:10:00"
}
]
}
}
http://4dbda.clickthru.ca/api/urls?limit=2&page=1&order=date
To get your links via the API, you can use this endpoint. You can also filter data (See table for more info).
Parameter | Description |
---|---|
limit | (optional) Per page data result |
page | (optional) Current page request |
order | (optional) Sort data between date or click |
curl --location --request GET 'http://4dbda.clickthru.ca/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 =>"http://4dbda.clickthru.ca/api/urls?limit=2&page=1&order=date",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"urls": [
{
"id": 2,
"alias": "google",
"shorturl": "http:\/\/4dbda.clickthru.ca\/google",
"longurl": "https:\/\/google.com",
"clicks": 0,
"title": "Google",
"description": "",
"date": "2020-11-10 18:01:43"
},
{
"id": 1,
"alias": "googlecanada",
"shorturl": "http:\/\/4dbda.clickthru.ca\/googlecanada",
"longurl": "https:\/\/google.ca",
"clicks": 0,
"title": "Google Canada",
"description": "",
"date": "2020-11-10 18:00:25"
}
]
}
}
http://4dbda.clickthru.ca/api/url/:id
To get details for a single link via the API, you can use this endpoint.
curl --location --request GET 'http://4dbda.clickthru.ca/api/url/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/url/:id",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"details": {
"id": 1,
"shorturl": "http:\/\/4dbda.clickthru.ca\/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
}
}
}
http://4dbda.clickthru.ca/api/url/add
To shorten a link, you need to send a valid data in JSON via a POST request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
Parameter | Description |
---|---|
url | (required) Long URL to shorten. |
custom | (optional) Custom alias instead of random alias. |
type | (optional) Redirection type [direct, frame, splash], onlyidfor custom splash page oroverlay-idfor cta pages |
password | (optional) Password protection |
domain | (optional) Custom Domain |
expiry | (optional) Expiration for the link example 2021-09-28 23:11:16 |
geotarget | (optional) Geo targeting data |
devicetarget | (optional) Device targeting data |
metatitle | (optional) Meta title |
metadescription | (optional) Meta description |
curl --location --request POST 'http://4dbda.clickthru.ca/api/url/add' \
--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",
"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 =>"http://4dbda.clickthru.ca/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",
),
CURLOPT_POSTFIELDS =>'{
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"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;
{
"error": 0,
"id": 3,
"shorturl": "http:\/\/4dbda.clickthru.ca\/google"
}
http://4dbda.clickthru.ca/api/url/:id/update
To update a link, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
Parameter | Description |
---|---|
url | (required) Long URL to shorten. |
custom | (optional) Custom alias instead of random alias. |
type | (optional) Redirection type [direct, frame, splash] |
password | (optional) Password protection |
domain | (optional) Custom Domain |
expiry | (optional) Expiration for the link example 2021-09-28 23:11:16 |
geotarget | (optional) Geo targeting data |
devicetarget | (optional) Device targeting data |
curl --location --request PUT 'http://4dbda.clickthru.ca/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",
"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 =>"http://4dbda.clickthru.ca/api/url/: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 =>'{
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"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;
{
"error": 0,
"id": 3,
"short": "http:\/\/4dbda.clickthru.ca\/google"
}
http://4dbda.clickthru.ca/api/url/:id/delete
To delete a link, you need to send a DELETE request.
curl --location --request DELETE 'http://4dbda.clickthru.ca/api/url/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/url/:id/delete",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"DELETE",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "Link has been deleted successfully"
}
http://4dbda.clickthru.ca/api/pixels?limit=2&page=1
To get your pixels codes via the API, you can use this endpoint. You can also filter data (See table for more info).
Parameter | Description |
---|---|
limit | (optional) Per page data result |
page | (optional) Current page request |
curl --location --request GET 'http://4dbda.clickthru.ca/api/pixels?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/pixels?limit=2&page=1",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"pixels": [
{
"id": 1,
"type": "gtmpixel",
"name": "GTM Pixel",
"tag": "GA-123456789",
"date": "2020-11-10 18:00:00"
},
{
"id": 2,
"type": "twitterpixel",
"name": "Twitter Pixel",
"tag": "1234567",
"date": "2020-11-10 18:10:00"
}
]
}
}
http://4dbda.clickthru.ca/api/pixel/add
A pixel can be created using this endpoint. You need to send the pixel type and the tag.
Parameter | Description |
---|---|
type | (required) gtmpixel | gapixel | fbpixel | adwordspixel | linkedinpixel | twitterpixel | adrollpixel | quorapixel | pinterest | bing | snapchat | reddit |
name | (required) Custom name for your pixel |
tag | (required) The tag for the pixel |
curl --location --request POST 'http://4dbda.clickthru.ca/api/pixel/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "gtmpixel",
"name": "My GTM",
"tag": "GTM-ABCDE"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/pixel/add",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"POST",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"type": "gtmpixel",
"name": "My GTM",
"tag": "GTM-ABCDE"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"id": 1
}
http://4dbda.clickthru.ca/api/pixel/:id/update
To update a pixel, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
Parameter | Description |
---|---|
name | (optional) Custom name for your pixel |
tag | (required) The tag for the pixel |
curl --location --request PUT 'http://4dbda.clickthru.ca/api/pixel/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "My GTM",
"tag": "GTM-ABCDE"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/pixel/:id/update",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"PUT",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"name": "My GTM",
"tag": "GTM-ABCDE"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "Pixel has been updated successfully."
}
http://4dbda.clickthru.ca/api/pixel/:id/delete
To delete a pixel, you need to send a DELETE request.
curl --location --request DELETE 'http://4dbda.clickthru.ca/api/pixel/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/pixel/:id/delete",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"DELETE",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "Pixel has been deleted successfully."
}
http://4dbda.clickthru.ca/api/qr?limit=2&page=1
To get your QR codes via the API, you can use this endpoint. You can also filter data (See table for more info).
Parameter | Description |
---|---|
limit | (optional) Per page data result |
page | (optional) Current page request |
curl --location --request GET 'http://4dbda.clickthru.ca/api/qr?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/qr?limit=2&page=1",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"qrs": [
{
"id": 2,
"link": "http:\/\/4dbda.clickthru.ca\/qr\/a2d5e",
"scans": 0,
"name": "Google",
"date": "2020-11-10 18:01:43"
},
{
"id": 1,
"link": "http:\/\/4dbda.clickthru.ca\/qr\/b9edfe",
"scans": 5,
"name": "Google Canada",
"date": "2020-11-10 18:00:25"
}
]
}
}
http://4dbda.clickthru.ca/api/qr/:id
To get details for a single QR code via the API, you can use this endpoint.
curl --location --request GET 'http://4dbda.clickthru.ca/api/qr/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/qr/:id",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"details": {
"id": 1,
"link": "http:\/\/4dbda.clickthru.ca\/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
}
}
}
http://4dbda.clickthru.ca/api/qr/add
To create a QR Code, you need to send a valid data in JSON via a POST request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
Parameter | Description |
---|---|
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) RGB color e.g. rgb(255,255,255) |
foreground | (optional) RGB color e.g. rgb(0,0,0) |
logo | (optional) Path to the logo either png or jpg |
curl --location --request POST 'http://4dbda.clickthru.ca/api/qr/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/qr/add",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"POST",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"id": 3,
"link": "http:\/\/4dbda.clickthru.ca\/qr\/a58f79"
}
http://4dbda.clickthru.ca/api/qr/:id/update
To update a QR Code, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
Parameter | Description |
---|---|
data | (required) Data to be embedded inside the QR code. The data can be string or array depending on the type |
background | (optional) RGB color e.g. rgb(255,255,255) |
foreground | (optional) RGB color e.g. rgb(0,0,0) |
logo | (optional) Path to the logo either png or jpg |
curl --location --request PUT 'http://4dbda.clickthru.ca/api/qr/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/qr/:id/update",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"PUT",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "QR has been updated successfully."
}
http://4dbda.clickthru.ca/api/qr/:id/delete
To delete a QR code, you need to send a DELETE request.
curl --location --request DELETE 'http://4dbda.clickthru.ca/api/qr/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/qr/:id/delete",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"DELETE",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "QR Code has been deleted successfully."
}
This endpoint is only accessible by users with admin privileges.
http://4dbda.clickthru.ca/api/plans
Get a list of all plans on the platform.
curl --location --request GET 'http://4dbda.clickthru.ca/api/plans' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/plans",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"data": [
{
"id": 2,
"name": "Business",
"free": false,
"prices": {
"monthly": 9.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"
}
}
}
]
}
http://4dbda.clickthru.ca/api/plan/:planid/user/:userid
To subscribe a user to plan, send a PUT request to this endpoint with the plan id and user id. The type of subscription and the expiration date will need to be specified. If the expiration date is not specified, the date will be adjusted according to the type.
Parameter | Description |
---|---|
type | monthly | yearly | lifetime |
expiration | (optional) Expiration date of the plan e.g. 2025-01-12 20:37:52 |
curl --location --request PUT 'http://4dbda.clickthru.ca/api/plan/:planid/user/:userid' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "monthly",
"expiration": "2025-01-12 20:37:52"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/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": "2025-01-12 20:37:52"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "User has been subscribed to this plan."
}
This endpoint is only accessible by users with admin privileges.
http://4dbda.clickthru.ca/api/users?filter=free
Get a list of all users on the platform. Data can be filtered by sending a filter parameter in the url.
Parameter | Description |
---|---|
filter | admin | free | pro |
curl --location --request GET 'http://4dbda.clickthru.ca/api/users?filter=free' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/users?filter=free",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"data": [
{
"id": 2,
"email": "sample2@domain.com",
"username": "sample2user",
"avatar": "https:\\\/\\\/domain.com\/content\/avatar2.png",
"status": "free",
"planid": 1,
"expires": null,
"registered": "2020-11-10 18:01:43",
"apikey": "ABC123DEF456"
},
{
"id": 1,
"email": "sample@domain.com",
"username": "sampleuser",
"avatar": "https:\\\/\\\/domain.com\/content\/avatar.png",
"status": "pro",
"planid": 2,
"expires": "2022-11-15 15:00:00",
"registered": "2020-11-10 18:01:43",
"apikey": "ABC123DEF456"
}
]
}
http://4dbda.clickthru.ca/api/user/:id
Get data for a single user.
curl --location --request GET 'http://4dbda.clickthru.ca/api/user/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/user/:id",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"GET",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"data": {
"id": 2,
"email": "sample2@domain.com",
"username": "sample2user",
"avatar": "https:\\\/\\\/domain.com\/content\/avatar2.png",
"status": "free",
"planid": 1,
"expires": null,
"registered": "2020-11-10 18:01:43",
"apikey": "ABC123DEF456"
}
}
http://4dbda.clickthru.ca/api/user/add
To create a user, use this endpoint and send the following information as JSON.
Parameter | Description |
---|---|
username | (required) User's username. Needs to be valid. |
(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 'http://4dbda.clickthru.ca/api/user/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "user",
"password": "1234567891011",
"email": "demo@yourwebsite.com",
"planid": 1,
"expiration": "2020-11-20 11:00:00"
}'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/user/add",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"POST",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
CURLOPT_POSTFIELDS =>'{
"username": "user",
"password": "1234567891011",
"email": "demo@yourwebsite.com",
"planid": 1,
"expiration": "2020-11-20 11:00:00"
}',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "User has been registered.",
"data": {
"id": 3,
"email": "demo@yourwebsite.com",
"username": "user"
}
}
http://4dbda.clickthru.ca/api/user/:id/delete
To delete a user, use this endpoint.
curl --location --request DELETE 'http://4dbda.clickthru.ca/api/user/:id/delete' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>"http://4dbda.clickthru.ca/api/user/:id/delete",
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_ENCODING =>"",
CURLOPT_MAXREDIRS =>2,
CURLOPT_TIMEOUT =>10,
CURLOPT_FOLLOWLOCATION =>true,
CURLOPT_CUSTOMREQUEST =>"DELETE",
CURLOPT_HTTPHEADER =>array(
"Authorization: Bearer YOURAPIKEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"error": 0,
"message": "User has been deleted."
}