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) |
|---|---|---|---|---|
| 20749 | 20035 | SAÏDA سعيدة | TIRCINE | تيرسين |
| 20750 | 20008 | SAÏDA سعيدة | YOUB | يوب |
| 21751 | 21031 | SKIKDA سكيكدة | AIN BOUZIANE | عين بوزيان |
| 21752 | 21006 | SKIKDA سكيكدة | AIN CHARCHAR | عين شرشار |
| 21753 | 21007 | SKIKDA سكيكدة | AIN KECHRA | عين قشرة |
| 21754 | 21051 | SKIKDA سكيكدة | AIN ZOUIT | عين زويت |
| 21755 | 21001 | SKIKDA سكيكدة | AZZABA | عزابة |
| 21756 | 21009 | SKIKDA سكيكدة | BEKKOUCHE LAKHDAR | بكوش لخضر |
| 21757 | 21010 | SKIKDA سكيكدة | BEN AZZOUZ | بن عزوز |
| 21758 | 21033 | SKIKDA سكيكدة | BENI BECHIR | بني بشير |
| 21759 | 21011 | SKIKDA سكيكدة | BENI OULBANE | بني ولبان |
| 21760 | 21016 | SKIKDA سكيكدة | BENI ZID | بني زيد |
| 21761 | 21052 | SKIKDA سكيكدة | BIN EL OUIDEN | بين الويدان |
| 21762 | 21053 | SKIKDA سكيكدة | BOUCHETATA | بوشطاطة |
| 21763 | 21030 | SKIKDA سكيكدة | CHERAIA | الشرايع |
| 21764 | 21002 | SKIKDA سكيكدة | COLLO | القل |
| 21765 | 21037 | SKIKDA سكيكدة | DJENDEL SAADI MOHAMED | جندل سعدي محمد |
| 21766 | 21003 | SKIKDA سكيكدة | EL ARROUCH | الحروش |
| 21767 | 21057 | SKIKDA سكيكدة | EL GHEDIR | الغدير |
| 21768 | 21015 | SKIKDA سكيكدة | EL HADAIEK | الحدائق |
TIRCINE
تيرسين
20749
20035
SAÏDA — سعيدة
YOUB
يوب
20750
20008
SAÏDA — سعيدة
AIN BOUZIANE
عين بوزيان
21751
21031
SKIKDA — سكيكدة
AIN CHARCHAR
عين شرشار
21752
21006
SKIKDA — سكيكدة
AIN KECHRA
عين قشرة
21753
21007
SKIKDA — سكيكدة
AIN ZOUIT
عين زويت
21754
21051
SKIKDA — سكيكدة
AZZABA
عزابة
21755
21001
SKIKDA — سكيكدة
BEKKOUCHE LAKHDAR
بكوش لخضر
21756
21009
SKIKDA — سكيكدة
BEN AZZOUZ
بن عزوز
21757
21010
SKIKDA — سكيكدة
BENI BECHIR
بني بشير
21758
21033
SKIKDA — سكيكدة
BENI OULBANE
بني ولبان
21759
21011
SKIKDA — سكيكدة
BENI ZID
بني زيد
21760
21016
SKIKDA — سكيكدة
BIN EL OUIDEN
بين الويدان
21761
21052
SKIKDA — سكيكدة
BOUCHETATA
بوشطاطة
21762
21053
SKIKDA — سكيكدة
CHERAIA
الشرايع
21763
21030
SKIKDA — سكيكدة
COLLO
القل
21764
21002
SKIKDA — سكيكدة
DJENDEL SAADI MOHAMED
جندل سعدي محمد
21765
21037
SKIKDA — سكيكدة
EL ARROUCH
الحروش
21766
21003
SKIKDA — سكيكدة
EL GHEDIR
الغدير
21767
21057
SKIKDA — سكيكدة
EL HADAIEK
الحدائق
21768
21015
SKIKDA — سكيكدة
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'