Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Switzerland Administrative Divisions / Schweiz

Overview

Item Details
Canton 26
District 148
Coordinates ✅ Included (all levels)
Formats JSON, NDJSON, CSV
License CC-BY-4.0
Last Updated 2026-09-08
Website openadmindata.org/ch
API openadmindata.org/api/ch
Flag PNG · CDN · CSS · Collections
National Anthem 🎵 Listen & Download Switzerland National Anthem MP3
Statistics GDP · Population — via NationData.org

Browse by Canton

# Canton Districts Link
1 Glarus 1 Browse
2 Graubünden (Graubunden) 11 Browse
3 Zug 1 Browse
4 Ticino 8 Browse
5 Appenzell Innerrhoden 1 Browse
6 Valais 13 Browse
7 Schaffhausen 6 Browse
8 Genève (Geneva) 1 Browse
9 Basel-Stadt (Basel-City) 1 Browse
10 Fribourg 7 Browse
11 Schwyz 6 Browse
12 Zürich (Zurich) 13 Browse
13 Nidwalden 1 Browse
14 Luzern (Lucerne) 6 Browse
15 Vaud 11 Browse
16 Aargau 11 Browse
17 Thurgau 6 Browse
18 St. Gallen (Saint Gallen) 9 Browse
19 Jura 3 Browse
20 Appenzell Ausserrhoden 3 Browse
21 Neuchâtel (Neuchatel) 1 Browse
22 Basel-Landschaft (Basel-Country) 5 Browse
23 Solothurn 10 Browse
24 Obwalden 1 Browse
25 Uri 1 Browse
26 Bern 11 Browse

Data Files

File Format Description
all-canton.json JSON All 26 canton records
all-district.json JSON All 148 district records
all-flat.json JSON Levels 1-1 flat array
all-flat.ndjson NDJSON Streaming format
all-flat.csv CSV Spreadsheet format
hierarchy.json JSON Nested tree
schema.json JSON Schema Data schema

Quick Start

Python

import json

with open("data/all-canton.json", "r", encoding="utf-8") as f:
    data = json.load(f)

for r in data:
    print(f"{r['name']['local']} ({r['name']['en']}) — {r['children_count']['district']} districts")

JavaScript

import { readFileSync } from "fs";

const data = JSON.parse(readFileSync("data/all-canton.json", "utf-8"));
console.log(`Total: ${data.length} cantons`);

Schema

Field Type Description
id string Unique identifier
level integer 1=canton, 2=district
level_name object Level label (local + English)
name.local string Name in local script
name.en string English name
name.slug string URL-safe slug
parent object/null Parent division reference
ancestors array Full ancestor chain
children_count object Count of children per level
zip_codes array Postal codes (where available)
geo.lat string Latitude (WGS84)
geo.lon string Longitude (WGS84)

Full schema: data/schema.json

Hierarchy Browse

divisions/{canton-slug}/

Districts are listed inline in each canton's README.

AI Integration

Citation

Switzerland Administrative Divisions Dataset (CC-BY-4.0)
URL: https://github.com/open-admin-data/switzerland-administrative-divisions

See CITATION.cff for machine-readable citation.

License

Related

About

Switzerland: 26 cantons, 148 districts — Open Admin Data

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors