Run a test call, see exactly how it lands
Make a real call from your side and watch how it goes through on ours — whether it connected, whether your key and quota passed, which model answered, how long it took, and, if it did not go through, why and how to fix it. It runs the real path, so it tells you whether your setup just works. The report comes from an endpoint built to gather only safe facts — never your key, your account name, or anything about our machines.
Every stage, and how long it took
A worked example of a call that went through. Each line is a stage of the real path, timed as it happens — not a value read from a stored log.
| Stage | Result |
|---|---|
| Connected | OK · reached eu-se-1 · Stockholm |
| Key accepted | OK · valid, active |
| Allowed | OK · within your quota and limits |
| Answer generated | OK · Qwen3.8 27B · finished stop |
| Total time | 9.8 s |
| Throughput | ~12 tok/s |
| Tokens | prompt 26 · output 118 · total 144 |
If a stage fails, the report stops there and tells you which one and why, in plain words, with the fix — so you can tell a wrong key from an exhausted quota from a request that was too large.
# bash · macOS · Linux
$ curl -X POST https://api.axforge.ai/v1/diagnostics \
-H "Authorization: Bearer $AXFORGE_KEY"
# Windows PowerShell — ContentType and Body are both needed here
PS> Invoke-RestMethod https://api.axforge.ai/v1/diagnostics -Method Post `
-Headers @{ Authorization = "Bearer $env:AXFORGE_KEY" } `
-ContentType 'application/json' -Body '{}'
# → a small JSON report: ok, stages[], timings, usage, and on failure a safe reason + fix
Why, in plain words, with the fix
| What you see | What it means and the fix |
|---|---|
| Key not accepted · 401 | The key is wrong, revoked or from another account. Create or copy one in the console. |
| Out of allowance · 402 | Your token allowance for the period is used up. Top up in billing, then retry. |
| Not allowed for this key · 403 | The key exists but may not use this model or endpoint. Check its scope under API keys. |
| Request too large · 413 | The input is over the model's context. Shorten it — see errors & limits. |
| Too many at once · 429 | Your key's rate limit or the model's concurrency was hit. Wait a moment and retry; spread bursts out. |
| Model answered badly · 502 | The model returned something the API could not use. Retry once; if it repeats, the model page shows its status. |
| Busy right now · 503 | The model was saturated for a moment. Retry with a short backoff. |
| Timed out · 504 | No answer within the limit — a long generation on a busy model. Retry, or ask for fewer tokens. |
What the report shows, and what it never does
Shown: which stages passed and how long each took, total time, throughput, token counts, the model and region, how the answer finished, and — when it fails — a plain reason and the fix.
Never shown: your prompt and the model's reply, your API key, your account or user name, anything about other customers, and our internals — machine names, addresses, GPU layout, upstream URLs, stack traces. None of it is a field the endpoint can emit. Inference has zero prompt retention, so the text of your call is not stored at all.