Generator · Generic data

Email address from one or more EU countries

Endpoint GET /v1/email

What it covers

Returns a realistic synthetic email address drawn from a mix of EU countries. Pass `countries` as a comma-separated list of ISO codes (`?countries=pl,de,it`) and each record is generated by one of them, picked at random — so a batch can mix Polish, German, and Italian addresses, each with its own regional providers and corporate TLDs. Omit `countries` for all 27; each record reports its `country`. `domain` pins an exact domain; `domainCategory` (`free`/`regional`/`corporate`/`any`) scopes a weighted-random draw. `pattern` selects the local-part shape (`first.last`, `first.company`, …) or `any`. `plusTag` controls plus-addressing — `true` always adds a random tag, `false` never, any other value is the tag verbatim. `exotic=true` opts in to the rarer RFC-valid local-part characters.

Parameters

ParameterTypeDescription
countinteger1–1000Number of records to return, 1–1000 (your plan may lower this). Omitted returns a single record; set it for a batch.
countries"at" | "be" | "bg" | "cy" | "cz" | "de" | "dk" | "ee" | "es" | "fi" | "fr" | "gr" | "hr" | "hu" | "ie" | "it" | "lt" | "lu" | "lv" | "mt" | "nl" | "pl" | "pt" | "ro" | "se" | "si" | "sk"[]Comma-separated ISO 3166 country codes to draw from, e.g. `pl,de,it`. Omit for all 27.
domainstringpattern ^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$Pin an exact domain, e.g. "gmail.com". Overrides domainCategory.
domainCategory"free" | "regional" | "corporate" | "any"Scope the random domain draw: free webmail, regional providers, corporate domains, or any.
edgebooleanRestrict output to edge-case addresses from the rare corners of the format.
exoticbooleanAllow rarer RFC-valid local-part characters (%, =, ~). Off by default.
extremebooleanReturn a correct address whose value is wrapped in a hostile encoding (untrimmed whitespace, invisible/zero-width characters, BOM, homoglyph letters, or bidi/combining marks). localPart, domain, and the decomposition stay clean.
invalidbooleanReturn a deliberately invalid value that fails validation, for testing rejection paths.
pattern"first.last" | "firstlast" | "first_last" | "first.last.number" | "flast" | "initial.last" | "noun.number" | "first.company" | "company.first" | "any"Local-part shape, e.g. "first.last"; "any" picks a weighted-random one.
plusTagstringpattern ^[A-Za-z0-9_-]+$Plus-addressing tag: "true" adds a random tag, "false" none, any other value is used verbatim.
seedintegerInteger seed for reproducible output: the same seed always yields the same record.

Response fields

FieldTypeDescription
valuestringThe full email address, e.g. "anna.schmidt+news@mueller-bau.de".
localPartstringThe part before the `@`, including any plus tag.
domainstringThe domain, e.g. "gmail.com", "wp.pl", or "mueller-bau.de".
pattern"first.last" | "firstlast" | "first_last" | "first.last.number" | "flast" | "initial.last" | "noun.number" | "first.company" | "company.first"Which local-part pattern produced the address.
domainCategory"free" | "regional" | "corporate"Whether the domain is free, regional, or corporate.
companystringThe company name a corporate domain or company local-part was derived from, or `null`.
plusTagstringThe plus-addressing tag, or `null` when none.
countrystringISO 3166 alpha-2 code of the country this address was drawn from.

Other generic generators

Try it

Generate a live example below — every response is valid by format and entirely synthetic.