# Phone > Validate and normalize telephone numbers provided either as individual international and national prefix components or as a single full number. ## 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 telephone numbers to normalize and validate. | Field | Type | Required | Description | | --- | --- | --- | --- | | `par` | Object | Yes | Country context for phone number normalization. | | `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.phones` | Array | Yes | Collection of telephone numbers to validate | | `data.phones.pre_int` | String | No | International telephone prefix | | `data.phones.pre_nat` | String | No | National telephone prefix | | `data.phones.number` | String | Yes | Telephone number | ### 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":{"phones":[{"pre_int":"39","pre_nat":"045","number":"8200794"},{"number":"390458201847"}]}}' ``` ## Response Normalized phone numbers with country prefixes, line type codes, quality indicators, and system status. | Field | Type | Required | Description | | --- | --- | --- | --- | | `data` | Object | No | Normalized and enriched validation output data | | `data.phones` | Array | No | Normalized telephone entries | | `data.phones.iso3` | String | No | Country code (ISO 3166-1 alpha-3) | | `data.phones.type` | String | No | Telephone-number type code | | `data.phones.pre_int` | String | No | Normalized international dialing prefix | | `data.phones.pre_nat` | String | No | Normalized national dialing prefix | | `data.phones.number` | String | No | Normalized local telephone number | | `quality` | Object | No | Validation quality indicators and score flags | | `quality.phones` | Array | No | Quality result for each returned phone entry | | `quality.phones.flag` | String | No | Quality flag | | `quality.phones.code` | Number | No | Quality result code | | `quality.phones.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** Phone numbers validated, separated into international and national prefixes, and standardized. ```json { "data": { "phones": [ { "iso3": "ITA", "type": "00001", "pre_int": "+39", "pre_nat": "045", "number": "8200794" }, { "iso3": "ITA", "type": "00001", "pre_int": "+39", "pre_nat": "045", "number": "8201847" } ] }, "quality": { "phones": [ { "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" } } ```