消費量分析を取得する
curl --request GET \
--url https://server.codeium.com/api/v2alpha/analytics/consumption \
--header 'Authorization: Bearer <token>'import requests
url = "https://server.codeium.com/api/v2alpha/analytics/consumption"
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/consumption', 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/consumption",
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/consumption"
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/consumption")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.codeium.com/api/v2alpha/analytics/consumption")
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": [
{
"timestamp": "2026-01-15T00:00:00.000Z",
"user_id": "user_abc123",
"user_email": "alice@example.com",
"consumption": {
"prompt_credits": 1250,
"flex_credits": 340,
"message_count": 87
}
},
{
"timestamp": "2026-01-15T00:00:00.000Z",
"user_id": "user_def456",
"user_email": "bob@example.com",
"consumption": {
"prompt_credits": 980,
"flex_credits": 150,
"message_count": 52
}
}
],
"pagination": {
"next_page_cursor": null
},
"metadata": {
"billing_strategy": "CREDITS",
"data_freshness": "2026-01-16T03:00:00.000Z",
"query_time_ms": 1423,
"team_id": "team_abc123"
}
}
アナリティクス API
消費量を取得
柔軟なフィルタリング、グループ化、ページネーションを使用して、クレジットまたはACUの消費量分析をクエリします。
GET
/
api
/
v2alpha
/
analytics
/
consumption
消費量分析を取得する
curl --request GET \
--url https://server.codeium.com/api/v2alpha/analytics/consumption \
--header 'Authorization: Bearer <token>'import requests
url = "https://server.codeium.com/api/v2alpha/analytics/consumption"
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/consumption', 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/consumption",
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/consumption"
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/consumption")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.codeium.com/api/v2alpha/analytics/consumption")
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": [
{
"timestamp": "2026-01-15T00:00:00.000Z",
"user_id": "user_abc123",
"user_email": "alice@example.com",
"consumption": {
"prompt_credits": 1250,
"flex_credits": 340,
"message_count": 87
}
},
{
"timestamp": "2026-01-15T00:00:00.000Z",
"user_id": "user_def456",
"user_email": "bob@example.com",
"consumption": {
"prompt_credits": 980,
"flex_credits": 150,
"message_count": 52
}
}
],
"pagination": {
"next_page_cursor": null
},
"metadata": {
"billing_strategy": "CREDITS",
"data_freshness": "2026-01-16T03:00:00.000Z",
"query_time_ms": 1423,
"team_id": "team_abc123"
}
}
これはv2 エンドポイントで、リクエストボディでサービスキーを使用する v1 Analytics API とは異なり、Bearerトークン認証とクエリパラメータを使用します。詳細は以下のAuthenticationを参照してください。
このエンドポイントはリアルタイムの使用量監視向けではありません。データは1時間単位で集計され、
レート制限も低く設定されています (チームごとに1時間あたり10リクエスト) 。定期レポートや一括エクスポートに利用してください。
認証
Authorization ヘッダーにトークンを含めてください。
Authorization: Bearer <your_token>
請求方式
| 戦略 | 値が設定されるフィールド | 説明 |
|---|---|---|
CREDITS | prompt_credits, flex_credits | 標準的な Enterprise SaaS チーム |
ACU | billed_acus | Agent Compute Units で課金されるチーム |
message_count フィールド (consumption 内) は、請求方式に関係なく常に設定されます。
グループ化と粒度
granularity と group_by を利用して、返されるデータの形式を制御できます。
- 粒度やグループ化の指定なし — 日付範囲全体を集計した単一の行を返します
granularity=daily— 各行にYYYY-MM-DD形式のtimestampが含まれますgranularity=monthly— 各行にYYYY-MM形式のtimestampが含まれますgroup_by=user— 各行にuser_idとuser_emailが含まれますgroup_by=user,model_uid— 各行にuser_id、user_email、model_uidが含まれますgroup_by=ide— 各行にideが含まれますgroup_by=ide,ide_version— 各行にideとide_versionが含まれます (ide_versionでグループ化するには、ideも含める必要があります)group_by=os— 各行にdarwin(macOS)、windows、linuxなどのosが含まれます
ページネーション
pagination オブジェクトには next_page_cursor が含まれます。次のページを取得するには、これを page_cursor クエリ
パラメータとして渡します。
ページカーソルは 24 時間で失効します。後続のページリクエストは、レート制限に対する新たなクエリとしてはカウントされません。
キャッシュ
ETag ヘッダーが含まれます。不要なデータ転送を避けるには、以前の ETag 値を指定した If-None-Match ヘッダーを含めてください。データが変更されていない場合、サーバーは 304 Not Modified を返します。
レート制限
Retry-After ヘッダーとともに 429 Too Many Requests を返します。
前にクエリした結果のページネーション (next_page_cursor に従うこと) は、この制限にはカウントされません—
カウントされるのは、各レポートに対して初回にクエリする場合のみです。制限値が低く設定されているのは、このエンドポイントが
定期的なレポート用であり、リアルタイムの使用量監視を目的としたものではないためです。承認
ヘッダー
以前のレスポンスの ETag 値。データが変更されていない場合、サーバーは 304 Not Modified を返します。
クエリパラメータ
日付範囲の開始日(この日を含む)。形式は YYYY-MM-DD です。
日付範囲の終了日(この日を含む)。形式は YYYY-MM-DD です。範囲は 90 日を超えてはいけません。
消費量をクエリする対象の product。
利用可能なオプション:
agent 結果をグループ化する時間粒度。指定した場合、各行に timestamp フィールドが含まれます。
省略した場合、結果は日付範囲全体で集計されます。
利用可能なオプション:
daily, monthly 結果のグループ化に利用するディメンションのカンマ区切りリスト。対応しているディメンション:
user— 各行にuser_idとuser_emailが含まれますmodel_uid— 各行にmodel_uidが含まれますide— 各行にideが含まれますide_version— 各行にide_versionが含まれます。これを含めるには、ideも含める必要がありますos— 各行にosが含まれます
結果の絞り込み対象とする model UID のカンマ区切りリスト。
結果を特定の group に属する user に絞り込みます。サービスキーにはこの group へのアクセス権が必要です。
結果を特定の user(auth UID)に絞り込みます。
1 ページあたりに返す最大行数。
必須範囲:
1 <= x <= 10000次のページを取得するための、以前のレスポンスの pagination.next_page_cursor に含まれる不透明なカーソル。

