Allows to query for 🇨🇭 addresses with ease.
Can't wait to use it? Feel free to contribute.
swiss-address-js is a JavaScript library that allows you to query for swiss addresses with ease. It uses the API of Swiss Post fetch latest building addresses. It is written in TypeScript and can be used in any JavaScript environment.
This project is not affiliated with Swiss Post. It is an unofficial API wrapper for the Address Webservices API. Use at your own risk. We are not responsible for any damage caused by the use of this library.
- Search
- Fetch
- Download
- Create
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Please make sure you have installed the following tools:
- Node.js - JavaScript runtime environment
- TypeScript - Typescript compiler
And a package manager of your choice:
Next, you need to create a new account at Swiss Post and request an API key for a technical user. You will need the username and password to use this library.
Install the package via npm:
npm install swiss-address-js --save
or via yarn:
yarn add swiss-address-js
import AddressService from 'swiss-address-js';
// Create a new instance
const {swissPostOpenData, addresses} = new AddressService('your-username', 'your-password');
// Find street names by postal code
swissPostOpenData.getStreetNamesByPostalCode('9436');
// Find street names by postal code and street name
swissPostOpenData.getStreetByPostalCodeAndStreetName('9436','Kapfstrasse');
// Find buildings by postal code and street name
swissPostOpenData.getBuildingsByPostalCodeAndStreet('9435','Gutenbergstrasse');
// Search for zip codes
const zipCodes = await addresses.findTownNameByZipCode('8000')
// Search for street names beginning with 'A'
const streetNames = await addresses.findStreetsByTown('A', '8000', 'Zürich')
// Search for house numbers beginning with 1, in towns with zip code beginning with "80" and name "Zürich" lying in a street called "Alte Landstrasse"
const buildingNumbers = await addresses.findBuildingNumbersByStreet('1', '80', 'Zürich', 'Alte Landstrasse')
In the vast realm of code, where ideas intertwine and innovation knows no bounds, I find myself continually amazed by the unwavering spirit of collaboration that defines the open source community. It's a world where developers, like you and me, share their creations, their insights, and their expertise with an unparalleled generosity. Countless times, whether through serendipitous discovery or through meticulous research, I've stumbled upon remarkable projects that have enriched my own journey as a developer.
Recognizing the profound impact that the open source community has had on my own growth, I've made a personal commitment to give back to this tapestry of ingenuity. The code is licensed under the APGL license, which means that you're free to use, remix, and build upon it for non-commercial purposes. It's my way of extending the thread of collaboration that binds us as developers.
However, I also understand the diverse needs that drive us in this community. If you're considering utilizing this project for commercial purposes, I invite you to reach out. While there isn't a fixed license model in place, I believe in the power of optimism and negotiation. Let's work together to find a solution that aligns with your goals while respecting the effort and intent behind this work.
Tests are written with jest. You can run them with the following command:
npm run test
- TypeScript - Programming language
- Jest - Testing framework
- Prettier - Code formatter
- ESLint - Linter
- @cytex-ch - Project author
- @sjutz - Project maintainer simon.jutz@cytex.ch