Address autocomplete
for any website.
One line of code.
Your users start typing an address. A dropdown appears. They pick it. Your form fields fill in automatically — address lines, town, postcode, UPRN and coordinates. No backend. No developer. Just an embed token.
↑ These fields fill automatically when you select an address
Searching against 36M real UK addresses. No signup needed to try it.
Three steps. That's it.
No backend configuration and no server-side code. Paste the snippet, drop in your embed token, and add your domain to the widget's allowed list.
Add the script to your page <head>
One line. Loads the widget JS. No npm and no build step.
<script src="https://homedata.co.uk/js/homedata-address.js" data-token="wt_YOUR_EMBED_TOKEN" data-input="#address-field" data-field-line1="#address-line-1" data-field-postcode="#postcode" data-field-town="#town" defer ></script>
Two things make this work. Replace wt_YOUR_EMBED_TOKEN with the embed token from
your widget settings, and add the domain you are embedding on to that widget's allowed domains. Address requests from a domain that is not on the list are refused.
Set the IDs on your form fields
Match the IDs in the script to your actual form field IDs. That's all the configuration there is.
<!-- Address search input --> <input type="text" id="address-field" placeholder="Start typing an address…"> <!-- These fill in automatically --> <input type="text" id="address-line-1" name="address_line_1"> <input type="text" id="postcode" name="postcode"> <input type="text" id="town" name="town">
You're done. Test it.
Open your page, type a UK address, and your form fields fill in automatically. No deployment and no server-side code. The widget calls our address endpoint directly from the browser, carrying the embed token you paste into the snippet.
Have unusual field names or a complex form?
Use the Widget Builder — configure visually →Log in to your dashboard to drag-and-drop field mappings and copy a pre-configured snippet.
What gets auto-filled
The widget fills address fields in the browser, using the embed token in your snippet. Property data comes from the API, called from your server with the UPRN the widget hands you.
-
Address line 114 Brook Street
-
Address line 2Mayfair
-
Town / CityLondon
-
PostcodeW1K 5AA
-
UPRN100023347891
-
Latitude / Longitude51.5123, -0.1432
The widget returns a UPRN with every selection. Pass it to /property/{uprn}/base/ from your server, authenticated with your API key, and you get the property record back. The browser widget does not carry an API key and does not fetch these fields itself.
-
Property typeTerraced
-
Bedrooms3
-
Floor area94 m²
-
EPC ratingC (73)
-
Bathrooms2
-
Last sold price£385,000
Who uses it
Anyone with a form and UK addresses. You don't need a developer.
Estate & letting agents
Add address autocomplete to your valuation request form, contact form, or property intake. Stops typos. Captures clean postcodes every time.
Solicitors & conveyancers
Clean address entry on client intake forms. Every record gets a UPRN — your permanent identifier for the property throughout the transaction.
Mortgage brokers
Type an address and the application form fills itself — address, postcode, UPRN and coordinates. The UPRN is the key to the property record: pull type, bedrooms, EPC, floor area and tenure from the API when you need them.
Insurance
Get construction details, EPC rating, and floor area at point of quote. Faster underwriting, fewer follow-up calls, cleaner data.
CRMs & databases
Every address entered through your CRM gets a UPRN. Deduplication, data quality, and property record matching become trivial.
Proptech platforms
Don't maintain your own address database. Point at ours — 36M addresses, always current. Every selection returns the full address, town, postcode, coordinates and the UPRN.
Visual Widget Builder
Not sure which field IDs to use? Log in and use the Widget Builder — tell us your form field names, preview the result live, and copy a pre-configured snippet ready to paste.
- Choose preset templates: checkout form, contact form, mortgage application
- Map response fields to your form with a drag-and-drop interface
- Preview with real API calls before you copy the snippet
- Get HTML, JavaScript, and React snippets — copy one, paste in your site
<!-- Generated by Homedata Widget Builder --> <!-- Paste in your <head> --> <script src="https://homedata.co.uk/js/homedata-address.js" data-token="wt_YOUR_EMBED_TOKEN" data-input="#property_address" data-field-line1="#street_address" data-field-line2="#address_2" data-field-town="#city" data-field-postcode="#zip_code" data-field-uprn="#uprn_hidden" defer ></script> <!-- Your form --> <input id="property_address" type="text" placeholder="Start typing address…">
Common questions
Yes, and typing is free. The widget is free to embed, and the suggestions a visitor sees as they type cost nothing — the endpoint the snippet calls does not decrement your balance, however many keystrokes it takes to find the address. You are charged 1 token when a visitor SELECTS an address, because that is the call that returns the UPRN and coordinates. So £10 of tokens covers around 1,000 completed lookups, not 1,000 keystrokes. Property data is a separate call to the API from your own server.
Yes. Any website where you can add a script tag to the head will work. WordPress: add to the theme's header.php or via a plugin. Webflow: Custom Code > Head Code. Squarespace: Settings > Advanced > Code Injection. If you can add raw HTML to your page head, you can use the widget.
No. The widget attaches to whichever input you point it at (via data-input selector) and fills in companion fields on selection. If no match is made, nothing happens. Your form, submit button, and validation all work exactly as before.
Yes. Use the programmatic API: HomedataAddress.init({ widgetToken: 'wt_YOUR_EMBED_TOKEN', embedBase: 'https://homedata.co.uk', input: '#field', onSelect: (addr) => setState(addr) }). The script tag derives both from itself; when you call init yourself you pass them. Or use it as a script tag — it works in any browser context regardless of framework.
The widget sends partial address queries to our API as the user types. We don't store queries or associate them with users. Responses are served from our UK-hosted infrastructure. See our privacy policy for the full picture.
Yes. The endpoint the snippet calls is limited to 120 requests a minute per IP — generous for typeahead, and enough to stop bulk extraction. Keystrokes are NOT billable on this path: the suggestion lookup does not decrement your balance, so debouncing is a courtesy to the visitor rather than a way to control cost. The direct API, called from your own server with an API key, is metered separately.
How we compare
A UK address widget that fills address fields, UPRN and coordinates, authenticated by the embed token in your snippet.
| Feature | Homedata | getAddress | Ideal Postcodes | Loqate |
|---|---|---|---|---|
| Embeddable widget | ✓ Free | ✗ Shut down | ✓ Paid | ✓ Enterprise |
| Address + UPRN | ✓ 1 token on select | — | ✓ Free | ✗ |
| Property data available | ✓ Via API | ✗ Never | ✗ Never | ✗ Never |
| EPC rating available | ✓ | ✗ | ✗ | ✗ |
| Bedrooms & type available | ✓ | ✗ | ✗ | ✗ |
| Self-serve signup | ✓ 3 mins | — | ✓ | ✗ Demo call |
| Pricing | Pay as you go (100 tokens = £1) | Shut down | Subscription | Enterprise |
Need more control? Use the API directly.
The widget is a convenience layer. Under the hood, it's three REST endpoints — address/find, address/postcode, and address/retrieve. Hit them directly from any language.
Add address autocomplete today.
Try it with no account. Typing is free and a completed lookup costs 1 token (100 tokens = £1). Sign up to access property data enrichment and the Widget Builder.
Pay as you go — 100 tokens = £1, no subscription needed. In the widget, typing is free and a completed lookup costs 1 token; property data from the API is charged per call.