Link Statistics
curl --request GET \
--url https://api.taap.it/v1/stats/links/{link_id} \
--header 'Authorization: <authorization>'import requests
url = "https://api.taap.it/v1/stats/links/{link_id}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.taap.it/v1/stats/links/{link_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.taap.it/v1/stats/links/{link_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.taap.it/v1/stats/links/{link_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.taap.it/v1/stats/links/{link_id}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.taap.it/v1/stats/links/{link_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"link_id": "<string>",
"last_updated": "<string>",
"click_date": "<string>",
"total_clicks": 123,
"unique_visitors": 123,
"scans_only": 123,
"clicks_only": 123,
"chrome_clicks": 123,
"ios_clicks": 123,
"android_clicks": 123,
"os_stats": {
"{os_name}": 123
},
"city_stats": {
"{city_name}": 123
},
"os_version_stats": {
"{version}": 123
},
"lang_stats": {
"{language_code}": 123
},
"device_stats": {
"mobile": 123,
"desktop": 123,
"tablet": 123
},
"browser_stats": {
"{browser_name}": 123
},
"country_stats": {
"{country_code}": 123
},
"device_and_os_stats": {
"{device_os}": 123
},
"app_stats": {
"{app_name}": 123
},
"device_type_stats": {
"{device_type}": 123
},
"from_app_stats": {
"true": 123,
"false": 123
},
"continent_stats": {
"{continent_name}": 123
}
}Stats API
Link Statistics
Retrieve detailed statistics for a specific link
GET
/
v1
/
stats
/
links
/
{link_id}
Link Statistics
curl --request GET \
--url https://api.taap.it/v1/stats/links/{link_id} \
--header 'Authorization: <authorization>'import requests
url = "https://api.taap.it/v1/stats/links/{link_id}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.taap.it/v1/stats/links/{link_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.taap.it/v1/stats/links/{link_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.taap.it/v1/stats/links/{link_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.taap.it/v1/stats/links/{link_id}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.taap.it/v1/stats/links/{link_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"link_id": "<string>",
"last_updated": "<string>",
"click_date": "<string>",
"total_clicks": 123,
"unique_visitors": 123,
"scans_only": 123,
"clicks_only": 123,
"chrome_clicks": 123,
"ios_clicks": 123,
"android_clicks": 123,
"os_stats": {
"{os_name}": 123
},
"city_stats": {
"{city_name}": 123
},
"os_version_stats": {
"{version}": 123
},
"lang_stats": {
"{language_code}": 123
},
"device_stats": {
"mobile": 123,
"desktop": 123,
"tablet": 123
},
"browser_stats": {
"{browser_name}": 123
},
"country_stats": {
"{country_code}": 123
},
"device_and_os_stats": {
"{device_os}": 123
},
"app_stats": {
"{app_name}": 123
},
"device_type_stats": {
"{device_type}": 123
},
"from_app_stats": {
"true": 123,
"false": 123
},
"continent_stats": {
"{continent_name}": 123
}
}Request:
Response:
cURL
curl -X GET 'https://api.taap.it/v1/stats/links/link_987654321?start_date=2024-01-01T00:00:00Z&end_date=2024-01-31T23:59:59Z&max_days=30' \
-H 'Authorization: Bearer taapit_your_api_key_here'
[
{
"id": "stat_123456789",
"link_id": "link_987654321",
"last_updated": "2024-01-15T10:30:00Z",
"click_date": "2024-01-15",
"total_clicks": 45,
"unique_visitors": 38,
"scans_only": 5,
"clicks_only": 40,
"chrome_clicks": 25,
"ios_clicks": 15,
"android_clicks": 5,
"os_stats": {
"iOS": 15,
"Android": 5,
"Windows": 20,
"macOS": 5
},
"city_stats": {
"New York": 10,
"Los Angeles": 8,
"Toronto": 5
},
"os_version_stats": {
"iOS 17.0": 10,
"iOS 16.5": 5,
"Android 13": 3,
"Android 12": 2
},
"lang_stats": {
"en": 30,
"fr": 8,
"es": 7
},
"device_stats": {
"mobile": 28,
"desktop": 15,
"tablet": 2
},
"browser_stats": {
"Chrome": 32,
"Safari": 8,
"Firefox": 3,
"Edge": 2
},
"country_stats": {
"US": 25,
"CA": 12,
"UK": 8
},
"device_and_os_stats": {
"iPhone iOS": 15,
"Android Phone": 5,
"Windows Desktop": 20,
"Mac Desktop": 5
},
"app_stats": {
"Safari": 8,
"Chrome Mobile": 15,
"Chrome Desktop": 17
},
"device_type_stats": {
"smartphone": 20,
"desktop": 20,
"tablet": 5
},
"from_app_stats": {
"true": 8,
"false": 37
},
"continent_stats": {
"North America": 37,
"Europe": 8
}
}
]
Authorization
string
required
Bearer token for API authentication. Format:
Bearer YOUR_API_KEYPath Parameters
string
required
Unique identifier for the link
Query Parameters
string
Start date for statistics (ISO 8601 format, e.g., 2024-01-01T00:00:00Z)
string
End date for statistics (ISO 8601 format, e.g., 2024-01-31T23:59:59Z)
integer
Maximum number of days to retrieve statistics for (minimum: 1, maximum: 30)
Response Fields
string
required
Unique identifier for the statistics record
string
required
Unique identifier for the link
string
required
ISO 8601 timestamp when the statistics were last updated
string
required
Date for the statistics (YYYY-MM-DD format)
integer
required
Total number of clicks on this date
integer
required
Number of unique visitors on this date
integer
required
Number of QR code scans without clicks on this date
integer
required
Number of direct clicks without scans on this date
integer
required
Number of clicks from Chrome browser on this date
integer
required
Number of clicks from iOS devices on this date
integer
required
Number of clicks from Android devices on this date
object
Statistics broken down by operating system
Show Operating system statistics
Show Operating system statistics
integer
required
Number of clicks from this operating system (OS name as key)
object
Statistics broken down by city
Show City statistics
Show City statistics
integer
required
Number of clicks from this city (city name as key)
object
Statistics broken down by operating system version
Show OS version statistics
Show OS version statistics
integer
required
Number of clicks from this OS version (version as key)
object
Statistics broken down by language
Show Language statistics
Show Language statistics
integer
required
Number of clicks from this language (language code as key)
object
object
Statistics broken down by browser
Show Browser statistics
Show Browser statistics
integer
required
Number of clicks from this browser (browser name as key)
object
Statistics broken down by country
Show Country statistics
Show Country statistics
integer
required
Number of clicks from this country (country code as key)
object
Statistics broken down by device and operating system combination
Show Device and OS statistics
Show Device and OS statistics
integer
required
Number of clicks from this device-OS combination (device-OS as key)
object
Statistics broken down by application
Show Application statistics
Show Application statistics
integer
required
Number of clicks from this application (app name as key)
object
Statistics broken down by device type (detailed)
Show Device type statistics
Show Device type statistics
integer
required
Number of clicks from this device type (device type as key)
object