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

v2.3.0

Published

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

Readme

English | Français | العربية

@geoalgeria/poste

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

npm npm downloads Code: MIT

3,907 post offices and 2,023 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,907
const atms = poste.atms();             // 2,023

// 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,907 | each with its own postal code (postal_code) | | ATMs | 2,023 | 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,907 offices (array)
  atms.json                   # 2,023 ATMs (array)
  metadata.json               # counts, sources, license, updated
  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, 13 offices and 1 ATM report no lat/lng and are omitted there (but remain in JSON/CSV, with geo_precision/geo_method both null). For 90 ATMs, GeoAlgeria supplies a commune_code only where the commune name, mother wilaya, and point agree. Three ATMs that BaridiMap lists with no point carry their host post office's own BaridiMap point, with geo_method: "baridimap_host_office", and three offices with no point sit on their own OpenStreetMap node (geo_method: "osm_node").

Record shapes

Post office

{
  "id": "1",
  "name": "ADRAR RP",
  "name_ar": "أدرار م ر",
  "wilaya_code": "01",
  "commune_code": "0101",
  "commune": "ADRAR",
  "commune_ar": "أدرار",
  "lat": 27.8708439,
  "lng": -0.2871417,
  "geo_precision": "exact",
  "geo_method": "baridimap",
  "source": "baridimap",
  "class": "CE",
  "postal_code": "01000",
  "postal_code_old": null,
  "address": "ADRAR CENTRE RUE DES MARYTIM"
}

class is the office category (CE, R1–R4, HC, GA). commune_code is the normalized 4-digit ONS code that joins to GeoAlgeria's code_commune. When Algérie Poste publishes a different native value, the optional source_commune_code preserves it unchanged. geo_precision is "exact" (or null alongside lat/lng when the office isn't geocoded); geo_method names how the point was obtained.

ATM – same shape, keyed by id/name/wilaya_code/postal_code with lat/lng, plus a status field ("OPEN", "CLOSED (OFFLINE)", or the undocumented source value "1"). commune_code is populated for 90 corroborated records and is otherwise null; address is always null.

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 some records under the 58-wilaya scheme. GeoAlgeria reconciles each office through its canonical commune_code. It also reconciles 90 ATMs where the exact French or Arabic commune name, mother-wilaya relationship, and sole polygon containment agree. source_wilaya_code preserves a differing provider value.

Licence & 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.

API docs & field reference → · Browse all packages →


Made by Yasser's studio · LinkedIn · X · [email protected]

GeoAlgeria is free, and it stays free. The same studio also makes maps, websites, mobile apps and open data for clients.