> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# リクエストログとアカウント適用価格

>  - リクエスト ID またはタスク ID で 1 件の呼び出しの課金額を照会 - 時間範囲を指定し、すべての消費・エラー記録をページ単位で同期 - 現在のアカウントでモデルに実際に適用される価格を照会 

API Key を使い、各呼び出しの課金明細と、現在のアカウントがモデルを呼び出す際の実際の価格を照会します。3 つのエンドポイントはいずれも残高を確認しないため、残高が 0 でも呼び出せます。

```bash 単件照会 theme={null}
curl 'https://api.apimart.ai/v1/logs/requests/task_01M6ZDAXTC8QXYCDM5PXPM413R' \
  --header 'Authorization: Bearer <token>'
```

```bash ログ同期 theme={null}
curl --get 'https://api.apimart.ai/v1/logs/requests' \
  --header 'Authorization: Bearer <token>' \
  --data-urlencode 'start_timestamp=1762732800' \
  --data-urlencode 'end_timestamp=1762736400' \
  --data-urlencode 'limit=1000'
```

```bash 適用価格 theme={null}
curl --get 'https://api.apimart.ai/v1/pricing/model' \
  --header 'Authorization: Bearer <token>' \
  --data-urlencode 'model=doubao-seedance-2.0' \
  --data-urlencode 'resolution=720P' \
  --data-urlencode 'duration=5'
```

```json 単件照会 theme={null}
{
  "object": "list",
  "request_id": "task_01M6ZDAXTC8QXYCDM5PXPM413R",
  "data": [
    {
      "id": "task_01M6ZDAXTC8QXYCDM5PXPM413R",
      "type": "consume",
      "status": "succeeded",
      "created_at": 1762740123,
      "model_name": "doubao-seedance-2.0",
      "token_name": "prod-server",
      "task_id": "task_01M6ZDAXTC8QXYCDM5PXPM413R",
      "prompt_tokens": 0,
      "completion_tokens": 0,
      "cache_tokens": 0,
      "cache_creation_tokens": 0,
      "cost_usd": 0.6,
      "cost_credits": 6
    }
  ]
}
```

```json ログ同期 theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "<リクエスト ID>",
      "type": "consume",
      "status": "succeeded",
      "created_at": 1762732805,
      "model_name": "gpt-5.5",
      "token_name": "prod-server",
      "prompt_tokens": 1200,
      "completion_tokens": 350,
      "cache_tokens": 0,
      "cache_creation_tokens": 0,
      "latency_ms": 2310,
      "first_token_ms": 420,
      "cost_usd": 0.004125,
      "cost_credits": 0.04125
    }
  ],
  "has_more": true,
  "next_cursor": "AQAAAABpEoXlAjIwMjYxMTEw...",
  "watermark": 1762739700
}
```

```json 適用価格 theme={null}
{
  "model": "doubao-seedance-2.0",
  "canonical_model": "doubao-seedance-2.0",
  "currency": "USD",
  "group": "vip",
  "billing_type": "per_second",
  "unit": "per_second",
  "spec": { "resolution": "720P", "duration": 5 },
  "spec_source": "request",
  "estimated": false,
  "unit_price_usd": 0.12,
  "quantity": 5,
  "total_usd": 0.6,
  "credits": { "unit_price": 1.2, "total": 6 },
  "price_source": "membership",
  "price_factors": ["membership"],
  "membership_tier": "gold"
}
```

## 認証

**Authorization** `string` *required*

モデル呼び出しと同じ API Key を使用し、Bearer Token で認証します。[API Key 管理ページ](https://apimart.ai/keys)でキーを取得してください。

```
Authorization: Bearer YOUR_API_KEY
```

## エンドポイント

```text theme={null}
GET /v1/logs/requests/{id}    リクエスト ID で単件照会
GET /v1/logs/requests         時間範囲でログを同期
GET /v1/pricing/model         アカウント適用価格の照会
```

金額フィールドの単位は USD です。`cost_credits` と `credits` はクレジットで、USD × 10 に相当します。

***

## リクエスト ID で単件照会

```text theme={null}
GET /v1/logs/requests/{id}
```

**id** `string` *required*

* 同期呼び出し：レスポンスヘッダー `X-Oneapi-Request-Id` の値
* 非同期タスク：送信時に返されたタスク ID

> [!NOTE]
>
> ログは非同期で書き込まれ、通常はリクエスト終了から数秒以内に照会できます。`404 log_not_found` が返った場合は、しばらくしてから再試行してください。非同期タスクはタスク ID で照会する必要があり、タスクが完了または失敗してから記録が作成されます。

照会範囲は API Key が属するアカウント全体です。`data` は配列で、同じ ID に消費とエラーの 2 件の記録がある場合があります。主なフィールド：

| フィールド | 説明 |
| - | - |
| `id` | リクエスト ID またはタスク ID |
| `type` | `consume`（消費）または `error`（エラー） |
| `created_at` | 記録時刻（Unix 秒）。非同期タスクは精算時刻 |
| `model_name` | モデル名 |
| `token_name` | 呼び出し元の API Key 名（記録時点の名前で、重複する場合があります）。キーを正確に区別するには、同期エンドポイントで `token_id` を指定して絞り込んでください |
| `prompt_tokens` / `completion_tokens` | 入力 / 出力トークン数 |
| `cost_usd` | この記録の課金額（USD） |
| `cost_credits` | 課金クレジット |

`cost_usd` は精算後の最終金額です。エラー記録は常に `0` で、失敗時の返金は記録の書き込み前に完了しています。`type` が `consume` の記録を合計すると、呼び出しによる課金額になります。

***

## リクエストログの同期

```text theme={null}
GET /v1/logs/requests
```

時間範囲を指定し、アカウント内のすべての記録をページ単位で取得します。定期的な照合に適しています。各記録のフィールドは単件照会と同じです。

**start\_timestamp** `integer` *required*

開始時刻（Unix 秒）。

**end\_timestamp** `integer`

終了時刻（Unix 秒）。省略時は現在時刻。範囲は両端を含み、31 日以内である必要があります。

**type** `string` (default: all)

記録の種類：`all`、`consume`、`error`。

**model** `string`

モデル名で絞り込み。

**token\_id** `integer`

指定した API Key の記録のみを返します。ID はコンソールの「API キー」一覧からコピーできます（キー名の下に表示）。キーをローテーションしても ID は変わりません。

**limit** `integer` (default: 100)

1 ページの件数、`1`〜`1000`。

**cursor** `string`

ページネーション用カーソル。前ページの `next_cursor` をそのまま渡してください。ページング中は他のパラメータを変更しないでください。

レスポンスの `has_more` は次のページの有無、`next_cursor` は次ページのカーソル、`watermark` はサーバーの現在時刻から 300 秒を引いた値です。

> [!TIP]
>
> **推奨される同期方法**：各回の `end_timestamp` は `watermark` より後にしない。次回は前回の終了時刻から 10 分さかのぼって取得し、`(id, type)` で重複排除する。1 つの時間ウィンドウ内では `has_more` が `false` になるまでページングする。

***

## アカウント適用価格の照会

```text theme={null}
GET /v1/pricing/model
```

現在の API Key が属するアカウントがモデルを呼び出す際の実際の価格を照会します。専用価格、会員価格、グループ倍率、割引がすべて反映され、呼び出し時の課金と一致します。料金ページに表示されるのは公開価格のため、アカウント単位で見積もる場合はこのエンドポイントを使用してください。

**model** `string` *required*

モデル名。エイリアスも使用できます。

**resolution** `string`

解像度またはティア。モデルが対応しているティアである必要があります。

**size** `string`

画像サイズ。

**quality** `string`

品質ティア。

**duration** `integer`

時間（秒）、`1`〜`3600`。秒課金のモデルで使用します。

**n** `integer`

生成数、`1`〜`100`。

仕様パラメータを渡さない場合は、モデルのデフォルト仕様で見積もります。秒課金のモデルで `duration` を省略すると、1 秒あたりの単価のみを返します。

主なレスポンスフィールド：

| フィールド | 説明 |
| - | - |
| `unit` | 価格の単位：`per_image`、`per_call`、`per_second`、`per_million_tokens` |
| `unit_price_usd` | 単価（USD） |
| `total_usd` | この仕様の合計価格（USD） |
| `unit_prices` | トークン課金のモデルで返される 100 万トークンあたりの単価（例：`input`、`output`） |
| `estimated` | `true` は最終課金が実際の使用量（トークン課金など）に依存することを示し、見積もりは参考値です |
| `price_source` | 価格の出所：`membership`（会員価格）、`user_override`（専用価格）、`group`（グループ価格）、`default`（標準価格） |

API Key ごとに 1 分あたり最大 `60` 回まで照会できます。

***

## エラー処理

| HTTP ステータス | `error.code` | 説明 |
| - | - | - |
| 400 | `invalid_request_id` / `invalid_request` など | パラメータが不正です。詳細は `message` を参照 |
| 400 | `time_range_too_large` | ログの期間が 31 日を超えています |
| 401 / 402 / 403 | — | API Key が無効、期限切れ、または無効化されています |
| 404 | `log_not_found` | ログ記録が見つかりません。まだ書き込まれていない可能性があります |
| 404 | `model_not_found` / `no_valid_pricing` | モデルが存在しないか、価格が設定されていません |
| 429 | — | リクエストが多すぎます |
| 500 / 503 | — | サービスが一時的に利用できません。しばらくしてから再試行してください |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.