Getting started
Internacia is reference data for countries (256 records) and international organizations / groups (“intblocks”, 1037 records; 78 blocktypes). It is part of the Dateno open-source project. Data and documentation are licensed CC-BY-4.0; code is MIT.
Fastest path (spreadsheet)
- Decompress
data/datasets/countries-lite.csv.zst(zstd -d …) or opencountries-lite.parquet. - Filter
code_status=official_iso3166_1for the 249 current ISO countries. - For organizations, use
intblocks-lite.csv.zstor join memberships viamemberships.csv.zst(intblock_id↔country_code). Full flattened tables arecountries.csv.zst/intblocks.csv.zst.
See also the Frictionless index: datapackage.json.
Lookups (DuckDB / Python)
# One-liner membership check
duckdb data/datasets/internacia.duckdb \
-c "SELECT country_code, status FROM memberships WHERE intblock_id='NATO' ORDER BY 1;"
import duckdb
con = duckdb.connect("data/datasets/internacia.duckdb")
con.execute("SELECT code, name FROM countries WHERE code = 'XK'").fetchall()
Lookups (internacia-python SDK)
This is the most convenient path for LLM-generated code: it handles database download/caching, then exposes small Python methods for the common lookup/join patterns.
pip install internacia
from internacia import InternaciaClient
client = InternaciaClient()
# Country lookup (ISO 3166-1 alpha-2)
country = client.countries.get_by_code("US")
print(country["name"])
# Organizations/blocks containing a country (membership roster)
blocks_for_us = client.intblocks.get_by_member("US")
for b in blocks_for_us[:5]:
print(b["id"], b["name"])
# Fuzzy search across countries and blocks (multilingual)
results = client.search.fuzzy("United States", limit=5)
for r in results:
print(r["type"], r["name"])
Prefer DuckDB/Parquet over parsing YAML under data/countries/ or data/intblocks/.
Citation
Internacia Datasets (Dateno). CC-BY-4.0.
DOI: https://doi.org/10.5281/zenodo.21452328
https://github.com/datenoio/internacia-db
Version: read data/datasets/countries.manifest.json or
SELECT dataset, version, schema_hash FROM _meta; in DuckDB.
Next steps
| Goal | Doc |
|---|---|
| Join keys & gotchas | ai-consumers.md |
| Verified SQL recipes | query-examples.md |
| Verified Polars recipes | query-examples-polars.md |
| Verified R / dplyr recipes | query-examples-r.md |
| Observable / Plot recipes | query-examples-observable.md |
| Edit YAML | CONTRIBUTING.md, agents/contribute.md |
| Field reference | data-dictionary.md |
| Versioning / API posture | versioning-policy.md |
| Country / entity policy | country-code-policy.md, entity-classification-policy.md |
| Intblock inclusion | intblock-inclusion-policy.md |