ToAPIsToAPIs
アカウント照会使用量

使用量集計の取得

システムアクセストークンで自身のアカウントデータを取得

GET
/api/v1/account/usage/summary

中国本土のユーザー向け: 中国本土のユーザーは https://toapis.cn を API エンドポイント (Base URL)としてご利用ください. 本ドキュメント内の例では https://toapis.com を https://toapis.cn に置き換えてください.

認証, ページ分割, エラーは利用ガイドを参照してください.

動作

最大範囲は 31 日です. 明細は作成時刻と ID の降順. 集計は日付昇順, モデルの UTF-8 バイト順, またはキーの null グループの後に数値 ID 昇順です. 各項目には対応する day, model, api_key_id のみ含みます. record_count はログ行数で完全なリクエスト件数ではありません. billing_phase は pre_consumed, settled, unknown で最終課金状態とは異なります. trace は元のリクエストです. 任意の追跡情報と上流合計 token は null になる場合がありますが, 金額と入出力 token は保持されます. records_mutable=true, refund_accounting=not_complete, consistency=eventual. 精算や返金で過去の行が変わり, 空の結果は消費ゼロを証明しません. 一方向同期は更新の取得を保証しません.

認証

Authorizationstringヘッダー必須

Bearer YOUR_SYSTEM_ACCESS_TOKEN を使用します. モデル API キーは使用できません. X-User-Id は不要です.

パラメータ

fromstringクエリ必須

タイムゾーン付き RFC 3339 の開始時刻. この時刻を含みます. to と一緒に指定します.

制約: date-time.

tostringクエリ必須

タイムゾーン付き RFC 3339 の終了時刻. この時刻を含まず, from より後である必要があります.

制約: date-time.

api_key_idstringクエリ

自身のモデル API キーの 10 進 ID 文字列. 他人のキーは 404. 削除済みキーでも自身の過去の使用量を絞り込めます.

制約: pattern=^[1-9][0-9]*$.

modelstringクエリ

モデル ID の完全一致. 使用量では空文字列は空のモデル名に一致します.

制約: maxLength=255.

limitintegerクエリデフォルト: 50

1 ページの最大件数.

制約: minimum=1; maximum=100; 既定値: 50.

cursorstringクエリ

前の next_cursor を変更せずに渡します. フィルターを維持し, 変更時は最初から取得します.

制約: maxLength=2048.

group_bystringクエリデフォルト: day

日付, モデル, API キーで集計します.

制約: day, model, api_key; 既定値: day.

timezonestringクエリデフォルト: UTC

group_by=day の場合のみ指定できます. 他の集計では meta.timezone=null です.

制約: UTC, Asia/Shanghai; 既定値: UTC.

リクエスト例

curl --request GET \
  --url 'https://toapis.com/api/v1/account/usage/summary?from=2026-11-01T00:00:00Z&to=2026-11-02T00:00:00Z&group_by=day&timezone=UTC' \
  --header 'Authorization: Bearer YOUR_SYSTEM_ACCESS_TOKEN'
import requests

response = requests.get(
    "https://toapis.com/api/v1/account/usage/summary",
    headers={"Authorization": "Bearer YOUR_SYSTEM_ACCESS_TOKEN"},
    params={
        "from": "2026-11-01T00:00:00Z",
        "to": "2026-11-02T00:00:00Z",
        "group_by": "day",
        "timezone": "UTC"
    },
    timeout=30,
)
response.raise_for_status()
print(response.json())
const url = new URL("https://toapis.com/api/v1/account/usage/summary");
url.search = new URLSearchParams({
  "from": "2026-11-01T00:00:00Z",
  "to": "2026-11-02T00:00:00Z",
  "group_by": "day",
  "timezone": "UTC"
}).toString();

const response = await fetch(url, {
  headers: { Authorization: "Bearer YOUR_SYSTEM_ACCESS_TOKEN" },
  signal: AbortSignal.timeout(30_000),
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());

レスポンスフィールド

例は架空のデータで, credits_per_usd="100" を仮定しています. 実際の換算にはレスポンスの値を使用してください.

結果は data.items にあります. has_more と next_cursor で次のページを取得します. 最終カーソルは null です. 総件数は返しません.

codeinteger

結果コード. 0 は成功です.

messagestring

成功時は空文字列です. エラーメッセージは翻訳されます.

dataobject

今回の照会結果オブジェクトです.

data.itemsobject[]

現在のページのレコード一覧. 空の場合は [] です.

data.items[].daystring

group_by=day のみの日付グループで, 指定の timezone に従います. 形式は YYYY-MM-DD です.

data.items[].modelstring

group_by=model の場合のみ返すモデルグループです.

data.items[].api_key_idstring | null

group_by=api_key のキーグループ. キーなしの消費は null に集計します.

data.items[].record_countinteger

グループ内の消費ログ行数です. 完全なリクエスト数とは限りません.

data.items[].recorded_cost_usdstring

グループの現在の消費ログ USD 合計. 全返金反映後の純支出ではありません. 精度を保持するため 10 進文字列で返します.

data.items[].recorded_creditsstring

グループの現在の消費ログ credits 合計です. 精度を保持するため 10 進文字列で返します.

data.items[].input_tokensinteger

グループ内の入力 token 合計です.

data.items[].output_tokensinteger

グループ内の出力 token 合計です.

data.items[].unknown_phase_record_countinteger

課金段階が不明なグループ内のログ行数です.

data.has_moreboolean

次のページがあるかを示します.

data.next_cursorstring | null

同じ条件で cursor にそのまま渡します. 最終ページは null です.

data.metaobject

データソース, 照会範囲, 集計基準などのメタデータです.

data.meta.scopestring

照会対象の所有範囲で, 認証された自身のアカウントです. 固定値: "self".

data.meta.fromstring

照会時間範囲の開始時刻を含みます. タイムゾーン付き RFC 3339 形式です.

data.meta.tostring

照会時間範囲の終了時刻は含みません. タイムゾーン付き RFC 3339 形式です.

data.meta.time_basisstring

時間絞り込みと日付集計は消費ログの作成時刻を使います. 固定値: "record_created_at".

data.meta.cost_basisstring

金額は現在の消費ログ値で, 固定された最終請求額ではありません. 固定値: "current_consume_log_amount".

data.meta.refund_accountingstring

返金反映の完全性です. not_complete は完全な純支出台帳ではないことを示します. 固定値: "not_complete".

data.meta.records_mutableboolean

精算や返金で更新されるかを示し, 現在は true です.

data.meta.consistencystring

eventual は結果整合性で, レコードは後で更新される場合があります. 固定値: "eventual".

data.meta.consume_logging_enabledboolean

消費ログの有効状態です. 記録なしは課金ゼロを証明しません.

data.meta.credits_per_usdstring

1 USD あたりの credits 数. 換算にはこの値を使います. 精度を保持するため 10 進文字列で返します.

data.meta.group_bystring

今回の集計単位です.

data.meta.timezonestring | null

日付集計のタイムゾーン. モデルや API キーでの集計は null です.

レスポンス例

{
  "code": 0,
  "message": "",
  "data": {
    "items": [
      {
        "day": "2026-11-01",
        "record_count": 2,
        "recorded_cost_usd": "0.04",
        "recorded_credits": "4",
        "input_tokens": 2000,
        "output_tokens": 400,
        "unknown_phase_record_count": 0
      }
    ],
    "has_more": false,
    "next_cursor": null,
    "meta": {
      "scope": "self",
      "from": "2026-11-01T00:00:00Z",
      "to": "2026-11-02T00:00:00Z",
      "time_basis": "record_created_at",
      "cost_basis": "current_consume_log_amount",
      "refund_accounting": "not_complete",
      "records_mutable": true,
      "consistency": "eventual",
      "consume_logging_enabled": true,
      "credits_per_usd": "100",
      "group_by": "day",
      "timezone": "UTC"
    }
  }
}