{"id":3697,"date":"2023-11-11T17:19:23","date_gmt":"2023-11-11T15:19:23","guid":{"rendered":"https:\/\/www.geopostcodes.com\/en-GB\/?p=3697"},"modified":"2026-04-01T07:01:01","modified_gmt":"2026-04-01T07:01:01","slug":"the-quickest-way-to-build-an-address-autocomplete-api","status":"publish","type":"post","link":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/","title":{"rendered":"Address Autocomplete API: How to Build it Quickly for Free?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Key Takeaways<\/strong><\/h2>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Address autocomplete suggests correct addresses while typing, preventing errors<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Structure data and choose logical field order for API building<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add features like fuzzy search and weighted data for better suggestions<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use reliable data sources to ensure accuracy and successful deliveries<\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>An&nbsp;<em>address autocomplete<\/em>&nbsp;is an <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/address-cleansing\/\" target=\"_blank\" rel=\"noreferrer noopener\">address<\/a> form feature that\u2019s kind of just what it says on the tin: it automatically suggests addresses to users as they type into an online form. It\u2019s an elegant way to ensure accuracy as a user inputs all the components of a complete <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/address-standardization\/\" target=\"_blank\" rel=\"noreferrer noopener\">address<\/a>, like country, city, postal code, and street.<\/p>\n\n\n\n<p>But building a form to capture an address with auto-complete and <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/address-validation-service\/\">validation<\/a> can be quite <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-7-challenges-of-building-a-standardized-zip-code-database\/\" target=\"_blank\" rel=\"noreferrer noopener\">challenging<\/a>. What should the form ask for first: the postal code or the region? Which data input should use auto-complete? Which reliable data source should be used? How to optimize UI responsiveness?<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#e9f6fe\">\ud83c\udf0e Want to eliminate <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/international-address-verification\/\">international address validation<\/a> errors? Access our enterprise postal postcode database with international address formats. Precise, accurate, and up-to-date.&nbsp;<a href=\"https:\/\/public.geopostcodes.com\/portal-signup\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Browse GeoPostcodes database for free.<\/strong><\/a><\/p>\n\n\n\n<p>In this article, you will learn all the steps required to build a backend API for address completion.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The technicalities of building an API backend and frontend are beyond the scope of this article. They\u2019re too dependent on your chosen programming language. As a personal recommendation, I favor React with&nbsp;<a href=\"https:\/\/mui.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Material UI<\/a>&nbsp;for the frontend and Node.js with&nbsp;<a href=\"https:\/\/expressjs.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Express<\/a>&nbsp;for the backend. But you will need some solid technical knowledge about building an API backend and frontend before you read on.<\/p>\n<\/blockquote>\n\n\n\n<div id=\"wp-block-themeisle-blocks-advanced-columns-bfad01ca\" class=\"wp-block-themeisle-blocks-advanced-columns alignfull has-2-columns has-desktop-equal-layout has-tablet-equal-layout has-mobile-collapsedRows-layout has-reverse-columns-mobile has-vertical-center ticss-a2946a77 has-light-bg\"><div class=\"wp-block-themeisle-blocks-advanced-columns-overlay\"><\/div><div class=\"innerblocks-wrap\">\n<div id=\"wp-block-themeisle-blocks-advanced-column-2e6a7ba4\" class=\"wp-block-themeisle-blocks-advanced-column\">\n<figure class=\"wp-block-video ticss-4b993667\"><video height=\"582\" style=\"aspect-ratio: 882 \/ 582;\" width=\"882\" autoplay=\"\" loop=\"\" src=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/GPCGifAutocompletesmallsize-ezgif.com-gif-to-mp4-converter-online-video-cutter.com_.mp4\" playsinline=\"\"><\/video><\/figure>\n<\/div>\n\n\n\n<div id=\"wp-block-themeisle-blocks-advanced-column-a443c251\" class=\"wp-block-themeisle-blocks-advanced-column\">\n<p id=\"wp-block-themeisle-blocks-advanced-heading-850c834b\" class=\"wp-block-themeisle-blocks-advanced-heading wp-block-themeisle-blocks-advanced-heading-850c834b\"><strong>Address Autocomplete<\/strong><\/p>\n\n\n\n<p class=\"has-text-color\" style=\"color:#01295f;margin-bottom:var(--wp--preset--spacing--50);font-size:16px\">Visualize how easy it can be with our <strong>self-hosted location data<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons has-custom-font-size has-small-font-size is-horizontal is-content-justification-left is-layout-flex wp-container-core-buttons-is-layout-11fb9a57 wp-block-buttons-is-layout-flex\" style=\"margin-top:0\">\n<div class=\"wp-block-button has-custom-font-size is-style-primary is-style-fill\" style=\"font-size:16px\"><a class=\"wp-block-button__link has-ast-global-color-5-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/www.geopostcodes.com\/en-GB\/address-autocomplete\/\" style=\"border-style:none;border-width:0px;border-radius:100px;background-color:#c42990;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--50)\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Get Started<\/strong><\/a><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-an-address-autocomplete-feature-actually-look-like-\">What Does an Address Autocomplete Feature Actually Look Like?<\/h2>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>To expound on my earlier definition, an <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/address-autocomplete\/\" target=\"_blank\" rel=\"noreferrer noopener\">address autocomplete<\/a> feature generates suggestions based on previously entered information as the user enters data into the form. The user can easily choose from a list of options, ensuring the accuracy of the input address. This is especially useful when someone needs to enter a long or complex address or when the user isn\u2019t familiar with a <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/international-address-data\/\" target=\"_blank\" rel=\"noreferrer noopener\">specific address format<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1019\" src=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Blog-JJ-2-1-1024x1019.png\" alt=\"API example\" class=\"wp-image-3767\" style=\"width:414px;height:412px\" srcset=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Blog-JJ-2-1-1024x1019.png 1024w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Blog-JJ-2-1-300x300.png 300w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Blog-JJ-2-1-150x150.png 150w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Blog-JJ-2-1-768x764.png 768w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Blog-JJ-2-1.png 1068w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:80px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-is-address-autocomplete-important-\">Why Is Address Autocomplete Important?<\/h2>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>An efficient address autocompletion form on your website prevents you from ingesting inaccurate data, like typos or nonexistent addresses. Unless you allow free entry, you could also lose sign-ups or orders. But allowing that will even worsen the data quality.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Critical Role in Data Quality<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ensuring data quality right from the start is critical for proper data processing. Without it, you risk having incorrect shipping addresses, which can cause delays, extra costs, warnings in your billing system, or incorrect recommendations from a store locator feature\u2014all bad for your business and user experience.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Positive Impact and Benefits<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>We&#8217;ll explore the benefits of Address Autocompletion, from enhancing user experience to improving data quality and operational efficiency.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Easier User Experience<\/h4>\n\n\n\n<p>But the feature isn\u2019t just about preventing negative events. Address autocompletion can have quite a positive impact simply by making things easier on your users, like when someone has a time constraint and needs to complete a purchase quickly. <\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Enhanced Data Quality and Operational Efficiency<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>It will also increase the overall quality of all the addresses you collect in your database, decreasing your operational costs.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"702\" height=\"473\" src=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-2-1-png.webp\" alt=\"\" class=\"wp-image-27568\" style=\"width:546px;height:auto\" srcset=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-2-1-png.webp 702w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-2-1-300x202.webp 300w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"building-and-implementing-an-address-autocomplete-api\">Building and Implementing an Address Autocomplete API<\/h2>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For this article, I\u2019m going to assume that you\u2019re using a data source with a structure similar to this:<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Countries<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Lists all countries and their corresponding <a href=\"https:\/\/public.geopostcodes.com\/administrative-divisions-names-iso-3166-2\" target=\"_blank\" rel=\"noreferrer noopener\">ISO code<\/a>. This table should also include metadata cataloging which data is present or not, like streets that might be missing or whether no postal codes exist for a certain country.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Places<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Linked to a country, lists the cities and towns.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Postal codes<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Linked to a place, lists the related postal codes. Note that one postal code can be included in more than one place.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Streets<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Linked to a place and a postal code, lists all related streets. Note that the same street can cross multiple places or postal codes.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"keep-a-few-tips-in-mind\">Keep a Few Tips in Mind<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Keep a few tips in mind as we explore managing house and apartment numbers, handling missing data, and leveraging a backend API for <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/address-validation-service\/\">address validation<\/a> and autocomplete functionality.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>House and Apartment Numbers<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For building and apartment numbers, I work on the assumption that the data source doesn\u2019t provide accurate information. Having a complete and accurate source of house numbers is difficult, so I advise you to leave that as a free input. Otherwise, your captured data quality will probably be impaired.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Handling Missing Data<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Note that some countries don\u2019t have postal codes, or your data source might not have accurate data for that country. In that case, show a free input for the fields that are missing data.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Backend API and Referential Database<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The form built in this tutorial calls a backend API that\u2019s linked to a referential database. The API sends back and validates the data from the source and provides autocomplete when necessary. It\u2019s important to remember that the quality of the result depends greatly on the quality of the reference data source. You can read the paragraph <a href=\"#ensuring-the-quality-of-your-datasource\">Ensuring the Quality of Your Datasource<\/a> to learn more about this.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"choose-your-field-order\">Choose Your Field Order<\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>There are two possible ways to approach building this form. You can enforce the fields to fill in this order:<\/p>\n\n\n\n<p><strong>1. Country -&gt; Postal code -&gt; Locality -&gt; Street.<\/strong>&nbsp;This approach is easier technically, but some users might prefer to see a filtered list of postal codes.&nbsp;<br><strong>2. Country -&gt; Locality -&gt; Postal code -&gt; Street.<\/strong>&nbsp;This is a more traditional approach.<\/p>\n\n\n\n<p>I recommend combining the two approaches in one form and letting the user fill in whichever field they want first. The country should still be enforced as the first field to fill because it&#8217;s information all the users can give quickly and correctly. It also narrows the possible choices and allows you to hide or show some fields. As mentioned earlier, some countries <a href=\"https:\/\/public.geopostcodes.com\/international-zip-code-formats-download\" target=\"_blank\" rel=\"noreferrer noopener\">don\u2019t even have postal codes<\/a>, so you wouldn\u2019t need to show a field for them.<\/p>\n\n\n\n<p>The final result for Approach 1 should look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/rKUabna.png\" alt=\"Autofilling data with postal code first - Approach 1\" style=\"width:318px;height:384px\"><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The final result for Approach 2 should look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/Sh1hh81.png\" alt=\"Autofilling data with places first - Approach 2\" style=\"width:325px;height:398px\"><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"display-the-data-in-the-form\">Display the Data in the Form<\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For some endpoints, the data is returned based on what the user is currently typing. To avoid having too many hits on your API endpoint, I recommend a delay of 20 ms. In that time, the user might continue typing their query; by introducing a delay, you avoid sending useless queries to the backend.<\/p>\n\n\n\n<p>A convenient way to implement that functionality is to use the&nbsp;<a href=\"https:\/\/www.learnrxjs.io\/learn-rxjs\/operators\/filtering\/debouncetime\" target=\"_blank\" rel=\"noreferrer noopener\">RxJS debounceTime feature<\/a>.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"build-the-api\">Build the API<\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Here I\u2019ll describe all the endpoints you need to serve to have a complete API. But first, let me share a few quick insights that I\u2019ve found helpful:<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Parameter Reuse in Queries<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If a path contains a colon (<code>:<\/code>), that indicates a parameter that will be reused in the query.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Content Structure for POST Requests<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For POST requests, the content\u2019s structure is described as the&nbsp;<em>payload<\/em>&nbsp;in a JSON format.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Autocomplete Endpoint Considerations<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For all the API endpoints doing an autocomplete, don\u2019t return anything if the user hasn\u2019t started typing. It would make little sense in terms of user experience.<\/li>\n\n\n\n<li>When filtering on a user\u2019s input, always do a case-insensitive search with wildcards before and after<\/li>\n\n\n\n<li>The queries that might return a lot of data should be limited to 100 results to increase the query performance and the response time.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Unique Identifiers and Licensing<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consider that important entities like postal codes and places will have a unique identifier. Depending on your data source, the structure might differ slightly.<\/li>\n\n\n\n<li>Depending on your data source\u2019s license, you might want to implement a per-user throttling and quota mechanism to avoid scrapping all the data.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"approaches-1-and-2-country\">Approaches 1 and 2 \u2014 Country<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Endpoint:<\/strong>&nbsp;<code>GET \/countries<\/code><\/p>\n\n\n\n<p>This returns the list of countries without any filtering. The list is short to be loaded entirely on the client side.<\/p>\n\n\n\n<p>Again, remember that some countries don\u2019t have postal codes, and your data source might not have street data for all the countries. This is a good place to return that information and show a free text field for the missing data.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"approach-1-postal-codes-from-country\">Approach 1 \u2014 Postal codes from Country<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Endpoint:<\/strong>&nbsp;<code>GET \/countries\/:iso\/postcodes\/:postcode<\/code><\/p>\n\n\n\n<p>This returns the autocompletion of a postal code for a given country. The data must be filtered on the postal code.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"approach-2-places-from-country\">Approach 1 \u2014 Places from Postcode<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Endpoint:<\/strong>&nbsp;<code>GET \/postcodes\/:postcodeId\/places<\/code><\/p>\n\n\n\n<p>Given a postal code, the API will return all the associated places.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"approach-2-places-from-country\">Approach 2 \u2014 Places from Country<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Endpoint:<\/strong>&nbsp;<code>POST \/countries\/:iso\/places<\/code>&nbsp;<strong>Payload:<\/strong>&nbsp;<code>{ place }<\/code><\/p>\n\n\n\n<p>This query should return all the places in a country. The data is filtered on the place entered by the user.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"approach-2-postal-codes-from-place\">Approach 2 \u2014 Postal codes from Place<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Endpoint:<\/strong>&nbsp;<code>GET \/places\/:placeId\/postcodes\/:postcode<\/code><\/p>\n\n\n\n<p>If the user chose a place from a country, this endpoint must be used to autocomplete the postal code.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"approach-1-and-2-street-from-place\">Approach 1 and 2 \u2014 Street from Place<\/h4>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Endpoint:<\/strong>&nbsp;<code>POST \/places\/:placeId\/streets<\/code>&nbsp;<strong>Payload:<\/strong>&nbsp;<code>{ postcodeId, street }<\/code><\/p>\n\n\n\n<p>Note that the place and the postal code should be necessary to filter the street correctly. This of course, depends on your data source, but combining both usually offers the most accurate discriminator.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"improving-your-address-autocomplete-api\">Improving Your Address Autocomplete API<\/h2>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The autocomplete mechanism presented in this article only works on perfect matches. That\u2019s rarely good enough, so you\u2019ll likely want to improve on what we\u2019ve already got here.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"implement-full-text-search\">Implement Full Text Search<\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Users are going to make spelling mistakes. To alleviate that in simple projects, you can use trigrams or the full-text search capability of your DBMS.<\/p>\n\n\n\n<p>For more complex solutions, you can use a dedicated search engine such as&nbsp;<a href=\"https:\/\/www.elastic.co\/elasticsearch\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elasticsearch<\/a>,&nbsp;<a href=\"https:\/\/opensearch.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenSearch<\/a>, or&nbsp;<a href=\"https:\/\/typesense.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Typesense<\/a>.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"use-additional-datasets\">Use Additional Datasets<\/h3>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Additional data can significantly enhance the user experience.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Weighted Data for Auto-completion<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For example, consider how&nbsp;<em>weighted data<\/em>&nbsp;can improve the auto-completion. The most important places have a heavier weight, which would sort the results in a comprehensible order for the user while aiding in disambiguation. With correctly weighted data,&nbsp;Boston (Massachusetts)&nbsp;would appear first in a list of the many cities named Boston in the United States.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Grouping Places for User Expectations<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Another interesting improvement would be grouping places by the name people expect to find. For example, London doesn\u2019t actually exist as a place within the fine-grained English administrative divisions but is rather a group of boroughs. Your users will probably still be looking for&nbsp;<code>London<\/code>, though.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ensuring-the-quality-of-your-datasource\">Ensuring the Quality of Your Datasource<\/h2>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The quality of the data source used to build your API is critical to the success of your autocomplete feature. Otherwise, you\u2019ll gather incomplete information at best and inaccurate information at worst. If a user enters data not present in your dataset, and you\u2019ve made the use of your data mandatory, you could even lose the sign-up or the order, decreasing your overall conversion rates. This can be mitigated by allowing free text to be entered, but will worsen the captured data quality.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Data Source Requirements<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The data source you work with needs to include an up-to-date, exhaustive list of valid postal codes and places for all your target countries. Streets can be left optional, but having a complete list of streets helps. As it\u2019s difficult always to have an up-to-date list of valid addresses, it\u2019s best to allow free text. You can combine both approaches by trying auto-complete first and then allowing free text if nothing is found.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Options for Data Sources<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>You\u2019ve got 2 main options for your sources.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Free or Open-Source Data Providers<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If you\u2019d like to use free or open-source data providers, we recommend combining&nbsp;GeoNames&nbsp;and&nbsp;OpenStreetMap. GeoNames links places to postal codes for 96 countries, while OpenStreetMap offers street coverage for most countries.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Paid Solution<\/strong><\/h4>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If you want to invest in a paid solution, I recommend our GeoPostcodes database. It contains places for all countries in the world, postal codes for all countries using them, and streets for a third of the countries. It\u2019s updated every week, relying on more than 1,500 sources. You would benefit from the fact that postal codes and streets are already linked in a unified structure. Based on our experience, it would increase the quality of your API and its speed of implementation. <a href=\"https:\/\/public.geopostcodes.com\/portal-signup\" target=\"_blank\" rel=\"noreferrer noopener\">Browse our datasets<\/a> yourself and access our map explorer for free.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"843\" height=\"400\" src=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-1-png.webp\" alt=\"\" class=\"wp-image-27569\" style=\"width:620px;height:auto\" srcset=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-1-png.webp 843w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-1-300x142.webp 300w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-1-768x364.webp 768w\" sizes=\"(max-width: 843px) 100vw, 843px\" \/><\/figure>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The API described in this tutorial would benefit from GeoPostcode products like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Our&nbsp;<a href=\"https:\/\/www.geopostcodes.com\/en-GB\/street-address-database\/\" target=\"_blank\" rel=\"noreferrer noopener\">postal normalized street database<\/a><\/strong>:&nbsp;It includes alternative place names in foreign languages.<\/li>\n\n\n\n<li><a href=\"https:\/\/public.geopostcodes.com\/town-weights\"><strong>City ranking<\/strong><\/a>:&nbsp;This improves results sorting by putting the most relevant city first.<\/li>\n\n\n\n<li><a href=\"https:\/\/public.geopostcodes.com\/city-tags\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>City tags<\/strong>:<\/a>&nbsp;You can natively incorporate large cities and metropoles in the search.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"334\" src=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-3-png.webp\" alt=\"\" class=\"wp-image-27573\" style=\"width:426px;height:auto\" srcset=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-3-png.webp 494w, https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/11\/Geopostcodes-address-autocomplete-api-free-3-300x203.webp 300w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/figure>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\"><strong>Importance of Autocomplete Address Form<\/strong><\/h2>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Having an <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/address-autocomplete\/\" target=\"_blank\" rel=\"noreferrer noopener\">autocomplete address form<\/a> is crucial to many business processes, like <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/supply-chain-master-data-management\/\" target=\"_blank\" rel=\"noreferrer noopener\">logistics <\/a>or online sales. It vastly improves data quality and ensures correct data processing. With all the information covered here\u2014what it looks like to start with the postal code or place for your form and why you\u2019ve got to have a reliable and updated data source\u2014you should be well on your way to creating the perfect form to capture accurate addresses.<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<div id=\"wp-block-themeisle-blocks-accordion-aa5641a4\" class=\"wp-block-themeisle-blocks-accordion exclusive is-style-default  has-light-content-bg\">\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong>What is address autocomplete?<\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>An address autocomplete is a functionality used in online forms and mapping applications to assist users in entering addresses <strong>in the <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/international-address-data\/\" target=\"_blank\" rel=\"noreferrer noopener\">right format<\/a>.<\/strong><\/p>\n\n\n\n<p>When a user types an address in a form field or address search bar, the address autocomplete system suggests potential matching results based on <strong>relevance or proximity<\/strong> to the user\u2019s location.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong>What is a global address autocomplete API and how does it ensure correct address input?<\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>A global address autocomplete API is a tool designed to streamline the address input process by suggesting valid addresses in real-time as users type. By leveraging local postal authority formats, this API enhances address data quality and verifies the accuracy of addresses entered into address forms. Businesses can customize the API to match specific address forms, ensuring that users input correct addresses according to the local postal authority format for a valid address.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong>How can businesses enhance address data quality with address autocomplete and verification tools?<\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Businesses can enhance address data quality by implementing address autocomplete and verification tools. These tools suggest valid addresses in real-time and verify them against local postal authority formats, ensuring the accuracy of addresses collected through online forms. By prioritizing address data quality, businesses reduce errors and improve the reliability of their address databases, thus ensuring they collect valid addresses.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong><strong>What role does local postal authority format play in address verification?<\/strong><\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Local postal authority format plays a crucial role in address verification as it serves as the standard for valid addresses in a specific region. Address verification tools compare input addresses against local postal authority formats to ensure correctness and validity. By adhering to the local postal authority format, businesses can optimize address data quality and reduce errors in address submission, ensuring they collect valid addresses.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>How does address autocomplete API streamline the address input process?<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Address autocomplete API streamlines the address input process by suggesting valid addresses as users type. This real-time suggestion feature reduces the likelihood of errors and incomplete submissions, thereby enhancing address data quality. By offering accurate suggestions based on the local postal authority format for a valid address, address autocomplete API improves user experience and efficiency in address input.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong><strong><strong><strong><strong>Can a user input address manually when using an autocomplete address API?<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Yes, users have the option to input addresses manually when using an address autocomplete API. This allows users to enter addresses directly, bypassing the autocomplete suggestions if desired. Whether pinpointing a location on a map or specifying a specific address, manual input offers flexibility and ensures accurate address information.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong><strong><strong><strong><strong><strong>How does Google Map enhance the functionality of an autocomplete address API?<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Google Maps enhances the functionality of an autocomplete address API by providing maps and location data. By integrating with Google Maps, an autocomplete address API ensures that users can easily find and select addresses from the map, further improving the accuracy and relevance of address suggestions.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong><strong><strong><strong><strong><strong><strong>How does an address autocomplete API improve address input?<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>An address autocomplete API enhances address input by providing address suggestions as users type. This autocomplete functionality reduces errors, speeds up address search, and improves address data quality. When a user enters an address, the address autocomplete API returns a list of potential matches via an HTTP request.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-themeisle-blocks-accordion-item\"><summary class=\"wp-block-themeisle-blocks-accordion-item__title\"><div><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>How can I use a free address autocomplete API?<\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/div><\/summary><div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>To use a free address autocomplete API, sign up for an API key and integrate it into your system. The API helps in validating addresses by providing accurate suggestions during user input.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/details>\n\n  \n  <details class=\"wp-block-themeisle-blocks-accordion-item\">\n    <summary class=\"wp-block-themeisle-blocks-accordion-item__title\">\n      <div><strong>What address data source should I use for autocomplete?<\/strong><\/div>\n    <\/summary>\n    <div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n      \n      <div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n      \n\n      \n      <p>GeoPostcodes&#8217; <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/master-address-list\/\">master address list<\/a> provides comprehensive address data perfect for building autocomplete functionality, especially for US addresses.<\/p>\n      \n\n      \n      <div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n      \n    <\/div>\n  <\/details>\n  \n\n  \n  <details class=\"wp-block-themeisle-blocks-accordion-item\">\n    <summary class=\"wp-block-themeisle-blocks-accordion-item__title\">\n      <div><strong>How can I validate addresses selected from autocomplete?<\/strong><\/div>\n    <\/summary>\n    <div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n      \n      <div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n      \n\n      \n      <p>Integrate GeoPostcodes&#8217; <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/address-validation-service\/\">address validation tool<\/a> to verify addresses selected through your autocomplete feature, ensuring data quality.<\/p>\n      \n\n      \n      <div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n      \n    <\/div>\n  <\/details>\n  \n\n  \n  <details class=\"wp-block-themeisle-blocks-accordion-item\">\n    <summary class=\"wp-block-themeisle-blocks-accordion-item__title\">\n      <div><strong>Does GeoPostcodes support international autocomplete?<\/strong><\/div>\n    <\/summary>\n    <div class=\"wp-block-themeisle-blocks-accordion-item__content\">\n      \n      <div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n      \n\n      \n      <p>Yes, our <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/\">world postal code<\/a> database and <a href=\"https:\/\/www.geopostcodes.com\/en-GB\/international-address-verification\/\">international address checker<\/a> support autocomplete for addresses worldwide.<\/p>\n      \n\n      \n      <div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n      \n    <\/div>\n  <\/details>\n  \n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>To build an accurate address autocomplete API you&#8217;ll need to streamline your data input, validation, and user interface. In this blog post, we&#8217;ll share expert tips on how to build your own address autocomplete API. <\/p>\n","protected":false},"author":1,"featured_media":11383,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[41],"tags":[39,40,36,44],"class_list":["post-3697","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-address-validation","tag-address-autocomplete-page","tag-home-page","tag-postal-product-page","tag-street-product-page"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Address Autocomplete API : Quickest Way to Build it for free<\/title>\n<meta name=\"description\" content=\"A step-by-step tutorial to build an accurate autocomplete API using a database with postal codes, countries, places, and streets.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Quickest Way to Build an Address Autocomplete API\" \/>\n<meta property=\"og:description\" content=\"Learn how to streamline data input, validation, and UI responsiveness to build a reliable API for accurate address validation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\" \/>\n<meta property=\"og:site_name\" content=\"GeoPostcodes\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-11T15:19:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-01T07:01:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geopostcodes.com\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"783\" \/>\n\t<meta property=\"og:image:height\" content=\"336\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00f4me Mesters\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"The Quickest Way to Build an Address Autocomplete API\" \/>\n<meta name=\"twitter:description\" content=\"Learn how to streamline data input, validation, and UI responsiveness to build a reliable API for accurate address validation.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00e9r\u00f4me Mesters\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\"},\"author\":{\"name\":\"J\u00e9r\u00f4me Mesters\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/person\/3983c8e2bcd6d8ec66dfc80b3661fb51\"},\"headline\":\"Address Autocomplete API: How to Build it Quickly for Free?\",\"datePublished\":\"2023-11-11T15:19:23+00:00\",\"dateModified\":\"2026-04-01T07:01:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\"},\"wordCount\":2859,\"publisher\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp\",\"keywords\":[\"Address autocomplete page\",\"Home page\",\"Postal product page\",\"Street Product Page\"],\"articleSection\":[\"Address Validation\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\",\"url\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\",\"name\":\"Address Autocomplete API : Quickest Way to Build it for free\",\"isPartOf\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp\",\"datePublished\":\"2023-11-11T15:19:23+00:00\",\"dateModified\":\"2026-04-01T07:01:01+00:00\",\"description\":\"A step-by-step tutorial to build an accurate autocomplete API using a database with postal codes, countries, places, and streets.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage\",\"url\":\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp\",\"contentUrl\":\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp\",\"width\":783,\"height\":336,\"caption\":\"GeoPostcodes-Build you address validation API\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.geopostcodes.be\/en-GB\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Address Autocomplete API: How to Build it Quickly for Free?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#website\",\"url\":\"https:\/\/www.geopostcodes.com\/en-GB\/\",\"name\":\"GeoPostcodes\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.geopostcodes.com\/en-GB\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#organization\",\"name\":\"GeoPostcodes\",\"url\":\"https:\/\/www.geopostcodes.com\/en-GB\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2021\/04\/cropped-GeoPostcodes-color@2x-png.webp\",\"contentUrl\":\"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2021\/04\/cropped-GeoPostcodes-color@2x-png.webp\",\"width\":1331,\"height\":207,\"caption\":\"GeoPostcodes\"},\"image\":{\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/person\/3983c8e2bcd6d8ec66dfc80b3661fb51\",\"name\":\"J\u00e9r\u00f4me Mesters\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.geopostcodes.com\/wp-content\/uploads\/2025\/03\/cropped-GG-scaled-1-512x512.webp\",\"contentUrl\":\"https:\/\/www.geopostcodes.com\/wp-content\/uploads\/2025\/03\/cropped-GG-scaled-1-512x512.webp\",\"caption\":\"J\u00e9r\u00f4me Mesters\"},\"description\":\"I am J\u00e9r\u00f4me Mesters, the technical lead, and head of IT at GeoPostcodes. I'm responsible for engineering and monitoring the cloud infrastructure. I'm also in charge of creating and maintaining the internal tools. I have designed and developed the download API used by customers to download our products. My technical lead profile pushes me to learn and advise all the departments on the most suited technologies to implement. I have more than 20 years of experience allowing me to have advanced knowledge in various subjects like Linux server administration, database optimization, software development, and technical analysis. My favorite language of the moment is Node.JS coupled with Typescript. A perfect day is learning a new technology or cool tool and being able to quickly put it into practice.\",\"sameAs\":[\"https:\/\/beta-www.geopostcodes.com\"],\"url\":\"https:\/\/www.geopostcodes.com\/en-GB\/blog\/author\/jerome-mesters\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Address Autocomplete API : Quickest Way to Build it for free","description":"A step-by-step tutorial to build an accurate autocomplete API using a database with postal codes, countries, places, and streets.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/","og_locale":"en_US","og_type":"article","og_title":"The Quickest Way to Build an Address Autocomplete API","og_description":"Learn how to streamline data input, validation, and UI responsiveness to build a reliable API for accurate address validation.","og_url":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/","og_site_name":"GeoPostcodes","article_published_time":"2023-11-11T15:19:23+00:00","article_modified_time":"2026-04-01T07:01:01+00:00","og_image":[{"width":783,"height":336,"url":"https:\/\/www.geopostcodes.com\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","type":"image\/webp"}],"author":"J\u00e9r\u00f4me Mesters","twitter_card":"summary_large_image","twitter_title":"The Quickest Way to Build an Address Autocomplete API","twitter_description":"Learn how to streamline data input, validation, and UI responsiveness to build a reliable API for accurate address validation.","twitter_image":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","twitter_misc":{"Written by":"J\u00e9r\u00f4me Mesters","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#article","isPartOf":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/"},"author":{"name":"J\u00e9r\u00f4me Mesters","@id":"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/person\/3983c8e2bcd6d8ec66dfc80b3661fb51"},"headline":"Address Autocomplete API: How to Build it Quickly for Free?","datePublished":"2023-11-11T15:19:23+00:00","dateModified":"2026-04-01T07:01:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/"},"wordCount":2859,"publisher":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/#organization"},"image":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","keywords":["Address autocomplete page","Home page","Postal product page","Street Product Page"],"articleSection":["Address Validation"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/","url":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/","name":"Address Autocomplete API : Quickest Way to Build it for free","isPartOf":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage"},"image":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","datePublished":"2023-11-11T15:19:23+00:00","dateModified":"2026-04-01T07:01:01+00:00","description":"A step-by-step tutorial to build an accurate autocomplete API using a database with postal codes, countries, places, and streets.","breadcrumb":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#primaryimage","url":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","contentUrl":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","width":783,"height":336,"caption":"GeoPostcodes-Build you address validation API"},{"@type":"BreadcrumbList","@id":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/the-quickest-way-to-build-an-address-autocomplete-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.geopostcodes.be\/en-GB\/"},{"@type":"ListItem","position":2,"name":"Address Autocomplete API: How to Build it Quickly for Free?"}]},{"@type":"WebSite","@id":"https:\/\/www.geopostcodes.com\/en-GB\/#website","url":"https:\/\/www.geopostcodes.com\/en-GB\/","name":"GeoPostcodes","description":"","publisher":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geopostcodes.com\/en-GB\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.geopostcodes.com\/en-GB\/#organization","name":"GeoPostcodes","url":"https:\/\/www.geopostcodes.com\/en-GB\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/logo\/image\/","url":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2021\/04\/cropped-GeoPostcodes-color@2x-png.webp","contentUrl":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2021\/04\/cropped-GeoPostcodes-color@2x-png.webp","width":1331,"height":207,"caption":"GeoPostcodes"},"image":{"@id":"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/person\/3983c8e2bcd6d8ec66dfc80b3661fb51","name":"J\u00e9r\u00f4me Mesters","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.geopostcodes.com\/en-GB\/#\/schema\/person\/image\/","url":"https:\/\/www.geopostcodes.com\/wp-content\/uploads\/2025\/03\/cropped-GG-scaled-1-512x512.webp","contentUrl":"https:\/\/www.geopostcodes.com\/wp-content\/uploads\/2025\/03\/cropped-GG-scaled-1-512x512.webp","caption":"J\u00e9r\u00f4me Mesters"},"description":"I am J\u00e9r\u00f4me Mesters, the technical lead, and head of IT at GeoPostcodes. I'm responsible for engineering and monitoring the cloud infrastructure. I'm also in charge of creating and maintaining the internal tools. I have designed and developed the download API used by customers to download our products. My technical lead profile pushes me to learn and advise all the departments on the most suited technologies to implement. I have more than 20 years of experience allowing me to have advanced knowledge in various subjects like Linux server administration, database optimization, software development, and technical analysis. My favorite language of the moment is Node.JS coupled with Typescript. A perfect day is learning a new technology or cool tool and being able to quickly put it into practice.","sameAs":["https:\/\/beta-www.geopostcodes.com"],"url":"https:\/\/www.geopostcodes.com\/en-GB\/blog\/author\/jerome-mesters\/"}]}},"jetpack_featured_media_url":"https:\/\/www.geopostcodes.com\/en-GB\/wp-content\/uploads\/2023\/02\/Build-you-address-validation-API.webp","_links":{"self":[{"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/posts\/3697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/comments?post=3697"}],"version-history":[{"count":0,"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/posts\/3697\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/media\/11383"}],"wp:attachment":[{"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/media?parent=3697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/categories?post=3697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geopostcodes.com\/en-GB\/wp-json\/wp\/v2\/tags?post=3697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}