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

# ログの課金金額はどう読み取ればよいですか?

> コンソールログの「Cost」列の理解: 利用量ベース課金と1回ごとの課金、usage フィールドから自分でコストを計算する方法、ログの金額が割引前である理由、そして失敗した呼び出しが表示されない理由。

## 簡潔な回答

[ログページ](https://api.apiyi.com/log) の **コスト列** は、その呼び出しの USD 金額です。そこで見える内容は、次の4点で説明できます。

1. **使用量ベースのモデル**（多くのテキストモデルに加え、gpt-image-2、SeeDance 2.0 ファミリーなど）は、レスポンスの **`usage` フィールド** に token 数を返すため、コストはクライアント側で計算できます;
2. **呼び出しごとのモデル**はレスポンスに金額を返しませんが、単価は固定なので、コスト = 呼び出し回数 × 固定価格 — 同じく簡単に計算できます;
3. ログの金額は**割引前**です。実際のコストは、その金額をチャージ時のボーナス比率で割ったものになります（10% のボーナスなら ÷1.1 で、おおむね 9% の割引です）;
4. **ログに記録されるのは、課金に成功した呼び出しのみです。** エラーは API レスポンスで返されます。課金が発生しなかった失敗した呼び出しはログに表示されず、課金もされません。

<Info>
  **一言でいうと**: 呼び出しごとの課金 = 固定コスト; 使用量ベースの課金 = token から算出され、レスポンスで返されます。
</Info>

## 各列の読み方

| Column     | 意味                        | 備考                                        |
| ---------- | ------------------------- | ----------------------------------------- |
| Time       | この呼び出しの決済時刻               | チケットを起票する際はこれを引用してください。呼び出しを特定する最も速い方法です  |
| Model      | 実際に課金されたモデル               | グループ接尾辞付きのモデルは、そのグループのレート倍率で課金されます        |
| Info       | ストリーミングかどうか、最初のバイトまでの時間など | 応答が遅い場合は、最初のバイトまでの時間を確認してください             |
| Prompt     | 入力 tokens                 | マルチモーダル呼び出しの画像と音声は、ここで tokens に変換されます     |
| Completion | 出力 tokens                 | 推論 tokens は通常この列に入ります                     |
| Cost       | この呼び出しの金額（USD、**割引前**）    | グループのレート倍率はすでに適用済みです。チャージボーナスはまだ適用されていません |

<Note>
  **Per-call models** は Prompt / Completion に token 数を表示する場合がありますが、**金額はこれらの列から算出されません**。簡単な見分け方は、同じパラメータで繰り返した呼び出しの料金がまったく同じで、0.030000 のようなきりのいい数になっている場合です。その場合は per-call 課金です。
</Note>

## 2つの課金モード

<CardGroup cols={2}>
  <Card title="使用量ベース（token ごと）" icon="gauge">
    レスポンスの `usage` フィールドは token 数を直接返します。コスト = 入力 token × 入力レート + 出力 token × 出力レート。

    **適用対象**: ほとんどのテキストモデルに加え、**gpt-image-2** や **SeeDance 2.0** ファミリーのような token 価格の画像および動画モデル。
  </Card>

  <Card title="呼び出しごと（固定単価）" icon="hash">
    **金額は返されません** が、各呼び出しには固定価格があるため、コスト = 呼び出し回数 × 単価 — 予算を組むうえで最も簡単です。

    **適用対象**: 画像ごとまたは秒ごとに課金されるほとんどの画像および動画モデル。コンソールのモデル料金ページで料金を確認してください。
  </Card>
</CardGroup>

## API はコストを直接返せますか？

**金額は返しませんが、コストは完全に算出できます：**

* **使用量ベース**: `usage` の値にレートを自分で掛けてください — これはベンダー自身の token 数であり、どんな推定よりも正確です；
* **呼び出しごと**: 単価は固定なので、呼び出し回数を掛けるだけです。

最終的なコストは、**グループ倍率** と **お客様アカウントのチャージボーナス比率** にも左右されるため、金額をあえてレスポンスに含めていません。中途半端な数値をレスポンスに埋め込むと、突合はむしろ分かりにくくなります。

### 使用量から算出する

使用量ベースのモデルは次のような内容を返します：

```json theme={null}
{
  "usage": {
    "prompt_tokens": 905,
    "completion_tokens": 1629,
    "total_tokens": 2534,
    "prompt_tokens_details": {
      "cached_tokens": 512
    }
  }
}
```

対応する式は次のとおりです：

```text theme={null}
cost = (uncached input tokens × input rate)
     + (cached input tokens × cache-hit rate)
     + (output tokens × output rate)
```

<Tip>
  キャッシュされた input は **キャッシュヒット率** で課金されます（通常は input レートの約0.1倍）ので、長いコンテキストのワークロードでは、記録される金額が `prompt_tokens` に基づく通常価格ベースの見積もりを大きく下回ることがあります。[キャッシュ課金](/ja/faq/cache-billing) を参照してください。
</Tip>

<Card title="gpt-image-2 の token 数を確認する" icon="image" href="/ja/api-capabilities/gpt-image-2/overview">
  モデル概要の料金セクションには、入力画像と出力画像が token にどう変換されるかの実測データがあります
</Card>

## ログ金額が「割引前」である理由

ログには、**モデルのレートから算出された生の金額**が記録されます。実際の費用には、チャージ時に付与されたボーナス残高があるため、ここからさらにもう1段階の割引がかかります。

```text theme={null}
actual cost = logged amount ÷ (1 + bonus ratio)
```

たとえば、\$0.011 と記録された呼び出しが 10% のチャージボーナス付きであれば、実際の費用は `0.011 ÷ 1.1 = 0.01` となり、約 9% の割引に相当します。

| チャージボーナス    | 換算     | 実効割引         |
| ----------- | ------ | ------------ |
| 10%         | ÷ 1.1  | 約 9% 割引      |
| 12%         | ÷ 1.12 | 約 11% 割引     |
| 15%         | ÷ 1.15 | 約 13% 割引     |
| **20%（上限）** | ÷ 1.2  | **約 17% 割引** |

<Card title="チャージボーナスの階層を見る" icon="gift" href="/ja/faq/recharge-promotions">
  階層ごとのボーナス率、初回ボーナス、クレジットの付与方法
</Card>

<Note>
  **グループ割引をもう一度適用する必要はありません**: モデルグループのレート倍率は課金時にすでに適用されているため、ログ金額にはその分が含まれています。換算が必要なのは、チャージボーナスの部分だけです。[モデルのレート倍率](/ja/faq/model-multiplier) をご覧ください。
</Note>

## 失敗した呼び出しは課金されますか？

**いいえ — そして、それらはコストログにも一切表示されません。** これはログを正しく読むうえでの重要なポイントです：

<Warning>
  **エラーは API レスポンスで返されます。コンソールログは正常に課金されたものを記録するためにあります。** そのため、「ログに記録がない」ことは通常、「この呼び出しは課金されていない」ことを意味します。
</Warning>

典型的な例として、**gpt-image-2** を呼び出して次のような結果を受け取った場合です。

```text theme={null}
400 Your request was rejected by the safety system
```

このようなリクエストは **即座に返され、リトライはありません**。そのためコスト記録は作成されず、課金もされません。同様に、VEO や Sora 2 などの動画モデルが `PUBLIC_` で始まるエラーを返した場合、それは上流側のコンテンツモデレーションであり、課金対象ではなく、prompt を調整したあとで安全に再試行できます。

<Tip>
  **逆の見方もデバッグに非常に役立ちます。** つまり、課金記録 **が存在する** なら、そのリクエストは確実に上流まで到達し、リソースを消費しています。**存在しない** 場合、失敗はほぼ確実に上流へ到達する前に起きています（ネットワーク、認証、パラメータ検証）。接続問題を診断するときは、「課金記録があるか？」が最も強い単一の手がかりになることがよくあります。
</Tip>

<Note>
  **事前控除のホールドは課金ではありません。** リクエストの実行前に、システムは見積額を一時的に確保します。リクエストが失敗するとそのホールドは解除され、決済は常に実際の使用量に基づきます。残高が一時的に減ってから戻るのは想定どおりです — [事前控除メカニズム](/ja/faq/pre-deduction-quota) を参照してください。
</Note>

## よくある質問

<AccordionGroup>
  <Accordion title="同じモデルへの2回の呼び出しでコストが大きく異なります。これは正常ですか？">
    はい。従量課金では金額は使用量に応じて変動します。主な原因は次のとおりです:

    * **入力の長さが異なる**: 長いコンテキスト、複数ターンの履歴、画像や音声はすべて入力 token 数を大きく押し上げます
    * **推論 token**: 推論が有効なモデルは追加の出力 token を生成し、Completion列に計上されます
    * **キャッシュヒット**: キャッシュされた入力ははるかに低いレートで課金されるため、同じ prompt の2回目の実行はずっと安くなることがあります
    * **画像/動画パラメータ**: 解像度、長さ、画像枚数が token 数または呼び出し回数に直接影響します
  </Accordion>

  <Accordion title="ログの token 数が自分で数えた数と一致しません。">
    レスポンスの\*\*`usage`フィールド\*\*とログを信頼してください。どちらも同じソースから来ています。不一致の主な原因は次のとおりです: マルチモーダルコンテンツ（画像、音声）がベンダー固有のルールで token に変換されること、システム prompt と tools スキーマが入力として計上されること、そして推論 token が可視テキストに現れないまま出力として計上されることです。
  </Accordion>

  <Accordion title="呼び出しごとのモデルの単価はどこで確認できますか？">
    ログインしてコンソールのモデル料金ページ、またはこのサイトの[モデル料金の概要](/ja/pricing)をご確認ください。呼び出しごとの価格は固定なので、コストは単純に価格 × 呼び出し回数です。
  </Accordion>

  <Accordion title="呼び出しは失敗しましたが、課金されたと思います。どうすればよいですか？">
    まず、タイムスタンプでログを確認し、実際にコスト記録が作成されたかを確かめてください。もし本当に異常な課金であれば、**ログのタイムスタンプとモデル名**を添えてサポートへ連絡してください。こちら側の問題で発生した損失は再発行したクレジットで補償されます。 [SLA保証](/ja/faq/sla-guarantee)をご覧ください。
  </Accordion>

  <Accordion title="ログで送信した内容を確認できますか？">
    いいえ。プライバシーと保存容量の理由から、ログに保存されるのは課金に必要な情報だけです。つまり、時刻、モデル、token 数、金額であり、**リクエストやレスポンスの内容は記録されません**。[呼び出し記録の確認方法](/ja/faq/call-logs)をご覧ください。
  </Accordion>
</AccordionGroup>

## 関連ドキュメント

* [API の呼び出し履歴を確認するには？](/ja/faq/call-logs)
* [API 呼び出しの事前差し引きメカニズムとは何ですか？](/ja/faq/pre-deduction-quota)
* [APIYI はキャッシュ課金をサポートしていますか？](/ja/faq/cache-billing)
* [モデル倍率とは何を意味しますか？](/ja/faq/model-multiplier)
* [利用できるチャージ特典は何ですか？](/ja/faq/recharge-promotions)
* [token 課金方式の違いは何ですか？](/ja/faq/token-billing-modes)
