Provero Logo

UK address validation (PAF) API

Validate an address against Royal Mail PAF. Send the complete address in full_address, or send it across address_line_1, address_line_2, address_line_3, town_city, county and postcode. You only need to send the fields you have; blank fields are ignored.

Set output_format to standard for the clean matched address and a clear outcome. Set it to detailed to receive the same fields plus technical matching information. An address_status of review means a possible match was found but needs review. Only verified confirms a complete match.

Endpoint

POST
https://api.provero.io/api/validate/uk-address

Headers

Authorization:
Content-Type: application/json
Accept: application/json


Request Body

Field Type Required Description
full_address string No The complete address in one field. When this has a value, address_line_1, address_line_2 and address_line_3 are not added to it.
address_line_1 string No The first line of the address. Used when full_address is empty or not sent.
address_line_2 string No The second line of the address. Used when full_address is empty or not sent.
address_line_3 string No The third line of the address. Used when full_address is empty or not sent.
town_city string No The town or city. Used with the separate address fields and to help find the best match.
postcode string No The UK postcode. Used with the separate address fields and to help find the best match.
county string No The county. Used when the address is supplied in separate fields.
output_format string No standard
Clean matched address and summary outcome.

detailed
Standard fields plus technical matching information.
Request Payload Example (JSON)
{
    "full_address": "10 Downing Street, London, SW1A 2AA",
    "postcode": "SW1A 2AA",
    "town_city": "London",
    "output_format": "standard"
}

Request Examples

Choose language Bash (cURL) 5 examples
curl -X POST https://api.provero.io/api/validate/uk-address \
  -H "Authorization: Bearer REPLACE_WITH_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "full_address": "10 Downing Street, London, SW1A 2AA",
    "postcode": "SW1A 2AA",
    "town_city": "London",
    "output_format": "standard"
  }'

Response Examples

Choose response example Standard - Match 11 examples
{
    "address_status": "verified",
    "premise_match": "FULL",
    "address_line_1": "Prime Minister & First Lord Of The Treasury",
    "address_line_2": "10 Downing Street",
    "address_line_3": "",
    "post_town": "LONDON",
    "postcode": "SW1A 2AA",
    "country": "England",
    "full_address": "Prime Minister & First Lord Of The Treasury, 10 Downing Street, LONDON, SW1A 2AA"
}

Response Body

Success structure

Field Name Type Always
Returned
Example
address_status string Yes
premise_match string Yes
address_line_1 string Yes
address_line_2 string Yes
address_line_3 string Yes
post_town string Yes
postcode string Yes
country string Yes
full_address string Yes
count integer Yes
fit number Yes
organisation_match string Yes
postcode_match string Yes
thoroughfare_match string Yes
locality_match string Yes
post_town_match string Yes
query string Yes
valid boolean Yes
address_complete boolean Yes
confidence number Yes
match object|null Yes
match.organisation_name string No
match.department_name string No
match.po_box string No
match.building_name string No
match.building_number string No
match.dependant_thoroughfare string No
match.thoroughfare string No
match.double_dependant_locality string No
match.dependant_locality string No
match.post_town string No
match.postcode string No
match.udprn string No
match.uprn string No

Error structure

Field Name Type Always
Returned
Example Description
message string No Top-level error message returned for malformed requests, insufficient balance, or service errors.
errors object No Validation errors grouped by request field.
requestError object No Returned when no PAF match is found or the address validation service cannot process the request.
service string No Service alias returned with a 402 insufficient-balance response.
required_amount string No Credit amount required to process the validation request.
current_balance string No Current available balance at the time the request was rejected.