Overview
Get Live Visitors
Returns the count of unique active sessions within the specified time window. Useful for displaying real-time visitor counts.
GET /api/sites/:site/live-user-countReturns the count of unique active sessions within the specified time window. Useful for displaying real-time visitor counts.
Path Parameters
Prop
Type
Query Parameters
Prop
Type
Response
Prop
Type
Time Window Guide
| Minutes | Use Case |
|---|---|
1 | Very active visitors (currently browsing) |
5 | Standard "live" count (default) |
15 | Recently active visitors |
30 | Short-term engagement window |
curl -X GET "https://app.rybbit.io/api/sites/123/live-user-count?minutes=5" \
-H "Authorization: Bearer your_api_key_here"const response = await fetch(
'https://app.rybbit.io/api/sites/123/live-user-count?minutes=5',
{
headers: {
'Authorization': 'Bearer your_api_key_here'
}
}
);
const { count } = await response.json();
console.log(`Live visitors: ${count}`);import requests
response = requests.get(
'https://app.rybbit.io/api/sites/123/live-user-count',
params={'minutes': 5},
headers={
'Authorization': 'Bearer your_api_key_here'
}
)
data = response.json()
print(f"Live visitors: {data['count']}")$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.rybbit.io/api/sites/123/live-user-count?minutes=5');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_api_key_here'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo "Live visitors: " . $data['count'];require 'net/http'
require 'json'
uri = URI('https://app.rybbit.io/api/sites/123/live-user-count?minutes=5')
req = Net::HTTP::Get.new(uri)
req['Authorization'] = 'Bearer your_api_key_here'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
puts "Live visitors: #{data['count']}"req, _ := http.NewRequest("GET", "https://app.rybbit.io/api/sites/123/live-user-count?minutes=5", nil)
req.Header.Set("Authorization", "Bearer your_api_key_here")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Printf("Live visitors: %v\n", data["count"])let client = reqwest::Client::new();
let res = client
.get("https://app.rybbit.io/api/sites/123/live-user-count?minutes=5")
.header("Authorization", "Bearer your_api_key_here")
.send()
.await?;
let data: serde_json::Value = res.json().await?;
println!("Live visitors: {}", data["count"]);HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://app.rybbit.io/api/sites/123/live-user-count?minutes=5"))
.header("Authorization", "Bearer your_api_key_here")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer your_api_key_here");
var response = await client.GetAsync("https://app.rybbit.io/api/sites/123/live-user-count?minutes=5");
var data = await response.Content.ReadAsStringAsync();{
"count": 42
}Polling Example
async function updateLiveCount() {
const response = await fetch(
'https://app.rybbit.io/api/sites/123/live-user-count?minutes=5',
{
headers: {
'Authorization': 'Bearer your_api_key'
}
}
);
const { count } = await response.json();
document.getElementById('live-visitors')
.textContent = count;
}
// Update every 15 seconds
setInterval(updateLiveCount, 15000);