Model authenticity check
Have a model write a few hundred integers on first instinct and see which model is really behind it. Free, and it all runs in your browser.
Fingerprint analysis runs in your browser. Manual mode never uploads prompts or replies (only an anonymous count when finished); the API check calls your endpoint directly, or relays it unchanged when needed, and never stores keys.
How it works & accuracy
The “random” numbers a language model writes are not uniform: each model favours certain values, ranges and last digits, like handwriting. We compare the replies with the number handwriting of 66 models in our library and show the closest match with a confidence. Prompts are randomised every time in wording, language and length.
More replies, more accurate
| Replies pasted | Family identified | Exact model | Exact model in top 3 |
|---|---|---|---|
| 1 (quick) | 95.0% | 86.3% | 97.0% |
| 2 | 98.7% | 92.0% | 99.4% |
| 3 (precise) | 99.2% | 93.6% | 99.8% |
Same held-out data (2376 single replies / 792 groups of 3). With a single reply we only show the closest model; checking a claimed model needs at least 2 replies.
How we measured: 792 groups of 3 replies from 66 models were held out of the library and then identified — like grading papers it has never seen. The figures apply to listed models; an unlisted model is matched to its closest listed one.
The 66 models in the library (15 families)
Models not listed can still be tested: you get the closest listed model, and the API check still verifies tokenizer, billing and response details.
What the API check adds
The model writes a few hundred integers on first instinct. Each model favours certain values, ranges and last digits — like handwriting. The task is disguised as an ordinary request with random wording, language and length, so a relay can’t tell it is a test.
A dozen crafted short texts reveal how the upstream counts input tokens. Each model family splits text differently; this does not depend on what the model says, so rewriting answers can’t hide it.
For the same text, how many output tokens are billed — and how many input tokens an empty request costs, which exposes hidden system prompts or inflated billing.
The model name, response ID and finish reason the endpoint returns, plus speed.
If round one disagrees, a fresh set of prompts runs automatically. “Inconsistent” requires both rounds to disagree, so genuine endpoints are not flagged by chance.
FAQ
Where do I send the prompts in manual mode?
To the model you want to test: the official chat app, a relay’s chat page or your own code. Use a new chat for each prompt and paste the full reply back. Manual mode needs no key, and your prompts and replies are never sent anywhere; when a check finishes, only an anonymous count (check type and verdict, no model name, prompts or replies) is sent.
Is my API key safe?
The check runs in your browser. If the endpoint allows browser requests, your key goes only to that endpoint. Otherwise the request is relayed by ModelBank unchanged — we do not store or log keys or content. You can force direct mode under “Advanced”.
Can I use the result as proof?
It is a statistical consistency check (see the accuracy above), not legal proof. If you get “Suspicious”, run it again later; “Inconsistent” means several independent signals disagree.
Why “Inconclusive”?
Usually the model is not in our library yet, answers were cut off or refused, or the endpoint returns no token usage.
How much does it cost?
About 7–25 requests: 6 of them write a few hundred numbers (roughly 1–2K tokens), the rest are tiny requests of a dozen tokens.
Do you publish lists of bad providers?
No. We provide the tool and the report; sharing is up to you.