Continents
All seven continents, each identified by a conventional 2-letter code, with total land area in square kilometres, approximate population, and a count of the sovereign states recognised as lying within it. Suitable for dropdown lists, geographic grouping, choropleth maps, and any application that needs a stable, authoritative mapping between continent identifiers and high-level geographic statistics.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/continents.json
Or use as a typed import:
import { continents } from "https://staticdata.dev/v1/continents.ts"
Formats
- JSON 872 B
/v1/continents.json
min: 618 B · /v1/continents.min.json
- CSV 279 B
/v1/continents.csv
- TypeScript 1.0 KB
/v1/continents.ts
export const continents
type Continent = (typeof continents)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| code | string | Conventional 2-letter continent code (e.g. AF, AS, EU) | AF |
| name | string | English continent name | Africa |
| areaKm2 | number | Total land area in square kilometres | 30370000 |
| population | number | Approximate population (mid-2020s estimate) | 1460000000 |
| countries | number | Number of sovereign states within the continent | 54 |
Preview
First 7 records.
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/continents.json | jq '.[0]' import type { Continent } from "https://staticdata.dev/v1/continents.ts";
const res = await fetch("https://staticdata.dev/v1/continents.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const continents: Continent[] = await res.json();
console.log(continents[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/continents.min.json") as r:
continents = json.load(r)
print(continents[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/continents.min.json")
if err != nil { panic(err) }
defer resp.Body.Close()
var data []map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data[0])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/continents.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
The dataset uses the seven-continent model common in English-language references: Africa, Antarctica, Asia, Europe, North America, Oceania, and South America. The 2-letter codes follow the convention used by GeoNames and many geospatial APIs (AF, AN, AS, EU, NA, OC, SA). Area figures are rounded to the nearest thousand km² and are based on standard physical-geography references; they include inland water bodies within the continental boundary.
Population figures are approximate mid-2020s estimates drawn from UN World Population Prospects and related demographic sources. Antarctica is listed with a population of 0, reflecting the absence of a permanent civilian population (seasonal research staff are excluded). Sovereign country counts follow the UN Statistics Division M49 regions (with the Americas split into North America — Northern America, Central America and the Caribbean — and South America) and count only the 193 UN member states, so they sum to 193: Russia is counted in Europe, Turkey and Cyprus in Asia. Observer states (Vatican City, Palestine), Taiwan, Kosovo and dependent territories are not counted. Population figures are approximate as of the mid-2020s (October 2026 edition).
The dataset is intentionally stable: the list of continents, their codes, and their boundaries change extremely rarely, making version 1.0.0 suitable as a long-lived reference. Population and country counts may be updated in future minor versions to reflect demographic shifts or changes in sovereign recognition.
Versioning
URLs under /v1/ are stable: field names and types will not change in a way
that breaks consumers. Values can be corrected or records added when the upstream source
changes; schema-incompatible updates ship under a new version path. See the
continents changelog for this dataset's history.