# Email > Validate one or more email addresses and return normalized values together with syntax and domain quality indicators. ## Endpoint `POST https://{host}:{port}/Egon/api/norm` Replace `{host}` and `{port}` with the address of your Egon instance. ## Headers | Field | Type | Required | Description | | --- | --- | --- | --- | | `token` | String | Yes | Authentication token sent in the `token` request header. | ## Request Country context and collection of email addresses to validate. | Field | Type | Required | Description | | --- | --- | --- | --- | | `par` | Object | Yes | Country context for email validation. | | `par.iso2` | String | No | Country code, ISO 3166-1 alpha-2. One of `iso2` or `iso3` is **required**. | | `par.iso3` | String | No | Country code, ISO 3166-1 alpha-3. One of `iso2` or `iso3` is **required**. | | `data` | Object | Yes | Input data to validate | | `data.emails` | Array | Yes | Email addresses to validate | | `data.emails.email` | String | Yes | Email address | ### Example request ```bash curl -X POST "https://{host}:{port}/Egon/api/norm" \ -H "token: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"par":{"iso3":"ITA"},"data":{"emails":[{"email":"info@egon.com"},{"email":"info@example.com"}]}}' ``` ## Response Normalized email addresses, validation quality indicators, and system status. | Field | Type | Required | Description | | --- | --- | --- | --- | | `data` | Object | No | Normalized and enriched validation output data | | `data.emails` | Array | No | Normalized email addresses | | `data.emails.email` | String | Yes | Email address | | `quality` | Object | No | Validation quality indicators and score flags | | `quality.emails` | Array | No | Quality indicator results for each email | | `quality.emails.flag` | String | No | Quality flag | | `quality.emails.code` | Number | No | Quality result code | | `quality.emails.description` | String | No | Quality result description | | `system` | Object | No | Request processing status. | | `system.ret_code` | Number | No | Processing result code. 0 means no blocking error. | | `system.des_ret_code` | String | No | Human-readable processing result. | ### Example responses **HTTP 200: Valid response** Email addresses verified for correct syntax and domain structure. ```json { "data": { "emails": [ { "email": "info@egon.com" }, { "email": "info@example.com" } ] }, "quality": { "emails": [ { "flag": "0", "code": 0, "description": "Ok" }, { "flag": "0", "code": 0, "description": "Ok" } ] }, "system": { "ret_code": 0, "des_ret_code": "Ok" } } ``` **HTTP 200: Missing par** The request is missing the required par object. ```json { "system": { "ret_code": 1, "des_ret_code": "par not found" } } ``` **HTTP 200: Missing iso2 and iso3** Iso2 or Iso3 field is missing. ```json { "system": { "ret_code": 1, "des_ret_code": "iso2 or iso3 parameter not found" } } ``` **HTTP 200: Invalid iso2** The iso2 value is not valid. ```json { "system": { "ret_code": 1, "des_ret_code": "iso2 not found" } } ``` **HTTP 200: Invalid iso3** The iso3 value is not valid. ```json { "system": { "ret_code": 1, "des_ret_code": "iso3 not found" } } ``` **HTTP 200: Missing data** The request is missing the required data object. ```json { "system": { "ret_code": 1, "des_ret_code": "data not found" } } ``` **HTTP 200: Missing token** Provide the required authentication token in the token request header. ```json { "system": { "ret_code": 1, "des_ret_code": "token not found" } } ``` **HTTP 200: Invalid token** The supplied token is invalid, expired, or not authorized for this service. ```json { "system": { "ret_code": 1, "des_ret_code": "token not valid" } } ```