curl --request GET \
--url https://calibri.io/api/v2/pythia/public/categoriesimport requests
url = "https://calibri.io/api/v2/pythia/public/categories"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://calibri.io/api/v2/pythia/public/categories', 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://calibri.io/api/v2/pythia/public/categories",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://calibri.io/api/v2/pythia/public/categories"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://calibri.io/api/v2/pythia/public/categories")
.asString();require 'uri'
require 'net/http'
url = URI("https://calibri.io/api/v2/pythia/public/categories")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"children": "<array>",
"event_count": 492,
"frequencies": [
{
"event_count": 8,
"label": "5 Min",
"value": "five_min"
}
],
"icon": "SportsSoccer",
"id": 10,
"label": "Sports",
"slug": "sports"
}
]List browse categories
The two-level browse tree — Sports > Soccer — with active-event
counts. A parent’s count includes its children’s.
Includes categories with no live events; retired ones are omitted.
Use a slug with GET /public/events?category= or ?subcategory=.
curl --request GET \
--url https://calibri.io/api/v2/pythia/public/categoriesimport requests
url = "https://calibri.io/api/v2/pythia/public/categories"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://calibri.io/api/v2/pythia/public/categories', 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://calibri.io/api/v2/pythia/public/categories",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://calibri.io/api/v2/pythia/public/categories"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://calibri.io/api/v2/pythia/public/categories")
.asString();require 'uri'
require 'net/http'
url = URI("https://calibri.io/api/v2/pythia/public/categories")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"children": "<array>",
"event_count": 492,
"frequencies": [
{
"event_count": 8,
"label": "5 Min",
"value": "five_min"
}
],
"icon": "SportsSoccer",
"id": 10,
"label": "Sports",
"slug": "sports"
}
]Response
OK
Present on top-level nodes; always non-nil so a client can range without a nil check.
Active events beneath this node, counted the way the FEED counts them: a rolling series contributes ONE, not one per window. For a parent it includes its children's, because that is what the number beside a browse chip means.
Counted from the same events the feed serves rather than from the database, so the two cannot disagree. Counting rows made the Crypto chip read 27 and open onto 4 cards — the feed collapses a five-minute series to the single window a member can act on, and a count that ignores that is a promise the page does not keep.
492
Cadence facets within this node, present ones only, already ordered shortest-first. The browse sidebar is built from these.
Show child attributes
Show child attributes
"SportsSoccer"
10
"Sports"
"sports"