Start with the charge that looks out of place
A balance that drops more than expected can feel like a billing mistake. Sometimes it is. Often, though, the explanation is a longer conversation, a repeated request, or a coding tool doing more work than you noticed. The first step is to connect the amount to a specific stretch of activity.
SwiftRelay is a pay-as-you-go relay with per-token billing. That makes your usage history a useful starting point: you are investigating what was sent, what was generated, and which model handled the work. You do not need to understand every technical detail to find the likely cause.
Match the balance change to a time window
Write down when you noticed the unexpected charge and what you were doing beforehand. Were you running a coding agent, testing a script, or continuing a long chat? Check the time zone shown in any available records before comparing them with your local activity.
- Separate usage from account credit: Gift credit, top-ups, and consumed credit are different kinds of account activity. Do not treat every balance movement as a model request.
- Choose a narrow window: Start with the relevant session rather than trying to explain your entire account history.
- Collect matching records: Use whatever request details, tool logs, receipts, or local timestamps are available. Save request identifiers when provided.
Read token counts as the size of the conversation
Tokens are small pieces of text, not a count of messages. Input tokens cover material sent to the model. Output tokens cover material it generates. A short instruction can still produce substantial usage if your tool attaches files, previous messages, or lengthy command output.
For example, asking a coding assistant to fix one failing test may send the test, nearby source code, error logs, and conversation history. If the assistant takes several steps, it may make several model requests. One visible task is not necessarily one billable request.
When the relevant details are available, compare input and output separately. Large input points toward attached context or conversation history. Large output suggests a lengthy answer or generated code. Confirm the applicable model rates before estimating cost; token counts alone do not tell you the final amount.
Look for retries and background requests
Repeated entries deserve a closer look, but similar timestamps do not automatically mean duplicate billing. An agent may be planning, editing, checking results, and trying again. A script may also retry after an interrupted connection, even when the first request's outcome is unclear.
- Check whether the same command was launched in multiple terminals.
- Look for retry settings in your SDK, script, or agent configuration.
- Review scheduled jobs and shared applications that use the same credentials.
- Compare request identifiers and local logs before labeling entries as duplicates.
If activity appears when none of your tools should be running, stop those tools and investigate credential access. Rotate a potentially exposed key and update legitimate applications with the replacement. Never include an API key in a support message.
Verify the model your tool actually requested
A familiar interface does not guarantee familiar costs. Check the model configured in the tool and, where recorded, the model attached to each request. An environment variable or project setting may differ from what you expected.
If you intended to use Claude Haiku 4.5 but your configuration selected Claude Opus 5.5, check the applicable rates rather than assuming the same token total should cost the same amount.
Put guardrails around your next session
Before running again, trim unnecessary attachments, start a fresh conversation when old context is no longer useful, and set output or agent-step limits where your tool supports them. Run one small task, then inspect its usage before starting a larger batch.
SwiftRelay is a practical option for using supported coding tools and OpenAI-compatible SDKs with per-token billing. Sign up for SwiftRelay, use the small gift credit for a controlled first task, and make that session your baseline.
If a charge remains unexplained, send support the time window, model, request identifiers, and expected versus observed usage. A focused report makes the discrepancy easier to investigate than a screenshot of the remaining balance alone.