Postal Codes Dataset for Kenya, KE

380
Updated:
Files:1
Size:48.3 kB
Rows:890
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Kenya, KE including name of the city, town, or place, various administrative divisions and alternative city names.

Part of a Data Solution

  • Postal Codes Solution

    Every worldwide postal-code dataset in one bundle — the ultimate global reference for precise postal codes.

    Explore →

Premium

You're viewing a free sample

Get the complete dataset — all rows and files — delivered instantly after checkout, with lifetime access to the latest version.

  • Secure checkout via Stripe
  • Instant download after payment
  • Lifetime access to the latest version
  • Creative Commons Attribution 4.0 International license
20% off
$49.90$39.92
one-time payment

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

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.

/logistics/postal-codes-ke/
https://datahub.io/logistics/postal-codes-ke/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-ke/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-ke/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-ke/_r/-/README.md
https://datahub.io/logistics/postal-codes-ke/_r/-/datapackage.yaml
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.yaml— metadata & schema
https://datahub.io/logistics/postal-codes-ke/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-ke/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.yaml to inspect schema and resources
  2. 2. Download data resources listed in datapackage.yaml
  3. 3. Read README.md for full context

Data Files

postal-codes-ke-sample

About

Last updated
6 October 2026
Total rows
100
Format
CSV
File size
5.72 kB

About this dataset

Kenya (KE) — internal licensing notes

Source research, 2026-09-03 — tier-1 check done, real lead unresolved

Checked Posta Kenya first. Found a real lead: openAFRICA hosts a "Post Office and Post Office Code Locator" dataset described as sourced from Posta Kenya. Could not independently verify licence, schema, or row count — open.africa's API (api/3/action/package_show) returned a Cloudflare bot-challenge page ("Just a moment…") to both curl and WebFetch from this build environment, not the underlying JSON. Disclosed as a real, unresolved lead (not ruled out on data-quality grounds), worth a follow-up from an environment that can pass the challenge.

The source used instead — GeoNames KE

https://download.geonames.org/export/zip/KE.zip      # 890 rows

Licence CC-BY-4.0, verified against export/zip/readme.txt on 2026-09-03 — Kenya carries no per-country caveat.

Verified directly against the raw source file:

  • admin_name1/admin_code1 — County, 47/47 covered (Kenya's full post-2010-constitution county count). GeoNames' own numbering is alphabetical-with-an-outlier (Nairobi coded "05", everything else "10"-"55" alphabetically) and does not match the real ISO order at all (verified against Wikipedia's ISO_3166-2:KE page 2026-09-03) — a 47-entry name-based crosswalk was built and verified, not a numeric prepend or offset guess.
  • No admin2/admin3 tier — this source (post office locations only) reaches county level.
  • 0 exact duplicate rows, 0 (postal_code, place_name) collisions, 0 literal "nan" strings.

licence_status

{
  "channel": "postal-codes-r2",
  "source_url": "https://download.geonames.org/export/zip/KE.zip",
  "licence_id": "CC-BY-4.0",
  "collected_at": "2026-09-03",
  "decision": "compatible",
  "decided_by": "claude-session-2026-09-03",
  "decided_at": "2026-09-03"
}

Proposed tier

B ($49). Small but complete (47/47 counties), real crosswalk verification work (Nairobi's out-of-sequence code would have broken a naive offset-based mapping).

Build — 2026-09-03

Built via datasets/ke/scripts/build_postal_codes_product.py.

value
Final rows890
Counties covered47/47
Distinct postal codes877
(postal_code, place_name) collisions0

Frictionless validation: valid: True.

Status: built and validated locally only. Nothing published to R2, nothing committed to git yet.