npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@geoalgeria/mobilis

v1.1.0

Published

Mobilis (ATM Mobilis) sales network in Algeria — 165 commercial agencies (geocoded, bilingual FR/AR) + 12,180 approved points of sale (commune-level directory). Sourced from mobilis.dz. JSON, CSV, GeoJSON.

Readme

@geoalgeria/mobilis

The Mobilis sales network in Algeria — as data you can install.

npm npm downloads License: MIT

The 165 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/mobilis
import mobilis from "@geoalgeria/mobilis";

const agences = mobilis.agences();   // 165 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");

What you can build

  • Agency locators — coordinates on every one of the 165 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.

What's inside

| Dataset | Count | Coordinates | Notes | | --- | --- | --- | --- | | Agencies (Agence Mobilis) | 165 | ✅ all 165 | bilingual FR/AR, 56/58 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 commune to the geoalgeria communes) or geocode the addresses yourself.

Formats

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.json

The 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              # 165 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.geojson exists. The points of sale have no lat/lng and are not emitted as GeoJSON.

Record shapes

Agency (Agence Mobilis)

{
  "id": "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": "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 {wilaya_code}-{seq} key synthesized by GeoAlgeria (seq ordered by the source id). Mobilis' own id is kept as code. wilaya_code joins to GeoAlgeria's wilaya_code.

Need the administrative divisions too?

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.

Source

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 58 wilayas for both categories, parses the "lat, lng" coordinate strings (handling the comma-decimal rows), and normalizes wilaya codes. Mobilis files records under the 58-wilaya scheme, so new wilayas 59–69 currently appear under their mother wilaya — same as the Algérie Poste and ANEM data.

License & attribution

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.