Skip to content

generated

The username looks machine-made or a placeholder

A hex string, a UUID, a base64-looking run, one or two letters before four digits, a word before six digits, or a placeholder word such as test or asdf.

risk weight
+20
dataset
local-part-analysis
reads from
looks_generated
verdict reason
none: a score-only signal

What it means

The rules are fixed and published on the field: hex of sixteen or more characters, a dashed UUID, twenty or more mixed-case alphanumerics with a digit, one or two letters plus four or more digits, any word plus six or more digits, or a placeholder word (test, tester, testing, temp, fake, asdf, qwerty, abc, sample, example, foo, foobar, null, none, noname, dummy, placeholder) with optional trailing digits. mia1987 and krzysztof are not generated.

It reads from looks_generated, comes with no verdict reason, and is independent of gibberish.

What to do

At signup, read it as a bot signal beside widely_seen; on a list, it is the row a person never typed.

Example response

{
    "email": "[email protected]",
    "deliverable": "deliverable",
    "looks_generated": true,
    "local_part_pattern": "mixed",
    "risk_signals": [
        {
            "signal": "generated",
            "weight": 20,
            "dataset": "local-part-analysis"
        }
    ]
}

Abbreviated: a real answer carries all 46 fields, listed in the verify-email reference. The risk_signals entry shown is the one this signal adds; the weights of every entry in the list sum to risk_score.

Related

markdown version: /docs/signals/generated.md