Data.dz

Wilayas & Communes d'Algérie

Code Géographique National - Juin 2021 — 58 wilayas, 1 541 communes — Voir la carte interactive

1541 communes
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
NomTypeDescription
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
NomTypeDescription
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
NomTypeDescription
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'