curl --request GET \
--url https://server.codeium.com/api/v2alpha/analytics/active-users \
--header 'Authorization: Bearer <token>'import requests
url = "https://server.codeium.com/api/v2alpha/analytics/active-users"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://server.codeium.com/api/v2alpha/analytics/active-users', 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://server.codeium.com/api/v2alpha/analytics/active-users",
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://server.codeium.com/api/v2alpha/analytics/active-users"
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://server.codeium.com/api/v2alpha/analytics/active-users")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.codeium.com/api/v2alpha/analytics/active-users")
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{
"data": [
{
"active_users": 142
}
],
"pagination": {
"next_page_cursor": null
},
"metadata": {
"data_freshness": "2026-06-16T03:00:00.000Z",
"query_time_ms": 612,
"team_id": "team_abc123"
}
}Aktive Nutzer abrufen
Fragen Sie die Anzahl unterschiedlicher aktiver Nutzer für Ihr Team ab, mit optionaler zeitlicher Granularität und Gruppierung pro Nutzer.
curl --request GET \
--url https://server.codeium.com/api/v2alpha/analytics/active-users \
--header 'Authorization: Bearer <token>'import requests
url = "https://server.codeium.com/api/v2alpha/analytics/active-users"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://server.codeium.com/api/v2alpha/analytics/active-users', 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://server.codeium.com/api/v2alpha/analytics/active-users",
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://server.codeium.com/api/v2alpha/analytics/active-users"
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://server.codeium.com/api/v2alpha/analytics/active-users")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.codeium.com/api/v2alpha/analytics/active-users")
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{
"data": [
{
"active_users": 142
}
],
"pagination": {
"next_page_cursor": null
},
"metadata": {
"data_freshness": "2026-06-16T03:00:00.000Z",
"query_time_ms": 612,
"team_id": "team_abc123"
}
}Authentifizierung
Dieser Endpunkt verwendet die Bearer-Token-Authentifizierung. Geben Sie Ihr Token imAuthorization-Header an:
Authorization: Bearer <your_token>
Was als aktiver Nutzer gilt
Ein Nutzer wird für ein bestimmtes Zeitintervall als aktiv gezählt, wenn darin ein Abrechnungsereignis auftritt. Dasactive_users-Feld gibt die Anzahl der eindeutigen Nutzer an.
Gruppierung und Granularität
Verwenden Siegranularity und group_by, um die Struktur der zurückgegebenen Daten zu steuern:
- Keine Granularität oder Gruppierung — gibt eine einzelne Zeile mit der Gesamtzahl aktiver Nutzer für den gesamten Datumsbereich zurück
granularity=daily— jede Zeile enthält einentimestampim FormatYYYY-MM-DD(täglich aktive Nutzer)granularity=monthly— jede Zeile enthält einentimestampim FormatYYYY-MM(monatlich aktive Nutzer)group_by=user— gibt eine Zeile pro aktivem Nutzer mit eineruser_idzurück;active_usersist in jeder Zeile1
group_by nur user. Andere Dimensionen (model_uid, ide, os) sind hier nicht gültig.Paginierung
Die Ergebnisse sind paginiert, mit einer Standardseitengröße von 1.000 Zeilen (max. 10.000). Wenn weitere Ergebnisse verfügbar sind, enthält die Antwort im Objektpagination einen next_page_cursor. Übergeben Sie ihn als query-Parameter page_cursor,
um die nächste Seite abzurufen.
Seiten-Cursor laufen nach 24 Stunden ab. Eine nachfolgende Seitenanfrage zählt nicht als neue Abfrage für Ihr Ratenlimit.
Ratenlimits
Für diesen Endpunkt gilt ein Limit von 10 Anfragen pro Stunde pro Team. Wenn Sie dieses Limit überschreiten, gibt der Server429 Too Many Requests mit einem Retry-After-Header zurück.
Die Paginierung einer früheren Abfrage (durch Folgen eines next_page_cursor) wird nicht auf dieses Limit angerechnet —
nur die erste Abfrage für jeden Bericht. Das niedrige Limit spiegelt wider, dass dieser Endpunkt für
regelmäßige Berichterstattung gedacht ist, nicht für die Nutzungsüberwachung in Echtzeit.Autorisierungen
Ein Service-Schlüssel mit der Berechtigung Analytics Read, übergeben als Bearer-Token im Header Authorization.
Erstellen Sie einen Service-Schlüssel in Ihren Team Settings im Abschnitt „Service Keys“.
Abfrageparameter
Beginn des Datumsbereichs (einschließlich) im Format YYYY-MM-DD.
Ende des Datumsbereichs (einschließlich) im Format YYYY-MM-DD. Der Bereich darf 90 Tage nicht überschreiten.
Produkt, für das aktive Nutzer abgefragt werden sollen.
agent Zeitgranularität für die Gruppierung der Ergebnisse. Wenn angegeben, enthält jede Zeile ein Feld timestamp.
Wenn nicht angegeben, wird die Anzahl aktiver Nutzer über den gesamten Datumsbereich aggregiert.
daily, monthly Dimension, nach der Ergebnisse gruppiert werden. Der Endpunkt für aktive Nutzer unterstützt nur user; dabei wird
pro aktivem Nutzer eine Zeile zurückgegeben (jeweils mit active_users = 1).
user Kommagetrennte Liste von Modell-UIDs, auf die Ergebnisse gefiltert werden sollen.
Ergebnisse auf Nutzer in einer bestimmten Gruppe filtern. Der Service-Schlüssel muss Zugriff auf diese Gruppe haben.
Ergebnisse auf einen bestimmten Nutzer (Auth-UID) filtern.
Maximale Anzahl von Zeilen, die pro Seite zurückgegeben werden.
1 <= x <= 10000Opaker Cursor aus pagination.next_page_cursor einer vorherigen Antwort, um die nächste Seite abzurufen.

