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) |
|---|---|---|---|---|
| 18669 | 18016 | JIJEL جيجل | SETTARA | السطارة |
| 18670 | 18017 | JIJEL جيجل | SIDI ABDELAZIZ | سيدي عبد العزيز |
| 18671 | 18018 | JIJEL جيجل | SIDI MAROUF | سيدي معروف |
| 18672 | 18002 | JIJEL جيجل | TAHER | الطاهير |
| 18673 | 18006 | JIJEL جيجل | TEXENNA | تاكسنة |
| 18674 | 18007 | JIJEL جيجل | ZIAMA MANSOURIAH | زيامة منصورية |
| 19675 | 19016 | SÉTIF سطيف | AIN ABESSA | عين عباسة |
| 19676 | 19017 | SÉTIF سطيف | AIN ARNAT | عين أرنات |
| 19677 | 19007 | SÉTIF سطيف | AIN AZEL | عين أزال |
| 19678 | 19008 | SÉTIF سطيف | AIN EL KEBIRA | عين الكبيرة |
| 19679 | 19018 | SÉTIF سطيف | AIN LAHDJAR | عين الحجر |
| 19680 | 19002 | SÉTIF سطيف | AIN OULMENE | عين ولمان |
| 19681 | 19035 | SÉTIF سطيف | AIN-LEGRADJ | عين لقراج |
| 19682 | 19019 | SÉTIF سطيف | AIN-ROUA | عين الروى |
| 19683 | 19033 | SÉTIF سطيف | AIN-SEBT | عين السبت |
| 19684 | 19076 | SÉTIF سطيف | AIT NAOUAL MEZADA | أيت نوال مزادة |
| 19685 | 19077 | SÉTIF سطيف | AIT-TIZI | ايت تيزي |
| 19686 | 19009 | SÉTIF سطيف | AMOUCHA | عموشة |
| 19687 | 19020 | SÉTIF سطيف | BABOR | بابور |
| 19688 | 19036 | SÉTIF سطيف | BAZER-SAKRA | بازر سكرة |
SETTARA
السطارة
18669
18016
JIJEL — جيجل
SIDI ABDELAZIZ
سيدي عبد العزيز
18670
18017
JIJEL — جيجل
SIDI MAROUF
سيدي معروف
18671
18018
JIJEL — جيجل
TAHER
الطاهير
18672
18002
JIJEL — جيجل
TEXENNA
تاكسنة
18673
18006
JIJEL — جيجل
ZIAMA MANSOURIAH
زيامة منصورية
18674
18007
JIJEL — جيجل
AIN ABESSA
عين عباسة
19675
19016
SÉTIF — سطيف
AIN ARNAT
عين أرنات
19676
19017
SÉTIF — سطيف
AIN AZEL
عين أزال
19677
19007
SÉTIF — سطيف
AIN EL KEBIRA
عين الكبيرة
19678
19008
SÉTIF — سطيف
AIN LAHDJAR
عين الحجر
19679
19018
SÉTIF — سطيف
AIN OULMENE
عين ولمان
19680
19002
SÉTIF — سطيف
AIN-LEGRADJ
عين لقراج
19681
19035
SÉTIF — سطيف
AIN-ROUA
عين الروى
19682
19019
SÉTIF — سطيف
AIN-SEBT
عين السبت
19683
19033
SÉTIF — سطيف
AIT NAOUAL MEZADA
أيت نوال مزادة
19684
19076
SÉTIF — سطيف
AIT-TIZI
ايت تيزي
19685
19077
SÉTIF — سطيف
AMOUCHA
عموشة
19686
19009
SÉTIF — سطيف
BABOR
بابور
19687
19020
SÉTIF — سطيف
BAZER-SAKRA
بازر سكرة
19688
19036
SÉTIF — سطيف
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'