@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.
Maintainers
Readme
@geoalgeria/poste
Every Algérie Poste office and ATM, as data you can install.
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/posteimport 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.jsonThe 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.geojsonGeoJSON includes only records that have coordinates, 13 offices and 1 ATM report no
lat/lngand are omitted there (but remain in JSON/CSV, withgeo_precision/geo_methodbothnull). For 90 ATMs, GeoAlgeria supplies acommune_codeonly 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, withgeo_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.
