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) |
|---|---|---|---|---|
| 361253 | 36039 | EL TARF الطارف | ZITOUNA | الزيتونة |
| 371254 | 37003 | TINDOUF تندوف | OUM EL ASSEL | أم العسل |
| 371255 | 37000 | TINDOUF تندوف | TINDOUF | تندوف |
| 381256 | 38012 | TISSEMSILT تيسمسيلت | AMMARI | عماري |
| 381257 | 38019 | TISSEMSILT تيسمسيلت | BENI CHAIB | بني شعيب |
| 381258 | 38020 | TISSEMSILT تيسمسيلت | BENI LAHCENE | بني لحسن |
| 381259 | 38001 | TISSEMSILT تيسمسيلت | BORDJ BOUNAAMA | برج بونعامة |
| 381260 | 38041 | TISSEMSILT تيسمسيلت | BORDJ EL EMIR ABDELKADER | برج الأمير عبد القادر |
| 381261 | 38005 | TISSEMSILT تيسمسيلت | BOUCAID | بوقائد |
| 381262 | 38016 | TISSEMSILT تيسمسيلت | KHEMISTI | خميستي |
| 381263 | TISSEMSILT تيسمسيلت | LARBAA | الأربعاء | |
| 381264 | 38002 | TISSEMSILT تيسمسيلت | LARDJEM | لرجام |
| 381265 | 38007 | TISSEMSILT تيسمسيلت | LAYOUNE | العيون |
| 381266 | 38008 | TISSEMSILT تيسمسيلت | LAZHARIA | الأزهرية |
| 381267 | 38023 | TISSEMSILT تيسمسيلت | MAACEM | المعاصم |
| 381268 | 38013 | TISSEMSILT تيسمسيلت | MELAAB | الملعب |
| 381269 | 38014 | TISSEMSILT تيسمسيلت | OULED BESSAM | أولاد بسام |
| 381270 | 38025 | TISSEMSILT تيسمسيلت | SIDI ABED | سيدي عابد |
| 381271 | 38026 | TISSEMSILT تيسمسيلت | SIDI BOUTOUCHENT | سيدي بوتوشنت |
| 381272 | 38027 | TISSEMSILT تيسمسيلت | SIDI LANTRI | سيدي العنتري |
ZITOUNA
الزيتونة
361253
36039
EL TARF — الطارف
OUM EL ASSEL
أم العسل
371254
37003
TINDOUF — تندوف
TINDOUF
تندوف
371255
37000
TINDOUF — تندوف
AMMARI
عماري
381256
38012
TISSEMSILT — تيسمسيلت
BENI CHAIB
بني شعيب
381257
38019
TISSEMSILT — تيسمسيلت
BENI LAHCENE
بني لحسن
381258
38020
TISSEMSILT — تيسمسيلت
BORDJ BOUNAAMA
برج بونعامة
381259
38001
TISSEMSILT — تيسمسيلت
BORDJ EL EMIR ABDELKADER
برج الأمير عبد القادر
381260
38041
TISSEMSILT — تيسمسيلت
BOUCAID
بوقائد
381261
38005
TISSEMSILT — تيسمسيلت
KHEMISTI
خميستي
381262
38016
TISSEMSILT — تيسمسيلت
LARBAA
الأربعاء
381263
TISSEMSILT — تيسمسيلت
LARDJEM
لرجام
381264
38002
TISSEMSILT — تيسمسيلت
LAYOUNE
العيون
381265
38007
TISSEMSILT — تيسمسيلت
LAZHARIA
الأزهرية
381266
38008
TISSEMSILT — تيسمسيلت
MAACEM
المعاصم
381267
38023
TISSEMSILT — تيسمسيلت
MELAAB
الملعب
381268
38013
TISSEMSILT — تيسمسيلت
OULED BESSAM
أولاد بسام
381269
38014
TISSEMSILT — تيسمسيلت
SIDI ABED
سيدي عابد
381270
38025
TISSEMSILT — تيسمسيلت
SIDI BOUTOUCHENT
سيدي بوتوشنت
381271
38026
TISSEMSILT — تيسمسيلت
SIDI LANTRI
سيدي العنتري
381272
38027
TISSEMSILT — تيسمسيلت
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'