#34309 [Bug]: cost_breakdown.cache_read_cost / cache_creation_cost always null for OpenAI Responses API (only read from Anthropic-style top-level usage keys)
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
## What happened
On the OpenAI Responses API (/v1/responses) path, the total response_cost is computed correctly (cache-read and cache-write dollars are folded into prompt_tokens_cost), but the itemized StandardLoggingPayload.response_cost_breakdown fields cache_read_cost and cache_creation_cost are always None/null.
Any downstream consumer of the standard logging payload (S3, a data warehouse, cost dashboards) therefore cannot attribute spend to cache-read vs cache-write vs fresh input for OpenAI models — all prompt-side dollars appear only under input_cost. This is an attribution/observability gap; the grand total is unaffected.
## Root cause
In litellm/cost_calculator.py, the breakdown-itemization block (v1.89.1, around lines 1605-1631) only derives the cache token counts from Anthropic-style top-level usage attributes:
_cr = getattr(cost_per_token_usage_object, "cache_read_input_tokens", None) \ or (cost_per_token_usage_object.model_extra or {}).get("cache_read_input_tokens") _cc = getattr(cost_per_token_usage_object, "…