API Documentation
Access BHI structural lock-in data programmatically. All endpoints are public, rate-limited, and licensed under CC-BY 4.0.
GET /api/bhi
Returns all scored platforms with B-index, capture, escape, zone, 11 individual parameter scores, plus parent_group (ecosystem group by operational control; null for single-entity platforms) and ubo_note (beneficial-ownership / split-governance annotations).
| Name | Type | Description |
|---|---|---|
sector | string | Filter by sector ID (e.g. ai, tech, banks) |
format | string | json (default) or csv |
# All platforms (JSON) curl https://blackholeindex.com/api/bhi # AI sector only (CSV) curl "https://blackholeindex.com/api/bhi?sector=ai&format=csv" # Specific sector curl "https://blackholeindex.com/api/bhi?sector=banks"
{
"instrument": "Black Hole Index",
"version": "V3.1",
"quarter": "Q3-2026",
"license": "CC-BY-4.0",
"citation": "Savich, I. (2026). SSRN: 6555158",
"url": "https://blackholeindex.com",
"count": 184,
"platforms": [
{
"id": "c784a3d3-…",
"name": "WeChat",
"ticker": "700.HK",
"market_cap": "$475B (Tencent)",
"category": "social",
"d": "9.00", "m": "9.00", "a": "9.00",
"p": "10.00", "n": "9.00", "c": "10.00",
"x": "1.00", "s": "1.00", "h": "1.00",
"o": "9.00", "t": "5.00",
"b_score": "17.03",
"capture_score": "2.86",
"escape_score": "0.17",
"zone": "Black Hole",
"quarter": "Q3-2026",
"parent_group": null,
"ubo_note": null
},
...
]
}Do not derive b_score by dividing capture_score by escape_score. Those two fields are stored and returned rounded to two decimals, while b_score is computed at full precision from the eleven parameters. In the example above 2.86 / 0.17 = 16.82, not 17.03 — the gap is rounding, not disagreement. Across the Q3-2026 release the gap reaches 3.04% at most (median 0.70%), and for exactly one platform it would place the value on the other side of a zone threshold. To reproduce b_score, compute it from d, m, a, p, n, c, x, s, h, o, t — all of which this response carries — using the formula published at /methodology. capture_score and escape_score are provided for inspection, not as a reconstruction path.
GET /api/diff
Returns quarterly comparison data — delta, zone migrations, and per-platform movement between the two most recent quarters.
curl https://blackholeindex.com/api/diff
GET /api/platform/[id]/history
Returns the quarterly B-score trajectory for one platform. Accepts the slug from the platform’s page URL (/platform/<slug>) or the UUID from /api/bhi, matched exactly — a partial name resolves nothing, and an unknown identifier returns 404 rather than an empty list. The resolved platform is echoed back, so a quoted figure keeps its identity.
curl https://blackholeindex.com/api/platform/nvidia-cuda/history
# Response
{
"platform": { "id": "5f94…", "slug": "nvidia-cuda", "name": "NVIDIA (CUDA)" },
"provenance": { "observedFrom": "Q1-2026", "modelledQuarters": ["Q4-2025"], "note": "…" },
"history": [
{ "quarter": "Q4-2025",
"b": 7.25,
"capture": 1.918,
"escape": 0.265,
"provenance": "modelled",
"provenanceNote": "Modelled back-projection from the Q1-2026 vintage; not an observed score." },
{ "quarter": "Q3-2026",
"b": 8.29,
"capture": 2.190,
"escape": 0.260,
"reason": "…",
"reasonRecorded": true,
"provenance": "observed",
"provenanceNote": null }
]
}GET /api/badge/[id]
Returns embeddable HTML badge widget. See /embed for the code generator.
<iframe src="https://blackholeindex.com/api/badge/tsmc" width="320" height="80" style="border:none" title="BHI Badge"> </iframe>
Rate Limits & Licensing
| Rate limit | 60 req/min | per IP |
| Cache | 1 hour | max-age=3600 |
| License | CC-BY 4.0 | free for research |
| Attribution | Required | Source: BHI |
| Updates | Quarterly | Next: |
RSS Feed
Subscribe to quarterly releases via RSS.
https://blackholeindex.com/feed.xml