These examples use javascript on the user's browser and require a javascript client key, which is different from your application key. This is to protect your account. Click here to set up your javascript client key.
This example auto-fills the city and state after a zip code is entered.
If you use the example JavaScript, you must update it with your client key (starts with js-
) and update it to match the DOM elements on your website.
<script>//<![CDATA[ window.addEventListener('DOMContentLoaded', function() { // IMPORTANT: Fill in your client key var clientKey = "FILL_IN_CLIENT_KEY"; var cache = {}; var container = $("#example1"); var errorElem = container.find(".label-error"); /** Handle successful response */ function handleResp(data) { // Check for error if (data.error_msg) errorElem.text(data.error_msg); else if ("city" in data) { // Set city and state container.find("input[name='city']").val(data.city); container.find("input[name='state']").val(data.state); } } // Set up event handlers container.find("input[name='zipcode']").on("keyup change", function() { // Get zip code var zipcode = $(this).val().substring(0, 5); if (zipcode.length == 5 && /^[0-9]+$/.test(zipcode)) { // Clear error errorElem.empty(); // Check cache if (zipcode in cache) { handleResp(cache[zipcode]); } else { // Build url var url = "https://www.zipcodeapi.com/rest/"+clientKey+"/info.json/" + zipcode + "/radians"; // Make AJAX request $.ajax({ "url": url, "dataType": "json" }).done(function(data) { handleResp(data); // Store in cache cache[zipcode] = data; }).fail(function(data) { if (data.responseText && (json = $.parseJSON(data.responseText))) { // Store in cache cache[zipcode] = json; // Check for error if (json.error_msg) errorElem.text(json.error_msg); } else errorElem.text('Request failed.'); }); } } }).trigger("change"); }); //]]></script>
This example auto-fills the city and province after a Canadian postal code is entered.
If you use the example JavaScript, you must update it with your client key (starts with js-
) and update it to match the DOM elements on your website.
<script>//<![CDATA[ window.addEventListener('DOMContentLoaded', function() { // IMPORTANT: Fill in your client key var clientKey = "FILL_IN_CLIENT_KEY"; var cache = {}; var container = $("#caPostalAutofill"); var errorElem = container.find(".label-error"); /** Handle successful response */ function handleResp(data) { // Check for error if (data.error_msg) errorElem.text(data.error_msg); else if ("city" in data) { // Set city and province container.find("input[name='caCity']").val(data.city); container.find("input[name='caProvince']").val(data.province); } } // Set up event handlers container.find("input[name='caPostalCode']").on("keyup change", function() { // Get postal code var postalCode = $(this).val().toUpperCase(); if (/^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$/.test(postalCode)) { // Clear error errorElem.empty(); // Check cache if (postalCode in cache) handleResp(cache[postalCode]); else { // Build url removing space in postal code var url = "https://www.zipcodeapi.com/rest/v2/CA/" + clientKey + "/info.json/" + postalCode.replace(/ /g, "") + "/radians"; // Make AJAX request $.ajax({ "url": url, "dataType": "json" }).done(function(data) { handleResp(data); // Store in cache cache[postalCode] = data; }).fail(function(data) { if (data.responseText && (json = $.parseJSON(data.responseText))) { // Store in cache cache[postalCode] = json; // Check for error if (json.error_msg) errorElem.text(json.error_msg); } else errorElem.text('Request failed.'); }); } } }).trigger("change"); }); //]]></script>
This example determines the distance between two zip code that are entered.
<script type="text/javascript">//<![CDATA[ window.addEventListener('DOMContentLoaded', function() { // IMPORTANT: Fill in your client key var clientKey = "FILL_IN_CLIENT_KEY"; var cache = {}; var container = $("#example2"); var errorElem = container.find(".label-error"); /** Handle successful response */ function handleResp(data) { // Check for error if (data.error_msg) errorElem.text(data.error_msg); else if ("distance" in data) { // Show div container.find("div.distance").show() // Set distance .find("span.distance").text(data.distance + " miles"); } } // Set up event handlers container.find("input[name='zipcode1'],input[name='zipcode2']").on("keyup change", function() { // Get zip code var zipcode1 = $("input[name='zipcode1']").val().substring(0, 5); var zipcode2 = $("input[name='zipcode2']").val().substring(0, 5); if (zipcode1.length == 5 && /^[0-9]+$/.test(zipcode1) && zipcode2.length == 5 && /^[0-9]+$/.test(zipcode2)) { // Clear error errorElem.empty(); // Check cache var cacheKey = zipcode1 + '-' + zipcode2; if (cacheKey in cache) { handleResp(cache[cacheKey]); } else { // Build url var url = "https://www.zipcodeapi.com/rest/"+clientKey+"/distance.json/" + zipcode1 + "/" + zipcode2 + "/mile"; // Make AJAX request $.ajax({ "url": url, "dataType": "json" }).done(function(data) { handleResp(data); // Store in cache cache[cacheKey] = data; }).fail(function(data) { if (data.responseText && (json = $.parseJSON(data.responseText))) { // Store in cache cache[cacheKey] = json; // Check for error if (json.error_msg) errorElem.text(json.error_msg); } else errorElem.text('Request failed.'); }); } } }).trigger("change"); }); //]]></script>