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
| Parameter | Type | Description |
|---|---|---|
| count | integer1–1000 | Number 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. |
| domain | stringpattern ^[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. |
| edge | boolean | Restrict output to edge-case addresses from the rare corners of the format. |
| exotic | boolean | Allow rarer RFC-valid local-part characters (%, =, ~). Off by default. |
| extreme | boolean | Return 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. |
| invalid | boolean | Return 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. |
| plusTag | stringpattern ^[A-Za-z0-9_-]+$ | Plus-addressing tag: "true" adds a random tag, "false" none, any other value is used verbatim. |
| seed | integer | Integer seed for reproducible output: the same seed always yields the same record. |
Response fields
| Field | Type | Description |
|---|---|---|
| value | string | The full email address, e.g. "anna.schmidt+news@mueller-bau.de". |
| localPart | string | The part before the `@`, including any plus tag. |
| domain | string | The 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. |
| company | string | The company name a corporate domain or company local-part was derived from, or `null`. |
| plusTag | string | The plus-addressing tag, or `null` when none. |
| country | string | ISO 3166 alpha-2 code of the country this address was drawn from. |
Other generic generators
Try it