# LLM API Billing - Documentation

> Understand how novita AI LLM API billing works, including token-based pricing, HTTP status code billing rules, and the 499 client disconnection billing policy.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown is available with `Accept: text/markdown` and `.md` URL variants.

Source: /docs/guides/llm-billing

# LLM API Billing

Understand how novita AI LLM API billing works, including token-based pricing, HTTP status code billing rules, and the 499 client disconnection billing policy.

##

[​](#pricing)

Pricing

novita AI LLM API is billed per token. Each request incurs charges for:

- Input Tokens — tokens consumed by the prompt

- Output Tokens — tokens generated by the model

Total Cost = Input Tokens × Input Rate + Output Tokens × Output Rate

Rates vary by model. Refer to the [Pricing Page](https://novita.ai/pricing) for details.

##

[​](#http-status-codes)

HTTP Status Codes

HTTP StatusNameDescriptionCharged200SuccessRequest completed successfullyYes400Bad RequestInvalid request parametersNo401UnauthorizedInvalid or missing API keyNo403ForbiddenInsufficient permissionsNo429Rate LimitedTPM or RPM limit exceededNo499Client DisconnectedClient closed the connection before completionYes500Internal Server ErrorServer-side errorNo503Service UnavailableService temporarily unavailableNo504Gateway TimeoutUpstream response timed outNo

Billing principle:

- Requests rejected before reaching the model (400/401/403/429): not charged

- Error due to platform issues (500/503/504): not charged

- Requests where the model has begun inference (200/499): charged

##

[​](#499-—-client-disconnected)

499 — Client Disconnected

Once a request reaches the model, inference begins immediately on the server side. If the client disconnects before receiving the full response, compute resources have already been consumed. The request is charged based on actual token usage.

Request ModeBillingNon-StreamingCharged for actual token usage regardless of disconnect timingStreamingCharged for actual token usage regardless of disconnect timing

Recommendations

- Use `max_tokens` to limit output length at the request level

- Set client timeout to ≥ 60s to avoid unintended disconnections

- Prefer controlling generation via `max_tokens` rather than closing the connection

##

[​](#faq)

FAQ

Why am I charged after disconnecting?

Inference begins as soon as the request reaches the model. Disconnecting does not halt computation already in progress.

How can I avoid 499 charges?

Set the `max_tokens` parameter to control output length before sending the request.

Where do 499 charges appear?

In your usage dashboard, alongside standard requests, with actual token consumption recorded.

Last modified on March 28, 2026
