Skip to content

The Sovereignty Plane API

Read-only access to nineteen-country, 836-indicator AI sovereignty data. Free for academic and policy use. No registration required.

REST / JSON CORS enabled CC-BY 4.0 Framework v2.2

Three lines to the data

curl

curl https://thesovereigntyplane.report/api/v1/summary

Python

import requests
r = requests.get("https://thesovereigntyplane.report/api/v1/summary")
data = r.json()
for country in data["data"]:
    print(country["country"], country["formal_pct"], country["substantive_pct"])

JavaScript

const response = await fetch('https://thesovereigntyplane.report/api/v1/summary');
const data = await response.json();
console.log(data.data);

Endpoint reference

All endpoints return JSON with a standard envelope. CORS is open to all origins. ETag headers are set for conditional requests.

Endpoint Description Cache
GET /api/v1/meta Tracker version, export timestamp, and schema version 1 hour
GET /api/v1/countries The 19-country roster with regions and sample groups 24 hours
GET /api/v1/indicators The 44 indicator definitions 24 hours
GET /api/v1/summary Country composites (formal %, substantive %, gap, quadrant) 1 hour
GET /api/v1/dimensions Per-country per-dimension averages 1 hour
GET /api/v1/scores All 836 indicator-level scores 1 hour
GET /api/v1/versions Version log audit trail 1 hour
GET /api/v1/scores/{iso3} One country's 44 indicator scores 1 hour
GET /api/v1/dimensions/{iso3} One country's dimension breakdowns 1 hour

Standard envelope

Every response wraps the data payload in a versioned envelope with metadata.

{
  "version": "v1",
  "tracker_version": "v2.2",
  "exported_at": "2026-04-27T15:40:16Z",
  "endpoint": "summary",
  "data": [
    {
      "country": "Egypt",
      "iso3": "EGY",
      "formal_pct": 83.3,
      "substantive_pct": 38.3,
      "gap_pp": 45,
      "quadrant": "theatre"
    },
    {
      "country": "Kenya",
      "iso3": "KEN",
      "formal_pct": 90.3,
      "substantive_pct": 58.3,
      "gap_pp": 32,
      "quadrant": "interdep"
    }
  ]
}

Errors return the same structure with an error field instead of data. Standard HTTP status codes: 200 OK, 304 Not Modified (ETag match), 404 Not Found.

Key fields

Summary (country composites)

countryCountry name
iso3ISO 3166-1 alpha-3 code
formal_pctFormal sovereignty score (0-100)
substantive_pctSubstantive sovereignty score (0-100)
gap_ppFormal minus substantive, percentage points
quadranttheatre | interdep | adhoc | depend

Scores (indicator-level)

indicator_codee.g. F1.1, S3.2
score0 (Absent) to 3 (Operational)
confidenceHigh | Medium | Low
evidence_noteBrief supporting evidence

Indicators (definitions)

axisFormal | Substantive
dimension_codeF1-F6 or S1-S5
indicatorFull indicator name
max_scoreAlways 3

Stability guarantee

The v1 API is stable. Breaking changes will ship under v2 with at least six months of overlap. Bug fixes and new fields do not bump the version. New endpoints may be added to v1 without notice.

Open data

All data is licensed under CC-BY 4.0. The methodology is CC-BY 4.0. You are free to use, share, and adapt the data for any purpose, provided you give appropriate credit.

How to cite

Appiah Obeng, A. and Bockarie, T. (2026). Sovereignty Plane Data. Tracker version v2.2. Retrieved [date] from https://thesovereigntyplane.report/api/v1/[endpoint]. CC-BY 4.0.

Get in touch

Questions, bug reports, or partnership inquiries: appiahk4@gmail.com

If you build something with this data, tell me about it.