1"use strict";(globalThis.webpackChunk_atlas_docs_zen=globalThis.webpackChunk_atlas_docs_zen||[]).push([[1272],{4056(e,n,s){s.d(n,{R:()=>l,x:()=>a});var r=s(2155);const i={},d=r.createContext(i);function l(e){const n=r.useContext(d);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(d.Provider,{value:n},e.children)}},9821(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>t});const r=JSON.parse('{"id":"changelog","title":"Changelog","description":"Stay informed about the latest updates and improvements to our address validation services with our changelog. View release notes and see what\'s new.","source":"@site/docs/changelog.mdx","sourceDirName":".","slug":"/changelog","permalink":"/docs/changelog","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Changelog","sidebar_label":"Changelog"},"sidebar":"guides","previous":{"title":"Error Codes","permalink":"/docs/guides/error-codes"},"next":{"title":"Tagging","permalink":"/docs/tags"}}');var i=s(5723),d=s(4056);const l={title:"Changelog",sidebar_label:"Changelog"},a=void 0,o={},t=[{value:"October 2026",id:"october-2026",level:2},{value:"September 2026",id:"september-2026",level:2},{value:"August 2026",id:"august-2026",level:2},{value:"July 2026",id:"july-2026",level:2},{value:"June 2026",id:"june-2026",level:2},{value:"May 2026",id:"may-2026",level:2},{value:"April 2026",id:"april-2026",level:2},{value:"March 2026",id:"march-2026",level:2},{value:"February 2026",id:"february-2026",level:2},{value:"December 2025",id:"december-2025",level:2},{value:"November 2025",id:"november-2025",level:2},{value:"October 2025",id:"october-2025",level:2},{value:"September 2025",id:"september-2025",level:2},{value:"August 2025",id:"august-2025",level:2},{value:"July 2025",id:"july-2025",level:2},{value:"June 2025",id:"june-2025",level:2},{value:"May 2025",id:"may-2025",level:2},{value:"April 2025",id:"april-2025",level:2},{value:"March 2025",id:"march-2025",level:2},{value:"February 2025",id:"february-2025",level:2},{value:"January 2025",id:"january-2025",level:2},{value:"May 2024",id:"may-2024",level:2},{value:"April 2024",id:"april-2024",level:2},{value:"February 2024",id:"february-2024",level:2},{value:"January 2024",id:"january-2024",level:2},{value:"November 2023",id:"november-2023",level:2},{value:"October 2023",id:"october-2023",level:2},{value:"September 2023",id:"september-2023",level:2},{value:"August 2023",id:"august-2023",level:2},{value:"July 2023",id:"july-2023",level:2},{value:"June 2023",id:"june-2023",level:2},{value:"May 2023",id:"may-2023",level:2},{value:"April 2023",id:"april-2023",level:2},{value:"March 2023",id:"march-2023",level:2},{value:"January 2023",id:"january-2023",level:2},{value:"December 2022",id:"december-2022",level:2},{value:"November 2022",id:"november-2022",level:2},{value:"October 2022",id:"october-2022",level:2},{value:"June 2022",id:"june-2022",level:2},{value:"May 2022",id:"may-2022",level:2},{value:"April 2022",id:"april-2022",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"Stay informed about the latest updates and improvements to our address validation services with our changelog. View release notes and see what's new."}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"october-2026",children:"October 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," TypeScript SDK: ",(0,i.jsx)(n.code,{children:"headers"})," and ",(0,i.jsx)(n.code,{children:"timeoutMs"})," client options ",(0,i.jsx)(n.em,{children:"(2026-10-01, v0.2.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"headers"})," sends default headers, such as ",(0,i.jsx)(n.code,{children:"User-Agent"}),", with every request; headers passed to an operation take precedence"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"timeoutMs"})," rejects any request that runs longer with a ",(0,i.jsx)(n.code,{children:"TimeoutError"}),"; a per-call ",(0,i.jsx)(n.code,{children:"signal"})," can still cancel sooner"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Error messages link to the AddressZen error codes guide ",(0,i.jsx)(n.em,{children:"(2026-09-30)"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"september-2026",children:"September 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," API keys accepted as ",(0,i.jsx)(n.code,{children:"Authorization: Bearer <key>"})," ",(0,i.jsx)(n.em,{children:"(2026-09-29)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Unauthorized Bearer requests now return a ",(0,i.jsx)(n.code,{children:"WWW-Authenticate"})," challenge; query string keys and the legacy header continue to work"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: new ",(0,i.jsx)(n.code,{children:"azn-js-sdk"})," skill for the TypeScript SDK ",(0,i.jsx)(n.em,{children:"(2026-09-29, v1.1.1)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Covers setup, autocomplete, filter and bias, address verification, React and Preact, and error handling, with a reference for every API operation"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Verify Address documents the ",(0,i.jsx)(n.code,{children:"context"})," parameter for addresses outside the United States ",(0,i.jsx)(n.em,{children:"(2026-09-29)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Documentation]"})," API reference leads with Bearer authentication ",(0,i.jsx)(n.em,{children:"(2026-09-29)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Send your API Key as ",(0,i.jsx)(n.code,{children:"Authorization: Bearer ak_..."}),"; the user token is now called the Management Key"]}),"\n",(0,i.jsxs)(n.li,{children:["Update Licensee is documented as ",(0,i.jsx)(n.code,{children:"POST"}),", the method the API serves"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," TypeScript SDK: ",(0,i.jsx)(n.a,{href:"https://www.npmjs.com/package/@addresszen/sdk",children:(0,i.jsx)(n.code,{children:"@addresszen/sdk"})})," ",(0,i.jsx)(n.em,{children:"(2026-09-28, v0.1.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["One package for browsers and Node.js 22 or later, built on native ",(0,i.jsx)(n.code,{children:"fetch"})," with no runtime dependencies"]}
1),"\n",(0,i.jsx)(n.li,{children:"Every API operation is a tree-shakeable named export, with request and response types generated from the OpenAPI spec"}),"\n",(0,i.jsxs)(n.li,{children:["Includes an autocomplete helper with country switching and optional TanStack Query adapters for React and Preact. See the ",(0,i.jsx)(n.a,{href:"/docs/sdks/typescript",children:"TypeScript SDK guide"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Fixed TypeScript type resolution errors ",(0,i.jsx)(n.em,{children:"(2026-09-18, v2.4.4)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Resolves ",(0,i.jsx)(n.code,{children:"has no exported member 'UsaAddress'"})," and similar errors, and address types no longer silently fall back to ",(0,i.jsx)(n.code,{children:"any"})," when ",(0,i.jsx)(n.code,{children:"skipLibCheck"})," is enabled"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," OpenAPI spec rewritten to describe only the AddressZen API: ",(0,i.jsx)(n.a,{href:"https://www.npmjs.com/package/@addresszen/openapi",children:(0,i.jsx)(n.code,{children:"@addresszen/openapi"})})," ",(0,i.jsx)(n.em,{children:"(2026-09-17, v4.0.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The spec now describes the AddressZen API directly: address autocomplete, Verify Address, place search, email and phone validation, plus key, licensee and configuration management"}),"\n",(0,i.jsxs)(n.li,{children:["Retrieve Address returns a flat ",(0,i.jsx)(n.code,{children:"Address"})," that carries the raw source record under ",(0,i.jsx)(n.code,{children:"native"}),", and the US autocomplete filters and biases are part of the documented contract"]}),"\n",(0,i.jsx)(n.li,{children:"UK-only operations and filters are removed; deprecated type aliases keep the old names compiling while you migrate"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Retrieve Address responses now include a ",(0,i.jsx)(n.code,{children:"native"})," field with the raw source record ",(0,i.jsx)(n.em,{children:"(2026-09-17)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Available for every dataset your key can resolve, alongside the existing standardized address fields"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: expanded API reference data and examples ",(0,i.jsx)(n.em,{children:"(2026-09-17, v1.0.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Adds the Verify Address endpoint and data references, dataset ",(0,i.jsx)(n.code,{children:"native"})," record references, and the full list of API error codes"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Documentation]"})," API reference pages now show request samples in JavaScript, Python, Ruby and PHP, not just curl ",(0,i.jsx)(n.em,{children:"(2026-09-17)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Covers every documented operation, including key, licensee, configuration and sign-up endpoints that previously had none"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Documentation]"})," Faster-loading, restyled API reference at openapi.addresszen.com ",(0,i.jsx)(n.em,{children:"(2026-09-17)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Matches the docs site's look, follows your system's light or dark preference, and shows content on first paint instead of after the full spec loads"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Billing]"})," Fixed blank organization addresses appearing on invoices and credit notes ",(0,i.jsx)(n.em,{children:"(2026-09-10)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"An incomplete address is now caught before a payment or credit is processed, instead of producing a document with a blank address afterward"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Clearer label and validation on the GDPR retention period setting ",(0,i.jsx)(n.em,{children:"(2026-09-08)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The redaction period control on your key dashboard now shows its unit and caps input at 1095 days, matching the API limit"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Autocomplete's non-UK filters are now documented, and US filters match multi-word and hyphenated values ",(0,i.jsx)(n.em,{children:"(2026-09-07)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"city"}),", ",(0,i.jsx)(n.code,{children:"state"})," and ",(0,i.jsx)(n.code,{children:"postal_code"})," filters and biases now match values like ",(0,i.jsx)(n.code,{children:"San Francisco"}),", ",(0,i.jsx)(n.code,{children:"New York"})," and ",(0,i.jsx)(n.code,{children:"94102-1234"})," (previously only single-word, unhyphenated values matched)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"postal_code_2"}),", ",(0,i.jsx)(n.code,{children:"postal_code_3"}),", ",(0,i.jsx)(n.code,{children:"state_code"}),", ",(0,i.jsx)(n.code,{children:"is_pobox"}),", ",(0,i.jsx)(n.code,{children:"is_business"})," and their ",(0,i.jsx)(n.code,{children:"bias_"})," equivalents are now part of the documented autocomplete contract"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Billing]"})," Default AddressBase Premium lookup cost rises from 4 to 6 credits ",(0,i.jsx)(n.em,{children:"(2026-09-07)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Applies to new keys and any existing key without a custom AddressBase Premium rate already set; keys with a custom rate already configured are unaffected"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"august-2026",children:"August 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Fixed confirmation emails occasionally being sent to a stale address ",(0,i.jsx)(n.em,{children:"(2026-08-28)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Email confirmations now always reach your current account address, even after an abandoned email change"}),"\n",(0,i.jsx)(n.li,{children:"You can also cancel a pending email change from your account page"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Security]"})," Stronger password and lockout rules on your dashboard account ",(0,i.jsx)(n.em,{children:"(2026-08-27)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"New or changed passwords must now be at least 12 characters (previously 6); existing passwords are unaffected until you change them"}),"\n",(0,i.jsx)(n.li,{children:"Accounts lock for an hour after 10 failed sign-in attempts, and a locked account no longer prompts for a two-factor code"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Accessibility fixes released ",(0,i.jsx)(n.em,{children:"(2026-08-20, v2.4.2)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The country toggle is fully keyboard operable (Tab to reach, Enter or Space to activate, Escape to dismiss) and no longer closes the suggestion list when focu
1sed"}),"\n",(0,i.jsxs)(n.li,{children:["Screen readers no longer receive invalid listbox semantics while a notice such as ",(0,i.jsx)(n.code,{children:'"No matches found"'})," is on display, announcements are no longer at risk of being spoken twice, and the first results announcement names the active search country and how to change it"]}),"\n",(0,i.jsx)(n.li,{children:"Every widget state passes axe-core's WCAG 2.1/2.2 A and AA rulesets, which gate each release"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: new accessibility reference for Address Lookup ",(0,i.jsx)(n.em,{children:"(2026-08-20, v0.2.8)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Documents the WCAG 2.1 AA statement, keyboard support map, and testing regime; the ",(0,i.jsx)(n.code,{children:"msgCountryToggle"})," default is now recorded as ",(0,i.jsx)(n.code,{children:'"Change Country"'})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Premier support enrollment visible on key details ",(0,i.jsx)(n.em,{children:"(2026-08-20, v3.8.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The read-only ",(0,i.jsx)(n.code,{children:"premier_support"})," flag reports whether a key is enrolled in the premier support program"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Logging]"})," Usage log CSV now labels cleanse, verify and phone validation lookups ",(0,i.jsx)(n.em,{children:"(2026-08-12)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The search type column in your key's usage log CSV previously exported blank for these three request types"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Security]"})," Account security hardening across sign-in, tokens and subscriptions ",(0,i.jsx)(n.em,{children:"(2026-08-21)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Changing your account email or disabling two-factor authentication, now always require your current password"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Authentication]"})," A successful password reset now clears an account lockout ",(0,i.jsx)(n.em,{children:"(2026-08-21)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"You no longer need a manual unlock after resetting your password following a lockout"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: documented accessibility support and the new country toggle label ",(0,i.jsx)(n.em,{children:"(2026-08-20, v0.2.8)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The Address Lookup reference now covers WCAG 2.1 AA conformance, keyboard behavior, and the ",(0,i.jsx)(n.code,{children:"msgCountryToggle"})," default of ",(0,i.jsx)(n.code,{children:'"Change Country"'})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," New Swisstopo dataset for Switzerland and Liechtenstein addresses ",(0,i.jsx)(n.em,{children:"(2026-08-20)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Enable the ",(0,i.jsx)(n.code,{children:"swt"})," flag on your API key to search, autocomplete, resolve and cleanse Swiss (CHE) and Liechtenstein (LIE) addresses, with German, French, Italian and Romansh language indexes"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Authentication]"})," Clearer error when a passkey sign-in or registration loses its network connection ",(0,i.jsx)(n.em,{children:"(2026-08-12)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:'Previously showed a generic "try again" message; now tells you to check your connection'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"july-2026",children:"July 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Usage log CSV now records the forwarded source IP ",(0,i.jsx)(n.em,{children:"(2026-07-29)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The address forwarded in the ",(0,i.jsx)(n.code,{children:"AZ-Source-IP"})," header is written to the final column of your key's usage log CSV, so backend integrations can trace a lookup back to the end user who triggered it"]}),"\n",(0,i.jsx)(n.li,{children:"Only recorded for keys with IP address forwarding enabled, and only when the header holds a valid IP address; it is redacted on the same schedule as the other personal data in the log"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Accessibility improvements for keyboard and screen reader users ",(0,i.jsx)(n.em,{children:"(2026-07-27)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"The country toggle is now fully keyboard operable: Tab to reach it, Enter or Space to open the country list, Escape to dismiss"}),"\n",(0,i.jsx)(n.li,{children:"The first results announcement identifies the active search country and how to change it; screen reader announcements are no longer at risk of being spoken twice"}),"\n",(0,i.jsxs)(n.li,{children:["Every release is now gated by automated axe-core WCAG A/AA scans, and a new ",(0,i.jsx)(n.a,{href:"/docs/address-lookup/accessibility",children:"Accessibility guide"})," documents the widget's keyboard support and screen reader behavior"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," New fallback action when a search returns no matches ",(0,i.jsx)(n.em,{children:"(2026-07-21, v2.4.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Set ",(0,i.jsx)(n.code,{children:"msgNoMatchAction"})," (e.g. ",(0,i.jsx)(n.code,{children:'"Enter address manually"'}),") to show an actionable prompt beneath the no-match message, and handle its selection with the ",(0,i.jsx)(n.code,{children:"onNoMatchAction"})," callback \u2014 useful for revealing a manual address entry form"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: documented the Address Lookup no-match action ",(0,i.jsx)(n.em,{children:"(2026-07-21, v0.2.7)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Dashboard visual refresh ",(0,i.jsx)(n.em,{children:"(2026-07-15)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," New ",(0,i.jsx)(n.code,{children:"shouldAddressPopulate"})," hook to gate address population ",(0,i.jsx)(n.em,{children:"(2026-07-13, v2.3.5)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Return ",(0,i.jsx)(n.code,{children:"false"})," from the hook \u2014 run after an address is retrieved, before it's written to the form \u2014 to cancel population, for example for delivery-area checks or custom confirmation flows"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: guidance for gating address population by delivery area ",(0,i.jsx)(n.em,{children:"(2026-07-13, v0.2.6)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:['New "Gate Population by Delivery Area" guide covers synchronous and asynchronous checks and fail-open error handling for the new ',(0,i.jsx)(n.code,{children:"shouldAddressPopulate"})," option"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Authentication]"})," Member lists show each organization member's MFA and passkey status ",(0,i.jsx)(n.em,{children:"(2026-07-07)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Both the backend admin view and your organization's members page now show whether a member has multi-factor authentication or a passkey configured"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," France BAN dataset available as a toggle on API keys ",(0,i.jsx)(n.em,{children:"(2026-07-03)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Enable or disable the France national address dataset from your key's dataset settings, with a link to the documentation"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," France BAN dataset now live across address search and lookup endpoints ",(0,i.jsx)(n.em,{children:"(2026-07-02)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Enable the ",(0,i.jsx)(n.code,{children:"ban"})," flag on your API key to search and resolve French addresses from the Base Adresse Nationale"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," BAN (France) TypeScript types available in the AddressZen OpenAPI package ",(0,i.jsx)(n.em,{children:"(2026-07-01, v3.7.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["New ",(0,i.jsx)(n.code,{children:"BanAddress"})," type exposes the Base Adresse Nationale schema across the address lookup and resolve endpoints"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," BAN (France) dataset added to the API integration agent skill ",(0,i.jsx)(n.em,{children:"(2026-07-01, v0.2.5)"})]}),"\n"]}
1),"\n",(0,i.jsx)(n.h2,{id:"june-2026",children:"June 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," CLI: ",(0,i.jsx)(n.code,{children:"keys"})," subcommands split for context and dataset management ",(0,i.jsx)(n.em,{children:"(2026-06-30, v0.3.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"azn keys context"})," reports the current and available geographic contexts; ",(0,i.jsx)(n.code,{children:"azn keys datasets"})," reports dataset availability"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"azn keys datasets update"})," enables or disables datasets with repeatable ",(0,i.jsx)(n.code,{children:"-e"}),"/",(0,i.jsx)(n.code,{children:"--enable"})," and ",(0,i.jsx)(n.code,{children:"-d"}),"/",(0,i.jsx)(n.code,{children:"--disable"})," flags (e.g. ",(0,i.jsx)(n.code,{children:"azn keys datasets update -e paf -e abp -d mr"}),")"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: CLI reference updated for the new ",(0,i.jsx)(n.code,{children:"keys"})," subcommands ",(0,i.jsx)(n.em,{children:"(2026-06-30, v0.2.4)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," AddressBase Premium address coverage extended for non-postal records ",(0,i.jsx)(n.em,{children:"(2026-06-29)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"AddressBase Premium now appears in the dataset list on your API key page, where it can be enabled or disabled"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressZen agent skills: country select population and expanded plugin listings ",(0,i.jsx)(n.em,{children:"(2026-06-24, v0.2.3)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.code,{children:"azn-address-lookup"})," skill now documents how to map ",(0,i.jsx)(n.code,{children:"country_iso"}),", ",(0,i.jsx)(n.code,{children:"country_iso_2"}),", and ",(0,i.jsx)(n.code,{children:"country"})," fields to a country ",(0,i.jsx)(n.code,{children:"<select>"})," element"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"azn-react"})," skill is now listed in the Cursor and Codex plugin manifests"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," AddressBase Premium TypeScript types available in the AddressZen OpenAPI package ",(0,i.jsx)(n.em,{children:"(2026-06-23, v3.6.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["New ",(0,i.jsx)(n.code,{children:"AbpAddress"})," type exposes the full property-level record from Ordnance Survey AddressBase Premium \u2014 BLPU, DPA, classification, and ground stability \u2014 across the address lookup and resolve endpoints"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," New endpoint to regenerate a licensee API key ",(0,i.jsx)(n.em,{children:"(2026-06-23)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"POST /v1/keys/:key/licensees/:licensee/regenerate-key"})," mints a new server-generated key for the licensee and invalidates the old one"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," AddressBase Premium data model added to the API integration agent skill ",(0,i.jsx)(n.em,{children:"(2026-06-23, v0.2.2)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Added the BAN (Base Adresse Nationale) dataset for France, providing open national address coverage ",(0,i.jsx)(n.em,{children:"(2026-06-23)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," New ",(0,i.jsx)(n.code,{children:"azn"})," command line interface ",(0,i.jsx)(n.em,{children:"(2026-06-19, v0.2.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Manage API keys, verify US addresses, validate emails and phone numbers, and find addresses from the terminal or any agent/CI pipeline"}),"\n",(0,i.jsxs)(n.li,{children:["Emits JSON in non-TTY environments, uses stable exit codes, and never prompts under a pipe; full documentation at ",(0,i.jsx)(n.a,{href:"https://docs.addresszen.com/docs/cli",children:"docs.addresszen.com/docs/cli"})]}),"\n",(0,i.jsxs)(n.li,{children:["Agent skill for AI-assisted development: install with ",(0,i.jsx)(n.code,{children:"npx skills add addresszen/skills"})," \u2014 look for ",(0,i.jsx)(n.code,{children:"azn-cli"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," AddressBase Premium available for UK address search ",(0,i.jsx)(n.em,{children:"(2026-06-22)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"AddressBase Premium data now available via the address search and autocomplete endpoints, providing comprehensive Ordnance Survey property-level records across all building classification types"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," Agent skills for Address Lookup widget and API integration ",(0,i.jsx)(n.em,{children:"(2026-06-18, v0.2.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["New ",(0,i.jsx)(n.code,{children:"azn-address-lookup"})," skill covers the ",(0,i.jsx)(n.code,{children:"@addresszen/address-lookup"})," vanilla JS widget"]}),"\n",(0,i.jsxs)(n.li,{children:["New ",(0,i.jsx)(n.code,{children:"azn-api-integration"})," skill covers direct HTTP integration with the AddressZen API"]}),"\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.code,{children:"addresszen-react"})," skill has been renamed to ",(0,i.jsx)(n.code,{children:"azn-react"}),"; update with ",(0,i.jsx)(n.code,{children:"npx skills add addresszen/skills"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," React component: forwarded ref stays stable across renders ",(0,i.jsx)(n.em,{children:"(2026-06-18, v2.0.1)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["When wrapping your own controlled ",(0,i.jsx)(n.code,{children:"<input>"}),", the ref no longer re-attaches on every keystroke"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," New ",(0,i.jsx)(n.code,{children:"AZ-Source-IP"})," response header echoes the detected client IP on every API response ",(0,i.jsx)(n.em,{children:"(2026-06-14)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," React component for embedding address lookup in React applications ",(0,i.jsx)(n.em,{children:"(2026-06-12, v2.0.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"@addresszen/react"})," provides an ",(0,i.jsx)(n.code,{children:"<AddressLookup>"})," component compatible with React 18 and 19, with two integration modes \u2014 default input and wrap-around-your-own-input \u2014 and the full callback surface exposed as props"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," Agent skills for Claude Code, Cursor, and Codex ",(0,i.jsx)(n.em,{children:"(2026-06-12, v0.1.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["New ",(0,i.jsx)(n.code,{children:"addresszen/skills"})," plugin ships a quickstart and reference docs for Address Lookup and the React component"]}),"\n",(0,i.jsxs)(n.li,{children:["Install with ",(0,i.jsx)(n.code,{children:"npx skills add addresszen/skills"})]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," TypeScript declarations now shipped from compiled output ",(0,i.jsx)(n.em,{children:"(2026-06-12, v2.3.3)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Changelog feed in the account dashboard ",(0,i.jsx)(n.em,{children:"(2026-06-10)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Recent product updates n
1ow appear in the account sidebar, keeping you informed without leaving the dashboard"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Security]"})," Security update for Address Lookup ",(0,i.jsx)(n.em,{children:"(2026-06-06, v2.3.2)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Resolves a regular expression denial of service via cookie names (GHSA-hfxv-24rg-xrqf) and prototype pollution issues in earlier axios versions; update to the latest widget version to pick up the fix"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"may-2026",children:"May 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Documentation]"})," Interactive API reference at ",(0,i.jsx)(n.a,{href:"https://openapi.addresszen.com",children:"openapi.addresszen.com"})," ",(0,i.jsx)(n.em,{children:"(2026-05-28)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Rendered OpenAPI reference and raw spec downloads, refreshed automatically with every spec release"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Reseller dashboard ",(0,i.jsx)(n.em,{children:"(2026-05-17)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Reseller organizations now see a dedicated dashboard summarizing their licensees, active client count, and usage costs for any billing period"}),"\n",(0,i.jsx)(n.li,{children:"Customer breakdown table shows each licensee's address and API key, with sortable numeric columns and CSV export"}),"\n",(0,i.jsx)(n.li,{children:"Period picker and deep-links jump straight to a licensee's keys and dates"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"april-2026",children:"April 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Billing]"})," Credit notes available in your account ",(0,i.jsx)(n.em,{children:"(2026-04-28)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"View credit notes alongside invoices from the billing section"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Billing]"})," Statement of account ",(0,i.jsx)(n.em,{children:"(2026-04-28)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Download a consolidated statement of invoices, payments, and credit notes for any period"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Organization deletion ",(0,i.jsx)(n.em,{children:"(2026-04-27)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Permanently remove an organization and its data from your account when it is no longer needed"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Multi-organization accounts ",(0,i.jsx)(n.em,{children:"(2026-04-24)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Switch between organizations from a single login"}),"\n",(0,i.jsx)(n.li,{children:"Single-organization users are routed straight to their organization page on sign-in"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Billing]"})," Reduced 3D Secure (SCA) prompts on automated top-ups ",(0,i.jsx)(n.em,{children:"(2026-04-23)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Corrected ISO 3166-1 alpha-3 country code for Kosovo ",(0,i.jsx)(n.em,{children:"(2026-04-23)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," New URL checker tool for Allowed URLs ",(0,i.jsx)(n.em,{children:"(2026-04-16)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Test whether a given domain matches your account's allowed URL configuration before going live"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Documentation search integrated into the dashboard ",(0,i.jsx)(n.em,{children:"(2026-04-14)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Search the documentation directly from your account using DocSearch"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Fixed Republic of Ireland address line formatting on HERE datasets ",(0,i.jsx)(n.em,{children:"(2026-04-08)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Logging]"})," CSV transaction usage export now includes a licensee name column ",(0,i.jsx)(n.em,{children:"(2026-04-02)"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Authentication]"})," Passkey (WebAuthn) sign-in ",(0,i.jsx)(n.em,{children:"(2026-04-01)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Sign in using Touch ID, Windows Hello, or hardware security ke
1ys instead of a password"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"march-2026",children:"March 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Dashboard UI refresh ",(0,i.jsx)(n.em,{children:"(2026-03-27)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Redesign with dark mode, smooth theme transitions, and modernized screens"}),"\n",(0,i.jsx)(n.li,{children:"Improved pagination and notification UX"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Account notifications ",(0,i.jsx)(n.em,{children:"(2026-03-26)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"In-dashboard notification bell surfacing recent account events, with email recipients managed per organization"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Per-dataset toggles on the API key dashboard ",(0,i.jsx)(n.em,{children:"(2026-03-26)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Enable or disable individual datasets on a key directly from the keys page"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," ",(0,i.jsx)(n.code,{children:"GET /keys/:key/details"})," returns expanded key metadata ",(0,i.jsx)(n.em,{children:"(2026-03-25)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Response now includes ",(0,i.jsx)(n.code,{children:"name"}),", ",(0,i.jsx)(n.code,{children:"contexts"}),", ",(0,i.jsx)(n.code,{children:"datasets"}),", and notification settings"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Self-serve organization creation ",(0,i.jsx)(n.em,{children:"(2026-03-11)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Create new organizations from your account without contacting support"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"february-2026",children:"February 2026"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Organization member invitations ",(0,i.jsx)(n.em,{children:"(2026-02-25)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Invite teammates to your organization by email and review pending invitations from the organization page"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Organization accounts ",(0,i.jsx)(n.em,{children:"(2026-02-20)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Accounts are now organization-based - invite teammates, share API keys, and assign roles within a single billable entity"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Dashboard]"})," Account roles: admin, developer, and finance ",(0,i.jsx)(n.em,{children:"(2026-02-20)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Assign each organization member a role to scope access to keys, billing, and developer settings"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Monthly lookup limits now configurable on API keys ",(0,i.jsx)(n.em,{children:"(2026-02-04)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Set a per-calendar-month cap independently of the daily limit, with usage rolling over at the start of each month"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"december-2025",children:"December 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Added the BEV (Bundesamt f\xfcr Eich- und Vermessungswesen) dataset for Austria, providing comprehensive and authoritative address coverage"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"november-2025",children:"November 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," New dataset filter parameter allows you to restrict address searches to specific datasets within a country. E.g. ",(0,i.jsx)(n.code,{children:"datasets=nyb"})," for latest new builds only."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," US Address Validation API now supports fuzzy matching on the state parameter, improving match rates for addresses with minor state name variations"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"october-2025",children:"October 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Northern Ireland dataset update frequency increased from quarterly to weekly"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Non-US address data now parsed into individual structured fields (building number, street name, unit) rather than just address lines"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Fixed an issue affecting Republic of Ireland addresses where administrative data may be missing for some premises"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"september-2025",children:"September 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Streamlined OpenAPI specification designed to reduce context length for LLM-assisted development"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Documentation]"})," LLM-optimized documentation with llms.txt context file and universal markdown export (a
1dd ",(0,i.jsx)(n.code,{children:".md"})," to any documentation URL)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Enhanced geospatial accuracy and intelligent country detection for improved search precision"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"august-2025",children:"August 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Fixed an issue with the Email Validation API to handle queries without proper encoding"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"july-2025",children:"July 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," CSV usage log export now includes a ",(0,i.jsx)(n.code,{children:"lookups"})," column showing how many lookups each request consumed. See the ",(0,i.jsx)(n.a,{href:"/docs/api/key-logs",children:"CSV usage log API"})," for details."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Performance]"})," JavaScript libraries now served directly from the API for improved caching, reduced latency, and simplified integration"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"june-2025",children:"June 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Improved Republic of Ireland coverage for the standard dataset. All addresses now include Eircode (Irish postal codes)"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Documentation]"})," Documentation site now generates an LLM.txt file and ",(0,i.jsx)(n.code,{children:".md"})," files to better support language model integration"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Improved handling of ordinals and directionals for US addresses"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"may-2025",children:"May 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Improved and extended UPRN matching for Royal Mail Multiple Residence and Not Yet Built addresses"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Additional HERE datasets included"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Localized and improved South Korea coverage with MOIS dataset"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"april-2025",children:"April 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Localized and improved Belgium coverage with FODBOSA"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Localized and improved Japan coverage"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"march-2025",children:"March 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Security update for a third-party dependency ",(0,i.jsx)(n.em,{children:"(2025-03-26, v2.3.1)"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"february-2025",children:"February 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Expanded Canada coverage with Canada National Address Register dataset"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"january-2025",children:"January 2025"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," WooCommerce plugin for WordPress stores ",(0,i.jsx)(n.em,{children:"(2025-01-21, v1.0.0)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Address autocomplete and postcode-based address selection at checkout, with admin configuration"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Expanded Denmark coverage with SDFI dataset"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"may-2024",children:"May 2024"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Integration]"})," Zapier app for address verification ",(0,i.jsx)(n.em,{children:"(2024-05-22)"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Verify and standardize addresses in automated workflows"}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Released ",(0,i.jsx)(n.code,{children:"/addresses/verify"})," API for USA CASS Verification"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"april-2024",children:"April 2024"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Netherlands (Kadaster) address dataset incorporated"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Norway (Kartverket) address dataset incorporated"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Performance]"})," Improved P95 and P99 latency"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"february-2024",children:"February 2024"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Search improvements for Iberian languages: Spanish, Catalan, Galician and Basque"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Country selection is synced if ",(0,i.jsx)(n.code,{children:"country:"})," is defined in ",(0,i.jsx)(n.code,{children:"outputFields"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"january-2024",children:"January 2024"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Australia GNAF address dataset added"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," CASS Certified USA address verification generally available"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"november-2023",children:"November 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Improvements to geospatial biasing for USA addresses"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"october-2023",children:"October 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Key settings can be updated via ",(0,i.jsx)(n.code,{children:"POST /keys/:key"})," API"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Available datasets accessible through ",(0,i.jsx)(n.code,{children:"GET /keys/:key/details"})," API"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Added the ability to ",(0,i.jsx)(n.code,{children:"fix"})," Address Lookup"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"september-2023",children:"September 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Added new callback for changes in country or context"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Country is automatically detected by IP address"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"august-2023",children:"August 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Hong Kong dataset included"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Macau dataset included"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Taiwan dataset included"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," India dataset included"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"july-2023",children:"July 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Asia Pacific data now available"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Oceania dataset included"]}),"\n"]}
1),"\n",(0,i.jsx)(n.h2,{id:"june-2023",children:"June 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," South America data now available"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Middle East & Africa dataset included"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"may-2023",children:"May 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Eastern Europe data now available"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"april-2023",children:"April 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Western Europe data now available for Address Lookup"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"march-2023",children:"March 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Improved Zip and ZIP+4 searching on USA datasets"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Improved apartment searches for GBR datasets"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"january-2023",children:"January 2023"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Rooftop geolocations now available for Northern Ireland. Please contact us to have this enabled on your account"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," UPRNs now available for Northern Ireland. Please contact us to have this enabled on your account"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," ",(0,i.jsx)(n.code,{children:"/addresses/cleanse"})," GBR Cleanse API now available"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"december-2022",children:"December 2022"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Phone Validation API now generally available"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," UK post towns are now titlecased (instead of all caps)"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"november-2022",children:"November 2022"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," Email Validation API now available"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Security]"})," Wildcard subdomain allowed URLs available. Add ",(0,i.jsx)(n.code,{children:"*.domain.com"})," to allow requests from ",(0,i.jsx)(n.code,{children:"domain.com"})," and all related subdomains"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Address Lookup]"})," Search improvements: Better search for numeric property numbers with preceding zeros. Improved search for address ranges"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"october-2022",children:"October 2022"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Security]"})," Allowed URLs now permit subdomain wildcards. E.g. ",(0,i.jsx)(n.code,{children:"*.example.com"})," will match ",(0,i.jsx)(n.code,{children:"example.com"})," as well as all subdomains"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"june-2022",children:"June 2022"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Irish Addresses (Eircode) now supported by address autocomplete. Contact our support team to have this enabled on your account"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," ",(0,i.jsx)(n.code,{children:"/addresses"})," API now provides reverse geocoding if ",(0,i.jsx)(n.code,{children:"lon="})," and ",(0,i.jsx)(n.code,{children:"lat="})," query arguments are supplied. Results are ordered by proximity to the supplied geospatial points"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"may-2022",children:"May 2022"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," UK Alias addresses now generally available"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[API]"})," ",(0,i.jsx)(n.code,{children:"/keys/:key"})," API now returns a ",(0,i.jsx)(n.code,{children:"contexts"})," value which correlates with the user's locality"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"april-2022",children:"April 2022"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"[Data]"})," Welsh PAF addresses now generally available"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.