Response headers
The headers ACOG adds to responses: the model that answered, cache hits, budget warnings, fallbacks and features removed for compatibility.
Your provider’s own response headers are passed through. ACOG adds:
| Header | Value | When |
|---|---|---|
x-request-id | The request’s ID | Always |
x-acog-resolved-model | The model that was sent the request | Compatible endpoints, including cache hits. Differs from your request for auto or a version alias. |
x-acog-cache | hit | The response came from the response cache, the semantic cache or a shared in-flight request |
x-acog-cache-model | A model id | A semantic-cache hit on a compatible endpoint: the model that generated the stored answer |
x-acog-budget-notice | scope/window=pct, comma-separated, for example org/month=80 | A budget passed 50, 80 or 90% of its limit with this response |
x-acog-policy-fallback | applied, skipped or unavailable | The provider’s safety classifier refused the request. See Routing and failover. |
x-acog-thinking-stripped | true | The serving model rejected extended thinking, and ACOG retried without it |
x-acog-beta-stripped | The rejected anthropic-beta values, or all | The serving platform rejected beta features, and ACOG retried without them |
x-acog-fields-stripped | Comma-separated field names | The serving model rejected these request fields, and ACOG retried without them |
Retry-After | Seconds | With 429 rate_limited and 503 upstream_unavailable |
Streaming responses also carry a keep-alive comment line (: keep-alive) every 15 seconds without data. It is part of the event stream, not a header.
ACOG adds no header with costs or savings. Read them from the console or the management API.