curl --request GET \
--url https://api.unif.dev/v1/trackers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.unif.dev/v1/trackers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.unif.dev/v1/trackers', 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.unif.dev/v1/trackers",
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: Bearer <token>"
],
]);
$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.unif.dev/v1/trackers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.unif.dev/v1/trackers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unif.dev/v1/trackers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"has_more": true,
"data": [
{
"id": "trk_01k3m9x7v2q8r4t6y0b1n5d7fa",
"object": "tracker",
"name": "<string>",
"schedule": "hourly",
"enabled": true,
"conditions": [
{
"metric": "revenue",
"change": "pct",
"over": "1d",
"gte": 123,
"lte": 123
}
],
"webhook_id": "<string>",
"last_run_at": "2023-11-07T05:31:56Z",
"next_run_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}
],
"next_cursor": "<string>",
"total_count": 123,
"period": {
"start": "2023-12-25",
"end": "2023-12-25",
"granularity": "day",
"adjusted": true
},
"currency": "<string>"
}List trackers
curl --request GET \
--url https://api.unif.dev/v1/trackers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.unif.dev/v1/trackers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.unif.dev/v1/trackers', 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.unif.dev/v1/trackers",
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: Bearer <token>"
],
]);
$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.unif.dev/v1/trackers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.unif.dev/v1/trackers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unif.dev/v1/trackers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"has_more": true,
"data": [
{
"id": "trk_01k3m9x7v2q8r4t6y0b1n5d7fa",
"object": "tracker",
"name": "<string>",
"schedule": "hourly",
"enabled": true,
"conditions": [
{
"metric": "revenue",
"change": "pct",
"over": "1d",
"gte": 123,
"lte": 123
}
],
"webhook_id": "<string>",
"last_run_at": "2023-11-07T05:31:56Z",
"next_run_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}
],
"next_cursor": "<string>",
"total_count": 123,
"period": {
"start": "2023-12-25",
"end": "2023-12-25",
"granularity": "day",
"adjusted": true
},
"currency": "<string>"
}Authorizations
Send your workspace API key as a bearer token:
Authorization: Bearer unif_sk_live_...
Keys are scoped to a single workspace. See Authentication.
Query Parameters
How many objects to return per page.
1 <= x <= 100The next_cursor from a previous response.
Response
Trackers.
"list"Whether another page exists.
Hide child attributes
Hide child attributes
"trk_01k3m9x7v2q8r4t6y0b1n5d7fa"
"tracker"hourly, daily, weekly Hide child attributes
Hide child attributes
Pass to cursor to fetch the next page. Null on the last page.
Approximate number of matches. Null when the result set is too large to count exactly.
The concrete window a request was measured over, after any preset was expanded and any channel-specific snapping was applied. Always read this rather than assuming you got back exactly the dates you asked for.
Hide child attributes
Hide child attributes
The smallest bucket the channel reports for this market.
day, week, month True when the requested dates were snapped to the nearest boundary the channel supports. See Periods and currency.
Was this page helpful?