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) |
|---|---|---|---|---|
| 481504 | 48033 | RELIZANE غليزان | AIN RAHMA | عين الرحمة |
| 481505 | 48015 | RELIZANE غليزان | AIN-TAREK | عين طارق |
| 481506 | 48004 | RELIZANE غليزان | AMMI MOUSSA | عمي موسى |
| 481507 | 48036 | RELIZANE غليزان | BELAASSEL BOUZAGZA | بلعسل بوزقزة |
| 481508 | 48053 | RELIZANE غليزان | BENDAOUD | بن داود |
| 481509 | 48039 | RELIZANE غليزان | BENI DERGOUN | بني درقن |
| 481510 | 48041 | RELIZANE غليزان | BENI ZENTIS | بني زنطيس |
| 481511 | 48044 | RELIZANE غليزان | DAR BEN ABDELAH | دار بن عبد الله |
| 481512 | 48005 | RELIZANE غليزان | DJIDIOUIA | جديوية |
| 481513 | 48059 | RELIZANE غليزان | EL HASSI | الحاسي |
| 481514 | 48017 | RELIZANE غليزان | EL H'MADNA | الحمادنة |
| 481515 | RELIZANE غليزان | EL OULDJA | الولجة | |
| 481516 | 48016 | RELIZANE غليزان | EL-GUETTAR | القطار |
| 481517 | 48009 | RELIZANE غليزان | EL-MATMAR | المطمر |
| 481518 | 48050 | RELIZANE غليزان | HAD ECHKALLA | حد الشكالة |
| 481519 | 48051 | RELIZANE غليزان | HAMRI | حمري |
| 481520 | 48018 | RELIZANE غليزان | KALAA | القلعة |
| 481521 | 48020 | RELIZANE غليزان | LAHLEF | لحلاف |
| 481522 | 48002 | RELIZANE غليزان | MAZOUNA | مازونة |
| 481523 | 48011 | RELIZANE غليزان | MEDIOUNA | مديونة |
AIN RAHMA
عين الرحمة
481504
48033
RELIZANE — غليزان
AIN-TAREK
عين طارق
481505
48015
RELIZANE — غليزان
AMMI MOUSSA
عمي موسى
481506
48004
RELIZANE — غليزان
BELAASSEL BOUZAGZA
بلعسل بوزقزة
481507
48036
RELIZANE — غليزان
BENDAOUD
بن داود
481508
48053
RELIZANE — غليزان
BENI DERGOUN
بني درقن
481509
48039
RELIZANE — غليزان
BENI ZENTIS
بني زنطيس
481510
48041
RELIZANE — غليزان
DAR BEN ABDELAH
دار بن عبد الله
481511
48044
RELIZANE — غليزان
DJIDIOUIA
جديوية
481512
48005
RELIZANE — غليزان
EL HASSI
الحاسي
481513
48059
RELIZANE — غليزان
EL H'MADNA
الحمادنة
481514
48017
RELIZANE — غليزان
EL OULDJA
الولجة
481515
RELIZANE — غليزان
EL-GUETTAR
القطار
481516
48016
RELIZANE — غليزان
EL-MATMAR
المطمر
481517
48009
RELIZANE — غليزان
HAD ECHKALLA
حد الشكالة
481518
48050
RELIZANE — غليزان
HAMRI
حمري
481519
48051
RELIZANE — غليزان
KALAA
القلعة
481520
48018
RELIZANE — غليزان
LAHLEF
لحلاف
481521
48020
RELIZANE — غليزان
MAZOUNA
مازونة
481522
48002
RELIZANE — غليزان
MEDIOUNA
مديونة
481523
48011
RELIZANE — غليزان
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'