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/poste

v1.1.0

Published

Algeria post offices (3908) and ATMs (2026) — real postal codes, bilingual names, coordinates, commune/wilaya linkage. Sourced from Algérie Poste (baridimap.poste.dz). JSON, CSV, GeoJSON.

Downloads

520

Readme

@geoalgeria/poste

Every Algérie Poste office and ATM — as data you can install.

npm npm downloads License: MIT

3,908 post offices and 2,026 ATMs across Algeria — with real postal codes, bilingual (French / Arabic) names, GPS coordinates, and commune/wilaya linkage. Sourced from Algérie Poste, shipped as JSON, CSV, and GeoJSON. Part of GeoAlgeria.

npm install @geoalgeria/poste
import poste from "@geoalgeria/poste";

const offices = poste.postOffices();   // 3,908
const atms = poste.atms();             // 2,026

// Post offices in a commune (joins GeoAlgeria's code_commune)
const inAdrar = offices.filter((o) => o.commune_code === "0101");

// Nearest ATM? Everything has lat/lng to compute against.

What you can build

  • Postal-code validation & lookup — every office carries its real postal_code.
  • Branch / ATM locators — coordinates on (almost) every record, ready for distance sorting or a map.
  • Fintech & logistics — match addresses to the nearest post office or GAB.
  • Maps — drop-in GeoJSON point layers for the whole postal network.

What's inside

| Dataset | Count | Notes | | --- | --- | --- | | Post offices | 3,908 | each with its own postal code (postal_code) | | ATMs | 2,026 | Algérie Poste GAB network |

Formats

The npm package ships the JSON (importable directly):

import offices from "@geoalgeria/poste/data/postoffices.json" with { type: "json" };
// or via CDN, no install:
// https://cdn.jsdelivr.net/npm/@geoalgeria/poste/data/postoffices.json

The loaders and record shapes are fully typed — TypeScript definitions ship in the package:

import poste, { type PostOffice, type Atm } from "@geoalgeria/poste";
const offices: PostOffice[] = poste.postOffices();

CSV and GeoJSON are in the repo under data/ and bundled in every GitHub Release:

data/
  postoffices.json            # 3,908 offices (array)
  atms.json                   # 2,026 ATMs (array)
  metadata.json               # source, counts, generated_at
  csv/postoffices.csv         # repo + Release bundle (not in npm tarball)
  csv/atms.csv
  geojson/postoffices.geojson # Point features (records with coordinates)
  geojson/atms.geojson

GeoJSON includes only records that have coordinates — a handful of offices and ATMs report no lat/lng and are omitted there (but remain in JSON/CSV). ATM records have no commune_code (the source API doesn't provide one).

Record shapes

Post office

{
  "id": 1,
  "name": "ADRAR RP",
  "name_ar": "أدرار م ر",
  "class": "CE",
  "postal_code": "01000",
  "address": "ADRAR CENTRE RUE DES MARYTIM",
  "commune_code": "0101",
  "commune_fr": "ADRAR",
  "commune_ar": "أدرار",
  "wilaya_code": "01",
  "wilaya_fr": "ADRAR",
  "wilaya_ar": "أدرار",
  "lat": 27.8708439,
  "lng": -0.2871417
}

class is the office category (CE, R1R4, HC, GA). commune_code is Algérie Poste's 4-digit commune code, which joins to GeoAlgeria's code_commune.

ATM — same shape, keyed by id/name/postal_code/wilaya_* with lat/lng; no commune_code.

Need the administrative divisions too?

If you also need wilayas, dairas, and communes, use the main geoalgeria package — it mirrors this postal data in and exposes postOffices / atms alongside the full division dataset. Use @geoalgeria/poste when you only need postal/banking data.

Source

Data comes from Algérie Poste via the public BaridiMap API (https://baridimap.poste.dz). Run npm run fetch to regenerate every output from the live API; the same run mirrors the data into the geoalgeria package so the two never drift (this package is the canonical source). Re-fetch periodically — BaridiMap still files offices under the 58-wilaya scheme, so new wilayas 59–69 currently appear under their mother wilaya.

License & attribution

Code is MIT. The underlying data is © Algérie Poste, redistributed for reference and to power GeoAlgeria. Verify against Algérie Poste for authoritative, real-time information.