When something breaks, the fastest fix usually comes from three places, in this order: the status page, the troubleshooting docs, and a support ticket with the right details. This page explains each and shows how to find the request id that lets support trace your exact call.
Check the status page first#
/status shows the current state of each part of the platform:
- Inference API: the
/v1endpoints - Dashboard & Auth: signing in and the dashboard
- Billing: checkout and payments
- Upstream providers: the model providers behind Tokens
It also shows 90 days of uptime history, measured by real probes. If a component is degraded, your problem is probably that, and there's no need to open a ticket for it. If one model is failing but others work, try another model while it's resolved.
Try the troubleshooting docs#
Most problems have a known cause:
- Errors lists every error code, what it means and what to do.
- Troubleshooting covers common setup problems with agents and SDKs.
- FAQ answers billing and account questions.
- The guide for your tool, such as Claude Code or Codex CLI, has tool-specific fixes.
You can also run a live test from /dashboard/connect, which sends a short request with your key and shows the result. If that works but your tool doesn't, the problem is in the tool's configuration, not your key or account.
Find the request id#
Every response from Tokens, successful or not, has an x-tokens-request-id header. Error bodies also include it as request_id. With it, support can find your exact request in seconds; without it, they're searching by time and model.
curl -sS -D - -o /dev/null https://tokens.bd/v1/chat/completions \
-H "Authorization: Bearer $TOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek/deepseek-v4.1-flash","messages":[{"role":"user","content":"ping"}]}' \
| grep -i x-tokens-request-idimport os
from openai import OpenAI
client = OpenAI(base_url="https://tokens.bd/v1", api_key=os.environ["TOKENS_API_KEY"])
raw = client.chat.completions.with_raw_response.create(
model="deepseek/deepseek-v4.1-flash",
messages=[{"role": "user", "content": "ping"}],
)
print(raw.headers.get("x-tokens-request-id"))
completion = raw.parse() # the normal ChatCompletion objectimport OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://tokens.bd/v1", apiKey: process.env.TOKENS_API_KEY });
const { data, response } = await client.chat.completions
.create({
model: "deepseek/deepseek-v4.1-flash",
messages: [{ role: "user", content: "ping" }],
})
.withResponse();
console.log(response.headers.get("x-tokens-request-id"));If the request came from a coding agent, you won't see the headers. Instead, find the request in the Usage page's recent activity, or in the CSV export, which has a Request ID column. See usage, limits and alerts.
Open a support ticket#
Support tickets are built into the dashboard at /dashboard/support. A ticket has a subject, a message and a priority:
| Priority | Use it for |
|---|---|
| High | You can't make any requests, or a payment was taken and not credited |
| Medium | One model or feature is failing, or something is wrong but you have a workaround |
| Low | Questions, billing clarifications, feature requests |
Replies arrive in the same ticket thread, and you can reply there too.
What to include#
A ticket with these details can usually be answered on the first reply:
- The
x-tokens-request-idof a failing request (or several) - The model id you called, exactly as sent
- The time it happened, with your time zone
- The HTTP status and error code, for example
403 model_not_allowed_on_key, and the error message - What you were using: the agent or SDK and its version, and the endpoint (
/v1/chat/completions,/v1/messages,/v1/responses) - What you already tried
For billing questions, include the receipt number (REC-...) or the payment's transaction reference instead.
Never paste your API key
Support doesn't need your key, and a ticket is not a safe place for it. The key's name, or the short prefix shown next to it in /dashboard/keys, is enough to identify it. If you've already pasted a full key anywhere, rotate it.
A good example:
Subject: 504 upstream_timeout on long Claude Code sessions
Since about 14:30 (UTC+6) on 3 Oct, Claude Code requests fail after ~10 minutes
with 504 upstream_timeout. Short requests work.
Model: (id copied from /models)
Request ids: 3f2c..., 9a71...
Claude Code version: (output of `claude --version`)
Tried: a different model works; the connection test at /dashboard/connect passes.Other things support handles#
- Refunds, under the refund policy. Include the receipt number.
- Account deletion. Open the ticket from the account you want deleted.
- Questions about which providers serve a model, if data handling matters for your work. See security and data privacy.