Download OpenAPI specification:
HelvAddress is a professional Swiss address validation and search API.
This API provides comprehensive access to official Swiss address data from the Federal Register of Buildings and Dwellings (RBD/GWR). It supports address lookup, autocomplete with relevance scoring, and address normalization/validation.
Data is sourced from the official Swiss Federal Statistical Office (BFS) building and dwelling register, updated regularly to ensure accuracy.
API requests are rate-limited based on your subscription plan. Rate limit headers are included in all responses:
X-RateLimit-Limit: Maximum requests per time windowX-RateLimit-Remaining: Remaining requests in current windowRetry-After: Seconds until reset (when rate limited)All errors return a consistent JSON format with the following fields:
timestamp: ISO 8601 timestampstatus: HTTP status codeerror: HTTP status reasonmessage: Human-readable error descriptionpath: Request path that caused the errorvalidationErrors: Array of field-level validation errors (if applicable)Obtain an access token by presenting an authorization grant or refresh token.
authorization_code)Exchange an authorization code for tokens. Required parameters:
code: The authorization code received from the authorize endpointredirect_uri: Must match the original redirect_uricode_verifier: PKCE code verifier (for public clients)refresh_token)Exchange a refresh token for a new access token. Required parameters:
refresh_token: A valid refresh tokenclient_credentials)Obtain an access token using client credentials only. Required parameters:
scope: Optional scope restrictionClients must authenticate using one of:
Authorization: Basic base64(client_id:client_secret)client_id and client_secret in request body| grant_type required | string Enum: "authorization_code" "refresh_token" "client_credentials" The type of grant being used to obtain the token. |
| code | string The authorization code received from the authorization endpoint.
Required for |
| redirect_uri | string <uri> The redirect URI used in the authorization request.
Required for |
| code_verifier | string PKCE code verifier. Required for public clients using authorization code flow. Must be the original random string used to generate the code_challenge. |
| refresh_token | string The refresh token issued during a previous token request.
Required for |
| scope | string Space-delimited list of scopes. For refresh_token grant, the requested scope must be equal to or a subset of the original scope. |
| client_id | string The client identifier. Required if not using HTTP Basic authentication. |
| client_secret | string The client secret. Required for confidential clients not using other authentication methods. |
| access_token required | string The access token issued by the authorization server.
Use this token in the |
| token_type required | string The type of token issued. Always "Bearer". |
| expires_in | integer The lifetime in seconds of the access token. After this time, the token will no longer be accepted. |
| refresh_token | string The refresh token, which can be used to obtain new access tokens without re-authentication. |
| scope | string The scope of the access token. May be a subset of the requested scope. |
Server-to-server authentication
grant_type=client_credentials&client_id=my-service-app&client_secret=service-secret&scope=address%3Aread%20address%3Aautocomplete
{- "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token_type": "Bearer",
- "expires_in": 3600,
- "refresh_token": "8xLOxBtZp8",
- "scope": "address:read address:autocomplete"
}Swiss cantons API.
This API provides access to the 26 Swiss cantons (Kantone/Cantons). Each cantonAbbreviation has a unique two-letter abbreviation according to ISO 3166-2:CH.
Data Source: Federal Statistical Office (FSO/BFS)
Retrieves all 26 Swiss cantons ordered alphabetically by their abbreviation.
Available Cantons: AG, AI, AR, BE, BL, BS, FR, GE, GL, GR, JU, LU, NE, NW, OW, SG, SH, SO, SZ, TG, TI, UR, VD, VS, ZG, ZH
| page | integer <int32> >= 0 Default: 0 Page number (0-based) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Page size (1–100) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
All cantons
{- "content": [
- {
- "cantonId": 19,
- "abbreviation": "AG",
- "nameDe": "Aargau",
- "nameFr": "Argovie",
- "nameIt": "Argovia",
- "nameRm": "Argovia",
- "nameEn": "Aargau",
- "entryDate": "1803-02-19"
}, - {
- "cantonId": 1,
- "abbreviation": "ZH",
- "nameDe": "Zürich",
- "nameFr": "Zurich",
- "nameIt": "Zurigo",
- "nameRm": "Turitg",
- "nameEn": "Zurich",
- "entryDate": "1351-05-01"
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 26,
- "totalPages": 3
}Retrieves a single cantonAbbreviation by its official two-letter abbreviation.
The abbreviation is case-insensitive (e.g., "zh", "ZH", and "Zh" all work).
| abbreviation required | string Enum: "ZH" "BE" "LU" "UR" "SZ" "OW" "NW" "GL" "ZG" "FR" "SO" "BS" "BL" "SH" "AR" "AI" "SG" "GR" "AG" "TG" "TI" "VD" "VS" "NE" "GE" "JU" Example: ZH Two-letter cantonAbbreviation abbreviation (ISO 3166-2:CH) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| cantonId | integer <int32> [ 1 .. 26 ] Official canton number assigned by the Federal Statistical Office |
| abbreviation | string = 2 characters ^[A-Z]{2}$ Official two-letter canton abbreviation (ISO 3166-2:CH) |
| nameDe | string <= 30 characters Canton name in German |
| nameFr | string <= 30 characters Canton name in French |
| nameIt | string <= 30 characters Canton name in Italian |
| nameRm | string <= 30 characters Canton name in Romansh |
| nameEn | string <= 30 characters Canton name in English |
| entryDate | string <date> <= 10 characters Entry date of the canton in the Federal Confederation |
Array of objects (DistrictResponse) <= 50 characters Districts (Bezirke) contained in this canton. Note: Some cantons do not have districts and are directly divided into municipalities. |
Zurich cantonAbbreviation
{- "cantonId": 1,
- "abbreviation": "ZH",
- "nameDe": "Zürich",
- "nameFr": "Zurich",
- "nameIt": "Zurigo",
- "nameRm": "Turitg",
- "nameEn": "Zurich",
- "entryDate": "1351-05-01",
- "districts": [
- {
- "districtId": 101,
- "name": "Bezirk Affoltern",
- "shortName": "Affoltern",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "dateOfChange": "2024-01-15"
}, - {
- "districtId": 112,
- "name": "Bezirk Zürich",
- "shortName": "Zürich",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "dateOfChange": "2024-01-15"
}
]
}Swiss administrative districts API.
This API provides access to Swiss districts (Bezirke/Districts/Distretti), which are administrative subdivisions of cantons. Note that some cantons (e.g. GE, BS, BL, NW, OW, UR, AI) do not have districts and are divided directly into municipalities.
Data Source: Federal Statistical Office (FSO/BFS) via eCH-0071
Retrieves a single district by its official district number assigned by the Federal Statistical Office (FSO/BFS).
| districtId required | integer <int32> >= 1 Example: 101 Official FSO/BFS district number |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| districtId | integer <int32> [ 1 .. 9999 ] Official district number assigned by the Federal Statistical Office |
| name | string <= 60 characters Official district name |
| shortName | string <= 24 characters Short official district name for compact display |
object (CantonResponse_WithCanton) Canton to which this district belongs | |
| admissionMode | string Enum: "CREATION" "SPLIT" "MERGER" "TERRITORIAL_CHANGE" "NAME_CHANGE" "ADMINISTRATIVE_REACTIVATION" "OTHER_MUTATION" Type of administrative admission that created this district |
| integrationDate | string <date> Date when the district was integrated into the federal register |
| abolitionMode | string Enum: "MERGER" "TERRITORIAL_CHANGE" "NAME_CHANGE" "ADMINISTRATIVE_DEACTIVATION" "OTHER_MUTATION" "ATTACHMENT" "FINAL_SUPPRESSION" Type of administrative abolition (null if district is still active) |
| abolitionDate | string <date> Date when the district was abolished (null if district is still active) |
| dateOfChange | string <date> Date of last modification to this district's data |
Array of objects (MunicipalityResponse_WithCanton) List of municipalities (Gemeinden) contained within this district |
Zurich district
{- "districtId": 101,
- "name": "Bezirk Affoltern",
- "shortName": "Affoltern",
- "canton": {
- "cantonId": 1,
- "abbreviation": "ZH",
- "nameDe": "Zürich",
- "nameFr": "Zurich",
- "nameIt": "Zurigo",
- "nameRm": "Turitg",
- "nameEn": "Zurich",
- "entryDate": "1351-05-01"
}, - "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "dateOfChange": "2024-01-15",
- "municipalities": [
- {
- "municipalityId": 1,
- "longName": "Aeugst am Albis",
- "shortName": "Aeugst am Albis",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null
}
]
}Full-text search across district names using fuzzy matching.
Returns up to limit results ordered by relevance score.
The search is accent-insensitive and tolerates minor spelling variations.
| q required | string [ 2 .. 100 ] characters Example: q=Zürich Search term to match against district names (fuzzy, accent-insensitive) |
| limit | integer <int32> [ 1 .. 50 ] Default: 20 Example: limit=20 Maximum number of candidates to retrieve from the index (1–50) |
| page | integer <int32> >= 0 Default: 0 Page number (0-based) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Page size (1–100) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Search result
{- "content": [
- {
- "districtId": 101,
- "name": "Bezirk Affoltern",
- "shortName": "Affoltern",
- "canton": {
- "cantonId": 1,
- "abbreviation": "ZH",
- "nameDe": "Zürich",
- "nameFr": "Zurich",
- "nameIt": "Zurigo",
- "nameRm": "Turitg",
- "nameEn": "Zurich",
- "entryDate": "1351-05-01"
}, - "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "dateOfChange": "2024-01-15"
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 2,
- "totalPages": 1
}Retrieves all districts belonging to the given canton, sorted alphabetically by name.
Some cantons have no districts — an empty page is returned in that case.
| abbreviation required | string Enum: "ZH" "BE" "LU" "UR" "SZ" "OW" "NW" "GL" "ZG" "FR" "SO" "BS" "BL" "SH" "AR" "AI" "SG" "GR" "AG" "TG" "TI" "VD" "VS" "NE" "GE" "JU" Example: ZH Two-letter canton abbreviation (ISO 3166-2:CH) |
| page | integer <int32> >= 0 Default: 0 Page number (0-based) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Page size (1–100) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Zurich districts
{- "content": [
- {
- "districtId": 101,
- "name": "Bezirk Affoltern",
- "shortName": "Affoltern",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "dateOfChange": "2024-01-15"
}, - {
- "districtId": 102,
- "name": "Bezirk Andelfingen",
- "shortName": "Andelfingen",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "dateOfChange": "2024-01-15"
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 12,
- "totalPages": 2
}Swiss political municipalities API.
This API provides access to Swiss municipalities (Gemeinden/Communes/Comuni), the smallest political unit in Switzerland. Each municipality is identified by a unique BFS number assigned by the Federal Statistical Office.
Data Source: Federal Statistical Office (FSO/BFS) via eCH-0071
Retrieves a single municipality by its official BFS number.
| municipalityId required | integer <int32> >= 1 Example: 261 Official FSO/BFS municipality number (BFS-Nr) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| municipalityId | integer <int32> [ 1 .. 9999 ] Official municipality number assigned by the Federal Statistical Office |
| longName | string <= 40 characters Full official municipality name |
| shortName | string <= 40 characters Short municipality name |
| admissionMode | string Enum: "CREATION" "SPLIT" "MERGER" "TERRITORIAL_CHANGE" "NAME_CHANGE" "ADMINISTRATIVE_REACTIVATION" "OTHER_MUTATION" Type of administrative admission that created this municipality |
| integrationDate | string <date> Date when the municipality was integrated into the federal register |
| abolitionMode | string Enum: "MERGER" "TERRITORIAL_CHANGE" "NAME_CHANGE" "ADMINISTRATIVE_DEACTIVATION" "OTHER_MUTATION" "ATTACHMENT" "FINAL_SUPPRESSION" Type of administrative abolition (null if municipality is still active) |
| abolitionDate | string <date> Date when the municipality was abolished (null if municipality is still active) |
object (DistrictResponse) District (Bezirk) containing this municipality | |
Array of objects (LocalityResponse) List of postal localities (Ortschaften) within this municipality |
Zurich municipality
{- "municipalityId": 261,
- "longName": "Zürich",
- "shortName": "Zürich",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "district": {
- "districtId": 112,
- "name": "Bezirk Zürich",
- "shortName": "Zürich",
- "canton": {
- "cantonId": 1,
- "abbreviation": "ZH",
- "nameDe": "Zürich"
}
}
}Full-text search across municipality names, district names, canton names and locality names using fuzzy matching. Results are ordered by relevance score. The search is accent-insensitive and tolerates minor spelling variations.
| q required | string [ 2 .. 100 ] characters Example: q=Zürich Search term (fuzzy, accent-insensitive) |
| limit | integer <int32> [ 1 .. 50 ] Default: 20 Example: limit=20 Maximum number of candidates from the index (1–50) |
| page | integer <int32> >= 0 Default: 0 Page number (0-based) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Page size (1–100) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Search results
{- "content": [
- {
- "municipalityId": 5586,
- "longName": "Lausanne",
- "shortName": "Lausanne",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 1,
- "totalPages": 1
}Retrieves all municipalities belonging to the given district, sorted alphabetically by name.
The district field is omitted from each municipality (redundant with the filter).
| district required | integer <int32> >= 1 Example: 101 Official FSO/BFS district number |
| page | integer <int32> >= 0 Default: 0 Page number (0-based) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Page size (1–100) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
District municipalities
{- "content": [
- {
- "municipalityId": 1,
- "longName": "Aeugst am Albis",
- "shortName": "Aeugst am Albis",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 14,
- "totalPages": 2
}Retrieves all municipalities belonging to the given canton, sorted alphabetically by name.
The canton field inside each district is omitted (redundant with the filter).
| canton required | string Enum: "ZH" "BE" "LU" "UR" "SZ" "OW" "NW" "GL" "ZG" "FR" "SO" "BS" "BL" "SH" "AR" "AI" "SG" "GR" "AG" "TG" "TI" "VD" "VS" "NE" "GE" "JU" Example: ZH Two-letter canton abbreviation (ISO 3166-2:CH) |
| page | integer <int32> >= 0 Default: 0 Page number (0-based) |
| size | integer <int32> [ 1 .. 100 ] Default: 10 Example: size=10 Page size (1–100) |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Zurich municipalities
{- "content": [
- {
- "municipalityId": 261,
- "longName": "Zürich",
- "shortName": "Zürich",
- "admissionMode": "CREATION",
- "integrationDate": "1848-09-12",
- "abolitionMode": null,
- "abolitionDate": null,
- "district": {
- "districtId": 112,
- "name": "Bezirk Zürich",
- "shortName": "Zürich"
}
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 162,
- "totalPages": 17
}Swiss address search and normalization API.
This API provides access to the official Swiss federal address database (GWR/RegBL), enabling address lookup, autocomplete, and normalization services for all Swiss addresses.
Key Features:
Data Source: Federal Register of Buildings and Dwellings (RBD/GWR)
Search for addresses using full-text search with relevance scoring. Returns addresses that match the query with a relevance score above the threshold.
Ideal for:
Scoring:
Performance:
Note: The query can also be submitted via request body (POST /autocomplete)
for confidential use-cases where the query must not appear in URL logs (e.g. banking).
Both methods are mutually exclusive.
| query required | string [ 1 .. 2147483647 ] characters Example: query=Bahnhofstrasse Zürich Search query string for autocomplete. Supports street names, localities, postal codes, and combinations. |
| threshold | string [ 0 .. 1 ] Example: threshold=0.5 Minimum relevance score threshold. Results below this score are filtered out. Range: 0.0 (all results) to 1.0 (exact matches only). |
| limit | string [ 1 .. 20 ] Example: limit=10 Maximum number of results to return. Limited to 20 for performance. Lower values recommended for real-time autocomplete. |
| entityStatus | string Default: "REAL" Enum: "PLANNED" "REAL" "OUTDATED" Example: entityStatus=REAL Filter by address status. REAL = existing addresses (default). |
| addressCategories | string Enum: "UNCATEGORIZED" "TEMPORARY" "RESIDENTIAL" "OTHER_RESIDENTIAL" "PARTLY_RESIDENTIAL" "NON_RESIDENTIAL" "SPECIAL" Example: addressCategories=RESIDENTIAL,TEMPORARY Filter by address categories. Multiple categories can be specified. |
| page | string >= 0 Page number (0-based) |
| size | string [ 1 .. 20 ] Example: size=10 Page size |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Autocomplete results
{- "content": [
- {
- "id": 100001234,
- "streetName": "Bahnhofstrasse",
- "houseNumber": "1",
- "zip4": 8001,
- "zipa": 0,
- "locality": "Zürich",
- "municipality": "Zürich",
- "canton": "ZH",
- "score": 0.95
}
], - "pageNumber": 0,
- "pageSize": 10,
- "totalElements": 2,
- "totalPages": 1
}Confidential variant of autocomplete for use-cases where the search query must not appear in URL logs (e.g. banking or regulated industries). The query is passed in the encrypted request body instead of as a URL parameter.
Mutually exclusive with GET /autocomplete — use one or the other, never both.
All search parameters are embedded in the request body as a JSON object.
| page | string >= 0 Page number (0-based) |
| size | string [ 1 .. 20 ] Example: size=10 Page size |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
Autocomplete search parameters including the confidential query string
| query required | string [ 1 .. 200 ] characters Search query string. Supports street names, localities, postal codes, and combinations. |
| threshold | number <double> [ 0 .. 1 ] Default: "0.5" Minimum relevance score threshold. Results below this score are filtered out. Range: 0.0 (all results) to 1.0 (exact matches only). |
| limit | integer <int32> [ 1 .. 20 ] Default: 10 Maximum number of results to return. Limited to 20 for performance. Lower values recommended for real-time autocomplete. |
| entityStatus | string Default: "REAL" Enum: "PLANNED" "REAL" "OUTDATED" Filter by address status. REAL = existing addresses (default). |
| addressCategories | Array of strings Items Enum: "UNCATEGORIZED" "TEMPORARY" "RESIDENTIAL" "OTHER_RESIDENTIAL" "PARTLY_RESIDENTIAL" "NON_RESIDENTIAL" "SPECIAL" Filter by address categories. Multiple categories can be specified. |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Confidential autocomplete
{- "query": "Bahnhofstrasse Zürich",
- "threshold": 0.5,
- "limit": 10,
- "entityStatus": "REAL",
- "addressCategories": [
- "RESIDENTIAL",
- "OTHER_RESIDENTIAL"
]
}{- "content": [
- null
], - "pageNumber": 0,
- "pageSize": 20,
- "totalElements": 156,
- "totalPages": 8
}Retrieves all language variants of an address by its federal address identifier (EGAID).
The EGAID is a unique identifier assigned by the Swiss Federal Statistical Office to each building entrance in Switzerland. Since the primary key is (id, street_language), a single EGAID may return multiple entries — one per registered language.
| id required | integer <int64> Example: 100001234 Federal address identifier (EGAID) - unique identifier for building entrances |
| page | string >= 0 Page number (0-based) |
| size | string [ 1 .. 100 ] Example: size=20 Page size |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Zurich address
{- "content": [
- {
- "id": 100001234,
- "streetName": "Bahnhofstrasse",
- "houseNumber": "1",
- "postalCode": 8001,
- "locality": "Zürich",
- "status": "REAL",
- "category": "RESIDENTIAL"
}
], - "pageNumber": 0,
- "pageSize": 20,
- "totalElements": 1,
- "totalPages": 1
}Search for addresses using structured criteria. All parameters are optional and can be combined. At least one search criterion must be provided.
Use Cases:
Search Behavior:
localityName and municipalityName support partial matching| zip4 | string [ 1000 .. 9999 ] Example: zip4=8001 4-digit Swiss postal code (PLZ/NPA). Must be between 1000 and 9999. |
| zipId | integer <int64> Example: zipId=4000 Postal locality identifier (ONRP) - unique identifier for postal localities |
| localityName | string [ 0 .. 100 ] characters Example: localityName=Zürich Locality name. Supports partial matching (case-insensitive). |
| municipalityName | string [ 0 .. 100 ] characters Example: municipalityName=Zürich Municipality name. Supports partial matching (case-insensitive). |
| cantonAbbreviation | string = 2 characters ^[A-Za-z]{2}$ Example: cantonAbbreviation=ZH Canton abbreviation (2 letters, case-insensitive). Example: ZH, BE, VD |
| streetName | string Example: streetName=Bahnhofstrasse Street name. Supports partial matching. |
| entityStatus | string Default: "REAL" Enum: "PLANNED" "REAL" "OUTDATED" Example: entityStatus=REAL Filter by address status. REAL = existing addresses, PLANNED = future addresses, OUTDATED = historical addresses. |
| addressCategories | string Enum: "UNCATEGORIZED" "TEMPORARY" "RESIDENTIAL" "OTHER_RESIDENTIAL" "PARTLY_RESIDENTIAL" "NON_RESIDENTIAL" "SPECIAL" Example: addressCategories=RESIDENTIAL,TEMPORARY Filter by address categories. Multiple categories can be specified. |
| limit | string [ 1 .. 1000 ] Example: limit=100 Maximum number of results to fetch before pagination. Must be between 1 and 1000. |
| page | string >= 0 Page number (0-based) |
| size | string [ 1 .. 100 ] Example: size=20 Page size |
| X-HelvAddress-API-Version | string Default: 1.0.0 Value: "1.0.0" |
| content | Array of any List of items in the current page |
| pageNumber | integer <int32> >= 0 Current page number (0-based) |
| pageSize | integer <int32> [ 1 .. 100 ] Number of items per page |
| totalElements | integer <int64> Total number of items across all pages |
| totalPages | integer <int32> >= 0 Total number of pages |
Zurich results
{- "content": [
- {
- "id": 100001234,
- "streetName": "Bahnhofstrasse",
- "houseNumber": "1",
- "postalCode": 8001,
- "locality": "Zürich",
- "status": "REAL",
- "category": "RESIDENTIAL"
}
], - "pageNumber": 0,
- "pageSize": 20,
- "totalElements": 156,
- "totalPages": 8
}