Block
Both models flag it. This is the high precision path. On our Nigerian test set it produced two false alarms in forty messages.
Fraud detection API
Wilma reads an SMS and returns one of three answers: block, review, or pass. Built for Nigerian banks and fintechs, where wrongly blocking a customer's OTP costs more than missing a scam.
Try it
Nothing you type here is stored. Try one of the examples if you would rather not think of one.
How it decides
Both models flag it. This is the high precision path. On our Nigerian test set it produced two false alarms in forty messages.
The models disagree. Instead of guessing, the message goes to a human queue. This is where most real fraud in our testing was caught.
Neither model sees fraud. Deliver normally.
The two models were trained on different data and fail on different messages. One knows long form advance fee letters and Nigerian prize language. The other knows short credential harvesting. Between them they flagged every scam in our Nigerian test set. Where they disagree, a person decides rather than a probability.
Evidence
| Test | What it measures | Result |
|---|---|---|
| Held out test set | Data drawn like the training data | 98.1% |
| Nigerian SMS set | Real Nigerian scams and real bank alerts | 80.0% |
| Scams flagged | Recall across both models on that set | 20 of 20 |
| Length experiment | One scam written short, medium, long | 75 / 88 / 88% |
The number we do not lead with.
An earlier version scored 99.24% on public corpora and 80% on Nigerian SMS. Written short, it caught zero scams out of eight. It had learned the shape of long American email rather than fraud itself.
Retraining on short message data fixed that. The honest remaining weakness is false alarms on ordinary transactional messages, which is what our current data collection is for. We would rather tell you this than have you discover it in production.
Developers
curl -X POST https://winifred12-wilma.hf.space/verdict \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"text": "Your OTP is 483920. Do not share it with anyone."}'
Full interactive reference at /docs. Rate limits, usage metering and batch classification are all documented there. Message content is never stored. We keep an API key id, the endpoint called, a message count and a timestamp, and nothing else.
Questions
80% on our 40-message Nigerian evaluation set, and 98.1% on a held out test set drawn from the same distribution as the training data. The second number is the less meaningful one and we say so. The evaluation set is small, so treat every figure here as directional until we publish results on several hundred messages.
Two ways. A missed scam reaches the customer, which is the failure every fraud system has. A false alarm blocks something legitimate, which for a bank is usually worse, because a customer who cannot receive an OTP cannot transact. That is why blocking requires both models to agree and everything uncertain becomes a review rather than a block.
Nothing. Message text is processed in memory to produce a verdict and is never written to storage. What we record is the API key id, the endpoint, a message count and a timestamp, so that usage can be billed. See the privacy policy.
Pricing is not published yet. Wilma is in pilot and we are working with a small number of Nigerian fintechs at no cost while the Nigerian evaluation set grows. Get in touch and we will be straight with you about what stage it is at.
One HTTP POST with a bearer token. A developer can have it screening messages in an afternoon. Batch classification takes up to 50 messages per request.
Wilma is built in Lagos. The models, the evaluation method and the API are all original work, and the evaluation notes including the failures are part of the repository rather than hidden.
Next step
The most useful thing you can do is send us fifty of your own SMS, scam and legitimate, and see how Wilma scores them. That tells you more than any number on this page. We will send back the results either way, including the ones it gets wrong.
Or reply with a message you want tested and we will run it for you.