Wilayas & Communes d'Algérie
Code Géographique National - Juin 2021 — 58 wilayas, 1 541 communes — Voir la carte interactive
| Code ONS | Code Postal | Wilaya | Commune | Commune (Arabe) |
|---|---|---|---|---|
| 22829 | SIDI BEL ABBÈS سيدي بلعباس | SIDI KHALED | سيدي خالد | |
| 22830 | 22020 | SIDI BEL ABBÈS سيدي بلعباس | SIDI LAHCENE | سيدي لحسن |
| 22831 | 22063 | SIDI BEL ABBÈS سيدي بلعباس | SIDI YACOUB | سيدي يعقوب |
| 22832 | 22032 | SIDI BEL ABBÈS سيدي بلعباس | TABIA | طابية |
| 22833 | 22064 | SIDI BEL ABBÈS سيدي بلعباس | TAOUDMOUT | تاودموت |
| 22834 | 22065 | SIDI BEL ABBÈS سيدي بلعباس | TEFESSOUR | تفسور |
| 22835 | 22066 | SIDI BEL ABBÈS سيدي بلعباس | TEGHALIMET | تغاليمت |
| 22836 | 22007 | SIDI BEL ABBÈS سيدي بلعباس | TELAGH | تلاغ |
| 22837 | 22021 | SIDI BEL ABBÈS سيدي بلعباس | TENIRA | تنيرة |
| 22838 | 22033 | SIDI BEL ABBÈS سيدي بلعباس | TESSALA | تسالة |
| 22839 | 22044 | SIDI BEL ABBÈS سيدي بلعباس | TILMOUNI | تلموني |
| 22840 | 22068 | SIDI BEL ABBÈS سيدي بلعباس | ZEROUALA | زروالة |
| 23841 | 23006 | ANNABA عنابة | AIN EL BERDA | عين الباردة |
| 23842 | 23000 | ANNABA عنابة | ANNABA | عنابة |
| 23843 | 23009 | ANNABA عنابة | BERRAHAL | برحال |
| 23844 | 23014 | ANNABA عنابة | CHETAIBI | شطايبي |
| 23845 | 23025 | ANNABA عنابة | CHEURFA | الشرفة |
| 23846 | 00000 | ANNABA عنابة | EL BOUNI | البوني |
| 23847 | ANNABA عنابة | EL EULMA | العلمة | |
| 23848 | 23004 | ANNABA عنابة | EL HADJAR | الحجار |
SIDI KHALED
سيدي خالد
22829
SIDI BEL ABBÈS — سيدي بلعباس
SIDI LAHCENE
سيدي لحسن
22830
22020
SIDI BEL ABBÈS — سيدي بلعباس
SIDI YACOUB
سيدي يعقوب
22831
22063
SIDI BEL ABBÈS — سيدي بلعباس
TABIA
طابية
22832
22032
SIDI BEL ABBÈS — سيدي بلعباس
TAOUDMOUT
تاودموت
22833
22064
SIDI BEL ABBÈS — سيدي بلعباس
TEFESSOUR
تفسور
22834
22065
SIDI BEL ABBÈS — سيدي بلعباس
TEGHALIMET
تغاليمت
22835
22066
SIDI BEL ABBÈS — سيدي بلعباس
TELAGH
تلاغ
22836
22007
SIDI BEL ABBÈS — سيدي بلعباس
TENIRA
تنيرة
22837
22021
SIDI BEL ABBÈS — سيدي بلعباس
TESSALA
تسالة
22838
22033
SIDI BEL ABBÈS — سيدي بلعباس
TILMOUNI
تلموني
22839
22044
SIDI BEL ABBÈS — سيدي بلعباس
ZEROUALA
زروالة
22840
22068
SIDI BEL ABBÈS — سيدي بلعباس
AIN EL BERDA
عين الباردة
23841
23006
ANNABA — عنابة
ANNABA
عنابة
23842
23000
ANNABA — عنابة
BERRAHAL
برحال
23843
23009
ANNABA — عنابة
CHETAIBI
شطايبي
23844
23014
ANNABA — عنابة
CHEURFA
الشرفة
23845
23025
ANNABA — عنابة
EL BOUNI
البوني
23846
00000
ANNABA — عنابة
EL EULMA
العلمة
23847
ANNABA — عنابة
EL HADJAR
الحجار
23848
23004
ANNABA — عنابة
Documentation API
GET /api/wilayas
GET /api/wilayas/{code}
GET /api/communes
GET
/api/wilayas
Retourne la liste des 58 wilayas d'Algérie. Chaque wilaya contient son code (sur 2 chiffres), son nom en français et son nom en arabe.
Un paramètre de recherche optionnel permet de filtrer par code, nom français ou nom arabe.
Paramètres
| Nom | Type | Description |
|---|---|---|
| q optionnel | string | Recherche sur le code, le nom français ou le nom arabe de la wilaya |
Réponse 200 OK
[ { "code": "16", "name": "ALGER", "name_ar": "الجزائر" }, { "code": "31", "name": "ORAN", "name_ar": "وهران" } // ... ]
PHP
Python
cURL
// Lister toutes les wilayas $response = file_get_contents('https://data.dz-immo.com/api/wilayas'); $wilayas = json_decode($response, true); foreach ($wilayas as $w) { echo $w['code'] . ' - ' . $w['name'] . ' (' . $w['name_ar'] . ")\n"; } // Rechercher une wilaya par nom $q = urlencode('alger'); $results = json_decode( file_get_contents("https://data.dz-immo.com/api/wilayas?q={$q}"), true ); // Avec cURL (gestion d'erreurs) $ch = curl_init('https://data.dz-immo.com/api/wilayas'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Accept: application/json'], ]); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($status === 200) { $wilayas = json_decode($response, true); }
import requests # Lister toutes les wilayas response = requests.get("https://data.dz-immo.com/api/wilayas") wilayas = response.json() for w in wilayas: print(f"{w['code']} - {w['name']} ({w['name_ar']})") # Rechercher une wilaya response = requests.get( "https://data.dz-immo.com/api/wilayas", params={"q": "alger"} ) results = response.json() # Construire un dictionnaire code -> nom wilaya_map = {w["code"]: w["name"] for w in wilayas} print(wilaya_map["16"]) # ALGER
# Toutes les wilayas curl https://data.dz-immo.com/api/wilayas # Rechercher par nom curl "https://data.dz-immo.com/api/wilayas?q=oran" # Rechercher en arabe curl "https://data.dz-immo.com/api/wilayas?q=وهران"
GET
/api/wilayas/{code}
Retourne le détail d'une wilaya identifiée par son code (2 chiffres), accompagnée de la liste complète de ses communes.
Si le code n'existe pas, l'API retourne une erreur 404.
Paramètres d'URL
| Nom | Type | Description |
|---|---|---|
| code | string | Code de la wilaya sur 2 chiffres (ex: 16 pour Alger, 31 pour Oran) |
Réponse 200 OK
{ "code": "16", "name": "ALGER", "name_ar": "الجزائر", "communes": [ { "code": "01", "name": "ALGER CENTRE", "name_ar": "الجزائر الوسطى" }, { "code": "05", "name": "BAB EL OUED", "name_ar": "باب الوادي" } // ... 57 communes au total ] }
Erreur 404
{ "error": "Wilaya not found" }
PHP
Python
cURL
// Récupérer Alger (code 16) avec toutes ses communes $code = '16'; $response = file_get_contents("https://data.dz-immo.com/api/wilayas/{$code}"); $wilaya = json_decode($response, true); echo $wilaya['name'] . " contient " . count($wilaya['communes']) . " communes\n"; // Afficher chaque commune foreach ($wilaya['communes'] as $c) { echo sprintf( " %s-%s %-25s %s\n", $wilaya['code'], $c['code'], $c['name'], $c['name_ar'] ); } // Construire un select HTML $html = '<select name="commune">'; foreach ($wilaya['communes'] as $c) { $html .= "<option value=\"{$c['code']}\">" . "{$c['name']} ({$c['name_ar']})</option>"; } $html .= '</select>';
import requests # Récupérer une wilaya et ses communes code = "16" response = requests.get(f"https://data.dz-immo.com/api/wilayas/{code}") response.raise_for_status() # lève une exception si 404 wilaya = response.json() print(f"{wilaya['name']} : {len(wilaya['communes'])} communes") # Créer un DataFrame pandas import pandas as pd df = pd.DataFrame(wilaya["communes"]) print(df.to_string(index=False)) # Exporter en CSV df.to_csv(f"communes_wilaya_{code}.csv", index=False)
# Détail de la wilaya d'Alger curl https://data.dz-immo.com/api/wilayas/16 # Détail de la wilaya d'Oran curl https://data.dz-immo.com/api/wilayas/31 # Formatter la sortie avec jq curl -s https://data.dz-immo.com/api/wilayas/16 | jq '.communes[] | .name'
GET
/api/communes
Retourne la liste des communes avec des filtres combinables : recherche textuelle et/ou filtrage par code de wilaya.
Sans filtre, retourne les 1 541 communes. Chaque commune inclut les informations de sa wilaya parente.
Paramètres
| Nom | Type | Description |
|---|---|---|
| q optionnel | string | Recherche sur le code, le nom français ou le nom arabe de la commune |
| wilaya optionnel | string | Code de la wilaya pour filtrer les communes (2 chiffres, ex: 16) |
Réponse 200 OK
[ { "wilaya_code": "16", "wilaya_name": "ALGER", "wilaya_name_ar": "الجزائر", "code": "05", "name": "BAB EL OUED", "name_ar": "باب الوادي" } // ... ]
PHP
Python
cURL
// Communes d'une wilaya $wilayaCode = '16'; $response = file_get_contents( "https://data.dz-immo.com/api/communes?wilaya={$wilayaCode}" ); $communes = json_decode($response, true); // Rechercher une commune par nom dans une wilaya $q = urlencode('bab'); $response = file_get_contents( "https://data.dz-immo.com/api/communes?wilaya=16&q={$q}" ); $results = json_decode($response, true); // Rechercher dans toutes les wilayas $response = file_get_contents( "https://data.dz-immo.com/api/communes?q=ain" ); $communes = json_decode($response, true); echo count($communes) . " communes contiennent 'ain'\n"; // Regrouper les communes par wilaya $grouped = []; foreach ($communes as $c) { $grouped[$c['wilaya_name']][] = $c['name']; }
import requests # Communes d'une wilaya response = requests.get( "https://data.dz-immo.com/api/communes", params={"wilaya": "16"} ) communes = response.json() # Rechercher + filtrer par wilaya response = requests.get( "https://data.dz-immo.com/api/communes", params={"q": "bab", "wilaya": "16"} ) # Charger toutes les communes dans un DataFrame import pandas as pd all_communes = requests.get("https://data.dz-immo.com/api/communes").json() df = pd.DataFrame(all_communes) # Nombre de communes par wilaya print(df.groupby("wilaya_name").size().sort_values(ascending=False)) # Exporter tout en CSV df.to_csv("communes_algerie.csv", index=False)
# Toutes les communes curl https://data.dz-immo.com/api/communes # Communes de la wilaya 16 (Alger) curl "https://data.dz-immo.com/api/communes?wilaya=16" # Rechercher "bab" dans Alger curl "https://data.dz-immo.com/api/communes?wilaya=16&q=bab" # Rechercher dans toutes les wilayas + compter curl -s "https://data.dz-immo.com/api/communes?q=ain" | jq 'length'