Part of a Data Solution
- Explore →
Postal Codes Solution
Every worldwide postal-code dataset in one bundle — the ultimate global reference for precise postal codes.
API Access
Access dataset files directly from scripts, code, or AI agents.
Browse dataset files
API Access
Access dataset files directly from scripts, code, or AI agents.
Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.
Start with these files — they give you everything you need to understand and access the dataset.
- 1. Fetch datapackage.yaml to inspect schema and resources
- 2. Download data resources listed in datapackage.yaml
- 3. Read README.md for full context
Data Files
Explore with AIpostal-codes-sr
| Field | Type | Description | Title |
|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 country code -- always SR | Country Code |
| postal_code | string | Always empty -- Suriname has no postal code system. Not a data gap. | Postal Code |
| place_name | string | Ressort name | Place Name |
| admin_name1 | string | District (10 districts) | Administrative Name 1 |
| admin_code1 | string | Official ISO 3166-2:SR district code, SR- prefix stripped | Administrative Code 1 |
| admin_name2 | string | Ressort (sub-district) | Administrative Name 2 |
| admin_code2 | string | Empty -- no official ressort code exists in the source; the source's own value is an internal identifier and is deliberately not published | Administrative Code 2 |
| admin_name3 | string | Reserved -- Suriname has no third administrative tier | Administrative Name 3 |
| admin_code3 | string | Reserved -- not populated | Administrative Code 3 |
| latitude | number | Latitude of the ressort, decimal degrees (WGS84) | Latitude |
| longitude | number | Longitude of the ressort, decimal degrees (WGS84) | Longitude |
| accuracy | string | Coordinate granularity -- always RESSORT (the ressort's own gazetteer point, not a street or building) | Accuracy |
| alternative_city_name | string | Alternate spellings, pipe-separated, where the source supplies any that differ from place_name | Alternative City Name |
Download
Download CSVAbout
- Last updated
- 6 October 2026
- Total rows
- 68
- Format
- CSV
- File size
- 5.12 kB
About this dataset
Suriname (SR) — internal licensing notes
Status: BUILT LOCALLY, free-host, NOT PUBLISHED — 2026-08-27. Built per instruction "ok build suriname, free host, validate and ship, only local". Nothing pushed to git or R2.
Product identity
Suriname has no postal code system — confirmed against the project's cached
Wikipedia postal-countries list (SUR -> has_postal_codes: false) and by
https://download.geonames.org/export/zip/SR.zip returning HTTP 404.
Ships as an admin-divisions-only product in the 13-column postal-codes schema,
postal_code empty on every row — the same deliberate exception to the
product definition already agreed for SC and CD. Not the FedEx-side 00000
convention: the column is blank, not placeholdered.
Source and licence
- Source: GeoNames gazetteer dump for Suriname
(
https://download.geonames.org/export/dump/SR.zip), plus the GeoNamesadmin1CodesASCII.txttable. - Licence: CC BY 4.0 — attribution only, no share-alike.
licence_status.decision: "compatible".
This differs from its peers in a way that matters
CD and SC are free-only by constraint — both were built from Wikipedia (CC BY-SA), whose share-alike clause makes an exclusive sale impossible.
Suriname is free-only by policy. CC BY 4.0 would permit sale on attribution alone; it ships free because of the standing decision to free-host the no-postal-code countries. Do not read SR's free status as evidence its licence forbids sale — it does not. If that policy is ever revisited, SR is on the sellable side of the line and SC/CD are not.
Rejected source — do not substitute it
HDX / OCHA COD-AB "Suriname - Subnational Administrative Boundaries" is
labelled cc-by-igo, which reads as commercially reusable. Its own
methodology field says the data was "downloaded from www.gadb.org" — a typo
for gadm.org. GADM is non-commercial. A redistributor's package label does
not cure a non-commercial component.
This is the third COD-AB package found with this defect (Albania, Trinidad &
Tobago, Suriname). Checked and CLEAN, for the record: Sierra Leone
("collected from the government and cleaned and pcoded by OCHA and ITOS" — and
we sell SL, so this mattered), Guyana (DEVInfo LAC), Seychelles (Seychelles
National Bureau of Statistics 2010 census), DR Congo (MONUC/UNDP). The taint is
per-package and must be checked from methodology every time, never assumed
from the licence label.
What was built
sr.csv— 68 rows, one per ressort, all 10 districts present.admin_code1is the official ISO 3166-2:SR code (BR CM CR MA NI PR PM SA SI WA), derived from the district name. GeoNames' own numeric district code (10–19) is internal and never published.admin_code2is deliberately EMPTY. GeoNames' admin2 value for Suriname is its own geonameId (SR.10.12088671). Publishing an internal record number in a field consumers read as an official code is exactly the live defect in the published Albania file. An empty column is correct.- Coordinates on 68/68 rows, 5 dp,
accuracy: RESSORT— the ressort's own gazetteer point, labelled so it cannot be mistaken for street level. Better than CD and SC, which ship no coordinates at all. - 14 rows carry alternate spellings; aliases echoing
place_nameare dropped.
Disclosed, not hidden — the row count exceeds the official one
Published counts of Suriname's ressorten are 62 or 63 (sources disagree with each other). GeoNames enumerates 68. This is a surplus, not a gap, and it could not be reconciled — no official Surinamese ressort register was reachable in machine-readable form. The README says this plainly and tells consumers to treat the file as a gazetteer of second-level units rather than a certified register. All 10 districts are present and none is under-represented.
Validation
- Build aborts if GeoNames' district set disagrees with the ISO table, if any ADM2 feature carries an unknown district, or on any duplicate (district, ressort) pair.
- Frictionless valid from inside
data/, and valid again from the unzippedsr.zipas a customer receives it: declared rows 68 = actual 68, declared bytes 5,191 = actual, sha256 matches.
Published — 2026-08-27
- Repo: commit
86b46fdondatopian/postal-codesmain(yml, notes, 4 scripts). postal-codesbucket: full package —sr.csv,datapackage.json,README.md,ATTRIBUTION.txt,sr.zip. All five sha256-match the local build.postal-codes-samplesbucket:sr.csvonly, and it is the FULL 68-row file, not a 100-row sample — SR is free-hosted, so there is no paid version to hold back. Live athttps://postal.datahub.io/sr/sr.csv(HTTP 200, 5,191 bytes).- Both
_meta/catalog.jsonfiles updated, 248 entries each, previous versions backed up.
Samples bucket convention — got this wrong first time. The initial publish pushed
all five files there. The bucket is CSV-only (257 of 274 objects are .csv, one per
country); the only .txt and .zip in the whole bucket were the ones that publish
added. Corrected by deleting the four extras and rewriting the SR catalog entry;
publish_r2.py now carries a per-target files list so it cannot recur.
Open point for a human: ATTRIBUTION.txt therefore does not travel with the CSV on
the public endpoint, while CC BY 4.0 makes attribution a condition of use. Attribution
is present in the postal-codes package, in datapackage.yml, and on the dataset page;
whether that satisfies the licence for the bare public CSV is a call worth making
deliberately rather than by default — and it applies to all 257 CSVs in that bucket,
not just SR.
Previously not done sr/ in the bucket still holds the
159-byte header-only stub from 2026-07-30, and datasets/sr/datapackage.yml
has been updated locally (data_available: true, real sources[], licenses[])
but not committed. is_premium is correctly absent and must stay absent.