Overview

We are a transparent proxy. This page documents only where we differ.

Last updated 2026-08-18edit on github

What we document

We are a transparent proxy. Every parameter, response field, streaming event, and error code matches the upstream API exactly, and re-documenting several hundred pages of someone else’s reference would only create a second source of truth to go stale.

So we document our deltas and nothing else. For request and response semantics, read the provider’s own reference. It is authoritative for us too.

If you ever find a behavioural difference between us and upstream that is not on this page, that is a bug and we want the request ID. It is not a documentation gap.

Base URLs

SurfaceBase URLAuth header
Anthropic Messageshttps://api.lowcostllm.comx-api-key
OpenAI Chat / Responseshttps://api.lowcostllm.com/v1Authorization: Bearer
Management APIhttps://api.lowcostllm.com/v1/keysAuthorization: Bearer

Response headers

We add headers; we never remove upstream ones. Everything the provider returns reaches you untouched.

HeaderExampleMeaning
x-lcllm-request-idreq_01HZX…Our trace ID. Include it in any support request.
x-lcllm-cost-usd0.004120What this call cost you, after discount.
x-lcllm-list-cost-usd0.008240What the same call would have cost at provider list price.
x-lcllm-upstream-ms1284Time spent at the provider. Subtract from total to see our overhead.
x-lcllm-balance-usd412.88Remaining credit after this call.

Request IDs

Ours are prefixed req_ followed by a lexicographically sortable ULID. The upstream provider’s own request ID is passed through unchanged in its original header, so you can correlate an incident with the provider’s status page without going through us.

Usage endpoint

One endpoint that is genuinely ours rather than a pass-through: aggregated spend, grouped however you need it.

cURL
curl "https://api.lowcostllm.com/v1/usage?start=2026-08-01&end=2026-08-31&group_by=model" \
  -H "Authorization: Bearer $LOWCOSTLLM_API_KEY"
  • group_by accepts model, key, day, or a comma separated combination.
  • Every bucket returns both cost_usd and list_cost_usd, so you can report savings without recomputing them.

See cost monitoring for budget caps and webhook alerts built on top of this.