# 利用履歴
> **GET** `/v3/account/usage/history`
呼び出し元の API キーで、指定した期間内に作成され**成功した**タスクと、各タスクが消費したクレジットを作成日時の新しい順に返します。自動照合向けの API で、プロンプト・入力・生成結果・ダウンロードリンクは返しません。
- 対象は呼び出し元の API キーです。複数のキーを照合する場合は、キーごとに取得してください。
- 成功したタスクのみを返します。失敗・期限切れ・審査不合格のタスク(通常はクレジット返還済み)は含まれないため、請求明細と 1 行ずつ照合することはできません。
- タスクの作成日時で絞り込みます。取得時点で実行中のタスクはまだ成功していないため、終了時刻が現在より 30 分以上前の期間を取得してください。
- レート制限:API キーごとに毎分 60 リクエスト。超過すると `Retry-After` ヘッダー付きで `429` を返します。
## リクエストパラメータ
### リクエストヘッダー
| パラメータ | 種類 | 必須 | デフォルト | 説明 |
| :-: | :-: | :-: | :-: | :-: |
| Authorization | 文字列 | はい | — | `Bearer {api_key}` |
### クエリパラメータ
| パラメータ | 種類 | 必須 | デフォルト | 説明 |
| :-: | :-: | :-: | :-: | :-: |
| start_time | 文字列 | はい | — | 期間の開始(含む)。タイムゾーンオフセット付きの RFC 3339。例:`2026-10-01T00:00:00Z` |
| end_time | 文字列 | はい | — | 期間の終了(含まない)。同じ形式で、`start_time` より後かつ 31 日以内 |
| page_size | 整数 | いいえ | `100` | 1 ページあたりの件数(1–100) |
| cursor | 文字列 | いいえ | — | 前のページの `next_cursor`。最初のページでは省略します。ページ送り中は `start_time` と `end_time` を変更しないでください |
## リクエスト例
### curl
```bash
curl -G https://openapi.tripo3d.ai/v3/account/usage/history \
-H "Authorization: Bearer {api_key}" \
--data-urlencode "start_time=2026-10-01T00:00:00Z" \
--data-urlencode "end_time=2026-11-01T00:00:00Z" \
--data-urlencode "page_size=100"
```
### Python(全ページ取得)
```python
import time
import requests
url = "https://openapi.tripo3d.ai/v3/account/usage/history"
headers = {"Authorization": "Bearer {api_key}"}
params = {
"start_time": "2026-10-01T00:00:00Z",
"end_time": "2026-11-01T00:00:00Z",
"page_size": 100,
}
total = 0.0
while True:
r = requests.get(url, params=params, headers=headers)
if r.status_code in (429, 503):
time.sleep(int(r.headers.get("Retry-After", "5")))
continue
r.raise_for_status()
data = r.json()["data"]
for item in data["items"]:
total += item["credits_consumed"]
if not data["has_more"]:
break
params["cursor"] = data["next_cursor"]
print(f"credits consumed: {total:.2f}")
```
## 応答
### 成功した応答
```json
{
"code": 0,
"status": "success",
"data": {
"items": [
{
"task_id": "123e4567-e89b-42d3-a456-426614174000",
"type": "text_to_model",
"model_version": "v3.0-20250812",
"status": "success",
"created_at": "2026-10-31T15:59:58.123456Z",
"completed_at": "2026-10-31T16:01:12.654321Z",
"credits_consumed": 30.00
}
],
"has_more": true,
"next_cursor": "djE6MTc2MTkyNjM5ODEyMzQ1NjoxMjNlNDU2Ny1lODliLTQyZDMtYTQ1Ni00MjY2MTQxNzQwMDA"
}
}
```
### 応答フィールド
| パラメータ | 種類 | 説明 |
| :-: | :-: | :-: |
| code | 整数 | ステータスコード。 `0` は成功を示します |
| data.items | 配列 | このページのタスク(新しい順) |
| data.items[].task_id | 文字列 | タスク ID |
| data.items[].type | 文字列 | タスクタイプ(タスク照会と同じ値) |
| data.items[].model_version | 文字列 | 作成時に記録されたモデルバージョン。タスクタイプにバージョンがない場合は返しません |
| data.items[].status | 文字列 | 常に `success` |
| data.items[].created_at | 文字列 | 作成日時(UTC、ISO 8601) |
| data.items[].completed_at | 文字列 | 完了日時(UTC、ISO 8601)。記録がない場合は返しません |
| data.items[].credits_consumed | number | 課金されたクレジット。タスク照会の `credits_consumed` と同じ値で、課金がない場合は `0` |
| data.has_more | ブール値 | 次のページがあるかどうか |
| data.next_cursor | 文字列 | `cursor` に渡すと次のページを取得できます。最終ページでは `null` |
## エラーコード
| HTTP ステータスコード | エラーコード | 説明 | おすすめ |
| :-: | :-: | :-: | :-: |
| 400 | 1004 | パラメータが不正(時刻の欠落・形式誤り、期間が 31 日超、`page_size` または `cursor` が不正) | `message` に示されたパラメータを修正してください |
| 429 | 1007 | レート制限を超過 | `Retry-After` 秒待ってから再試行してください |
| 503 | 1008 | 一時的に利用できません | `Retry-After` 秒待ってから同じリクエストを再送してください |
利用履歴
GET /v3/account/usage/history
呼び出し元の API キーで、指定した期間内に作成され成功したタスクと、各タスクが消費したクレジットを作成日時の新しい順に返します。自動照合向けの API で、プロンプト・入力・生成結果・ダウンロードリンクは返しません。
- 対象は呼び出し元の API キーです。複数のキーを照合する場合は、キーごとに取得してください。
- 成功したタスクのみを返します。失敗・期限切れ・審査不合格のタスク(通常はクレジット返還済み)は含まれないため、請求明細と 1 行ずつ照合することはできません。
- タスクの作成日時で絞り込みます。取得時点で実行中のタスクはまだ成功していないため、終了時刻が現在より 30 分以上前の期間を取得してください。
- レート制限:API キーごとに毎分 60 リクエスト。超過すると
Retry-After ヘッダー付きで 429 を返します。
リクエストパラメータ
リクエストヘッダー
| パラメータ |
種類 |
必須 |
デフォルト |
説明 |
| Authorization |
文字列 |
はい |
— |
Bearer {api_key} |
クエリパラメータ
| パラメータ |
種類 |
必須 |
デフォルト |
説明 |
| start_time |
文字列 |
はい |
— |
期間の開始(含む)。タイムゾーンオフセット付きの RFC 3339。例:2026-10-01T00:00:00Z |
| end_time |
文字列 |
はい |
— |
期間の終了(含まない)。同じ形式で、start_time より後かつ 31 日以内 |
| page_size |
整数 |
いいえ |
100 |
1 ページあたりの件数(1–100) |
| cursor |
文字列 |
いいえ |
— |
前のページの next_cursor。最初のページでは省略します。ページ送り中は start_time と end_time を変更しないでください |
リクエスト例
curl
curl -G https://openapi.tripo3d.ai/v3/account/usage/history \
-H "Authorization: Bearer {api_key}" \
--data-urlencode "start_time=2026-10-01T00:00:00Z" \
--data-urlencode "end_time=2026-11-01T00:00:00Z" \
--data-urlencode "page_size=100"
Python(全ページ取得)
import time
import requests
url = "https://openapi.tripo3d.ai/v3/account/usage/history"
headers = {"Authorization": "Bearer {api_key}"}
params = {
"start_time": "2026-10-01T00:00:00Z",
"end_time": "2026-11-01T00:00:00Z",
"page_size": 100,
}
total = 0.0
while True:
r = requests.get(url, params=params, headers=headers)
if r.status_code in (429, 503):
time.sleep(int(r.headers.get("Retry-After", "5")))
continue
r.raise_for_status()
data = r.json()["data"]
for item in data["items"]:
total += item["credits_consumed"]
if not data["has_more"]:
break
params["cursor"] = data["next_cursor"]
print(f"credits consumed: {total:.2f}")
応答
成功した応答
{
"code": 0,
"status": "success",
"data": {
"items": [
{
"task_id": "123e4567-e89b-42d3-a456-426614174000",
"type": "text_to_model",
"model_version": "v3.0-20250812",
"status": "success",
"created_at": "2026-10-31T15:59:58.123456Z",
"completed_at": "2026-10-31T16:01:12.654321Z",
"credits_consumed": 30.00
}
],
"has_more": true,
"next_cursor": "djE6MTc2MTkyNjM5ODEyMzQ1NjoxMjNlNDU2Ny1lODliLTQyZDMtYTQ1Ni00MjY2MTQxNzQwMDA"
}
}
応答フィールド
| パラメータ |
種類 |
説明 |
| code |
整数 |
ステータスコード。 0 は成功を示します |
| data.items |
配列 |
このページのタスク(新しい順) |
| data.items[].task_id |
文字列 |
タスク ID |
| data.items[].type |
文字列 |
タスクタイプ(タスク照会と同じ値) |
| data.items[].model_version |
文字列 |
作成時に記録されたモデルバージョン。タスクタイプにバージョンがない場合は返しません |
| data.items[].status |
文字列 |
常に success |
| data.items[].created_at |
文字列 |
作成日時(UTC、ISO 8601) |
| data.items[].completed_at |
文字列 |
完了日時(UTC、ISO 8601)。記録がない場合は返しません |
| data.items[].credits_consumed |
number |
課金されたクレジット。タスク照会の credits_consumed と同じ値で、課金がない場合は 0 |
| data.has_more |
ブール値 |
次のページがあるかどうか |
| data.next_cursor |
文字列 |
cursor に渡すと次のページを取得できます。最終ページでは null |
エラーコード
| HTTP ステータスコード |
エラーコード |
説明 |
おすすめ |
| 400 |
1004 |
パラメータが不正(時刻の欠落・形式誤り、期間が 31 日超、page_size または cursor が不正) |
message に示されたパラメータを修正してください |
| 429 |
1007 |
レート制限を超過 |
Retry-After 秒待ってから再試行してください |
| 503 |
1008 |
一時的に利用できません |
Retry-After 秒待ってから同じリクエストを再送してください |