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.

Also checks whether it really is this model

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.

99.2%Family identifiedFrom 3 replies, tells which vendor’s model it is — e.g. Claude, GPT or DeepSeek.
93.6%Exact model identifiedThe top match is the exact model; the right one is in the top 3 99.8% of the time.
100.0%Impostors caughtWhen another vendor’s model poses as the claimed one, the result is “Inconsistent”.
1.0% → 0.1%Genuine models wrongly flaggedA genuine model judged “Inconsistent”: about 1% for one round; the API check re-tests with new prompts, and two wrong rounds never occurred in testing.

More replies, more accurate

Replies pastedFamily identifiedExact modelExact model in top 3
1 (quick)95.0%86.3%97.0%
298.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)
Claudeclaude-fable-5 · claude-fable-5.1 · claude-haiku-4.5 · claude-haiku-5.5 · claude-opus-4.6 · claude-opus-4.7 · claude-opus-4.8 · claude-opus-5 · claude-opus-5.5 · claude-sonnet-4.6 · claude-sonnet-5 · claude-sonnet-5.5
DeepSeekdeepseek-v3.2 · deepseek-v4-flash · deepseek-v4-flash-0731 · deepseek-v4-pro · deepseek-v4-pro-0813 · deepseek-v4.1-flash · deepseek-v4.1-flash-1017
Geminigemini-2.5-pro · gemini-3.1-pro-preview · gemini-3.5-flash · gemini-3.5-flash-lite · gemini-3.6-flash · gemini-3.7-flash · gemini-3.8-flash · gemini-4-argon
GLMglm-5.2 · glm-5.3 · glm-5.3-flash · glm-5.3-flashx
GPTgpt-4o · gpt-5.4 · gpt-5.5 · gpt-5.6-luna · gpt-5.6-sol · gpt-5.6-terra · gpt-6-astra · gpt-6-luna · gpt-6-sol · gpt-6.1-terra
Grokgrok-4.5 · grok-4.6 · grok-4.7
Hunyuanhy4-preview
Kimikimi-k2.8-preview · kimi-k3 · kimi-k3.1-pro
MiMomimo-v2.5 · mimo-v2.5-pro · mimo-v2.6-flash · mimo-v2.6-pro
MiniMaxminimax-m3.1-flash
Musemuse-spark-1.2 · muse-spark-1.3 · muse-wonder
openPanguopenpangu-2.0-flash · openpangu-2.0-pro
Qwenqwen3.8-27b · qwen3.8-flash · qwen3.8-max-0902 · qwen3.8-omni-flash
Seedseed-2.0-lite · seed-2.0-mini · seed-2.1-turbo
Stepstep-5-preview

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
Output fingerprint

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.

Tokenizer

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.

Billing check

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.

Response details

The model name, response ID and finish reason the endpoint returns, plus speed.

Automatic second round

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.