The 164 commercial agencies (Agence Mobilis) and 12,180 approved points of sale (points de vente agréés) of Mobilis (ATM Mobilis), Algeria's state-owned mobile operator. Agencies come with bilingual FR/AR name and address and GPS coordinates; points of sale come with name, address, and the commune they sit in. Shipped as JSON, CSV, and GeoJSON. Part of GeoAlgeria.
npm install @geoalgeria/mobilisimport mobilis from "@geoalgeria/mobilis";
const agences = mobilis.agences(); // 164 geocoded Mobilis agencies
const pdv = mobilis.pdv(); // 12,180 approved points of sale
const all = mobilis.all(); // everything (agencies first)
// Agencies in a wilaya (joins GeoAlgeria's wilaya_code)
const inOran = agences.filter((a) => a.wilaya_code === "31");
// Points of sale in a commune
const inBabEzzouar = pdv.filter((p) => p.commune === "BAB EZZOUAR");- Agency locators – coordinates on every one of the 164 agencies, ready for distance sorting or a map.
- Coverage by commune – the points of sale are tagged with their commune, so you can count or rank Mobilis presence per commune/wilaya.
- Bilingual directories – agency name and address in both French and Arabic.
| Dataset | Count | Coordinates | Notes |
|---|---|---|---|
| Agencies (Agence Mobilis) | 164 | ✅ all 164 | bilingual FR/AR, 65/69 wilayas |
| Approved points of sale | 12,180 | ❌ none | FR name + address + commune |
The points of sale are a commune-level directory, the source carries no coordinates for them. To map them, aggregate to commune centroids (join
communeto thegeoalgeriacommunes) or geocode the addresses yourself.
The npm package ships the JSON (importable directly):
import agences from "@geoalgeria/mobilis/data/agences.json" with { type: "json" };
// or via CDN, no install:
// https://cdn.jsdelivr.net/npm/@geoalgeria/mobilis/data/agences.jsonThe loaders and record shapes are fully typed, TypeScript definitions ship in the package:
import mobilis, { type Agence, type Pdv } from "@geoalgeria/mobilis";
const agences: Agence[] = mobilis.agences();CSV and GeoJSON are in the repo under data/ and bundled in every
GitHub Release:
data/
agences.json # 164 agencies (array)
pdv.json # 12,180 points of sale (array)
metadata.json # source, counts, generated_at
csv/agences.csv # repo + Release bundle (not in npm tarball)
csv/pdv.csv
geojson/agences.geojson # Point features (agencies only)
Only the agencies are geocoded, so only
agences.geojsonexists. The points of sale have nolat/lngand are not emitted as GeoJSON.
Agency (Agence Mobilis)
{
"id": "ag-01-001",
"code": "12237",
"type": "agence",
"name": "Agence Commerciale Adrar",
"name_ar": "الوكالة التجارية أدرار",
"address": "Rue de l'indépendance, Adrar",
"address_ar": "شارع الإستقلال، أدرار.",
"wilaya_code": "01",
"lat": 27.877829,
"lng": -0.274316
}Approved point of sale
{
"id": "pdv-01-001",
"code": "2955",
"type": "pdv",
"name": "PDV LIBRAIRIE GAFA ABDERRAHMANE",
"address": "RUE 17 OCTOBRE CITE 20 AOUT N 03",
"commune": "ADRAR",
"wilaya_code": "01",
"lat": null,
"lng": null
}id is a stable {prefix}-{wilaya_code}-{seq} key synthesized by GeoAlgeria
(ag- for agencies, pdv- for points of sale; seq ordered by the source id), so
it stays unique across the merged all() collection. Mobilis' own id is kept as
code. wilaya_code joins to GeoAlgeria's wilaya_code.
For wilayas, dairas, and communes, use the main
geoalgeria package, it's how
you turn a point of sale's commune into a polygon or centroid. Use
@geoalgeria/mobilis when you only need the Mobilis network.
Data comes from the Mobilis store locator
(https://mobilis.dz/mapagence). There is no documented API, the locator calls
a handful of JSON endpoints behind an X-Requested-With header, and the site
sits behind a WAF. Run npm run fetch to regenerate every output: it primes a
session, walks all 69 source wilayas for both categories, parses the
"lat, lng" coordinate strings (handling the comma-decimal rows), and joins
Mobilis's Arabic wilaya labels to GeoAlgeria's canonical codes. That name join
is required because Mobilis's numeric ids 59–69 use a different ordering from
the official codes.
Code is MIT. The underlying data is © ATM Mobilis, redistributed for reference and to power GeoAlgeria. Verify against Mobilis for authoritative, real-time information. The points-of-sale list churns as resellers come and go, each rebuild reflects whatever the locator currently shows.
API docs & field reference → · Browse all packages →
Made by Yasser's Studio · LinkedIn · X · hello@yasser.studio