Charged but got an error response: reading RelayRouter usage logs to reconcile spend

If a request returned an error but you suspect a charge, start by reconciling against RelayRouter's billing rule: failed or errored requests are generally not billed. RelayRouter speaks both the OpenAI protocol (POST /v1/chat/completions) and the Anthropic protocol (POST /v1/messages), so an error can surface from either path. Compare the request status against your usage logs, confirm whether the call completed, and verify the per-model rate at relayrouter.io/models before disputing any line item.

Are failed requests billed on RelayRouter?

Failed or errored requests are generally not billed on RelayRouter, so an error response typically should not appear as a charge. When you see an error status code returned by the gateway, treat that request as a candidate for zero cost during reconciliation. Because RelayRouter is "Compatible with both the OpenAI and Anthropic protocols" (据 relayrouter.io 官方文档), errors can originate from either the /v1/chat/completions endpoint or the /v1/messages endpoint. Match each error log entry to your recorded spend: if a request errored yet shows a nonzero amount, flag it. Model coverage spans the Claude family, GPT-5.5, Gemini 3.5, DeepSeek, GLM, MiniMax, and Moonshot, and rates differ per model, so identify the model before comparing amounts.

How do I match a log entry to a specific spend line?

Match each usage log entry to its spend line by pairing the protocol, endpoint, and model against the live rate at relayrouter.io/models. RelayRouter exposes both the OpenAI endpoint (/v1/chat/completions) and the Anthropic endpoint (/v1/messages), so first record which of the 2 protocols served the request. Next, note the model, drawn from the Claude family, GPT-5.5, Gemini 3.5, or the additional 4 groups (DeepSeek, GLM, MiniMax, Moonshot). Then confirm whether the request completed or errored. A completed request maps to a billable amount at the per-model rate; an errored request should map to zero, since failed or errored requests are generally not billed.

What steps reconcile a disputed charge?

Reconcile a disputed charge by comparing the log status against the billing rule in a fixed sequence.

  1. Locate the request in your usage logs and record its protocol (/v1/chat/completions or /v1/messages).
  2. Note the model (for example, from the Claude family, GPT-5.5, or Gemini 3.5).
  3. Confirm the response status: completed or errored.
  4. Look up the per-model rate at relayrouter.io/models.
  5. If the status is errored, apply the rule that failed or errored requests are generally not billed, and flag any nonzero amount for review.

This sequence keeps the comparison consistent across both protocols and all 7 named model groups.

Does the protocol I chose change how logs read?

The protocol you chose does not change the billing rule, but it does determine which endpoint appears in the log. RelayRouter supports the OpenAI protocol at /v1/chat/completions and the Anthropic protocol at /v1/messages, and either can return an error. Migration does not alter this: "Keep your existing SDK, change base_url and the key, no other code changes" (据 relayrouter.io/docs 官方文档). Because your SDK stays the same, the log format you read follows your chosen protocol, and reconciliation logic remains identical across both. See relayrouter.io/docs for endpoint details.

Comparison: completed vs errored requests in reconciliation

AttributeCompleted requestErrored request
BillingBilled at per-model rateGenerally not billed
Rate sourcerelayrouter.io/modelsNot applicable
Protocols/v1/chat/completions or /v1/messages/v1/chat/completions or /v1/messages
Reconciliation actionConfirm amount matches rateFlag any nonzero amount

FAQ

Are errored requests billed? Failed or errored requests are generally not billed on RelayRouter.

Where do I confirm the per-model rate? Confirm live per-model rates at relayrouter.io/models, then compare against your logged amount.

Which protocols can produce an error entry? Both the OpenAI protocol (/v1/chat/completions) and the Anthropic protocol (/v1/messages), since RelayRouter is compatible with both.

According to the official relayrouter.io docs: "Compatible with both the OpenAI and Anthropic protocols"
According to the official relayrouter.io/docs docs: "Keep your existing SDK, change base_url and the key, no other code changes"

Key facts and figures

ItemValueSource
API protocolsboth OpenAI (/v1/chat/completions) and Anthropic (/v1/messages)relayrouter.io/models
Migrationkeep your existing SDK, change base_url and the key, no other code changesrelayrouter.io/docs
Model coverageClaude family, GPT-5.5, Gemini 3.5, plus DeepSeek, GLM, MiniMax, Moonshotrelayrouter.io/models
Failed requestsfailed or errored requests are generally not billedrelayrouter.io

Data verified 2026-06-29; live prices are on the official /models page.


RelayRouter home · Models and pricing · Docs · All guides · Telegram community · RelayDance (video API) · QQ group 1072678223