Developer landing · CC BY 4.0

Using the Voidly censorship dataset

Six years of measurement, 200 countries, 2.2B+ data points, cross-verified against OONI, CensoredPlanet, and IODA. Pick the access surface that fits your workflow.

Access surfaces

REST API

Documented JSON endpoints. Auth optional for read; rate-limited.

voidly.ai/api-docs

HuggingFace snapshots

CSV bulk downloads. global-censorship-index + ooni-censorship-historical (1.66M+ downloads).

huggingface.co/emperor-mew

MCP server (AI agents)

83 tools for Claude, GPT, and agent frameworks to query the dataset in natural language.

voidly-ai/mcp-server

Live dashboard

Map view, active blocking events, country drilldown, ML-powered alerts, 7-day forecast.

voidly.ai

Companion dataset: Verboten (banned books)

Voidly's banned-books index ships as plain static JSON — no key, no rate limit, no server. Point an agent at the manifest and resolve any country or title: 19,283 banned or restricted books across 119 countries, every ban dated and source-cited.

  • /verboten/api/index.json

    Manifest — dataset stats, country index, endpoint map.

  • /verboten/api/country/{ISO}.json

    Per-country summary for all 119 countries (ISO 3166-1 alpha-2).

  • /verboten/api/book/{slug}.json

    Full source-cited record for the 200 most-banned titles.

  • /verboten/search-index.json

    Every title mapped to the countries that ban it — the lookup index.

Browse Verboten · CC BY 4.0, built on the banned-books.org Open Censorship Core.

Companion datasets: SpyLedger, DarkRegister & Sanctions Programs

Three more Voidly accountability records ship as plain static JSON — no key, no rate limit. All are sourced from primary public-domain government feeds and carry no personal data.

  • /spyledger/index.json

    SpyLedger — 26 surveillance vendors, their products, and source-linked government-designation status (BIS/OFAC/FCC/NS-CMIC).

  • /darkregister/index.json

    DarkRegister — public-access status of 46 beneficial-ownership registers, with legal basis and source per jurisdiction.

  • /darkregister/gleif-coverage.json

    GLEIF open-ownership coverage — CC0 legal-entity counts per jurisdiction (entities, not people).

  • /sanctions-programs/index.json

    Sanctions Programs — 41 US (OFAC) sanctions programs with the Executive Order/statute, target, scope, and status behind each program code (RUSSIA-EO14024, SDGT, CMIC-EO13959…). Programs, not designated persons.

  • /rti-laws/index.json

    Right to Information — national access-to-information / FOI laws across 61 countries (name, year adopted, oversight body, scope), from official legal sources. The law, not the people — no personal data; not a ranking.

  • /data-protection/index.json

    Data Protection — national personal-data-protection / privacy laws across 61 countries (GDPR, LGPD, PIPL, POPIA…; name, year, supervisory authority, scope). The companion to Right to Information. The law, not data subjects — no personal data; not a ranking.

Browse SpyLedger · Browse DarkRegister · Browse Sanctions Programs · CC BY 4.0.

Discover every accountability dataset in one call: /voidly/datasets.json — a machine-readable manifest of all six (plus the censorship index) with each endpoint, its latest counts, and license.

Quick start

Same query — recent verified incidents in Iran since 2026-01-01 — in four ecosystems.

curl
# Recent verified incidents in Iran
curl -s 'https://voidly.ai/api/v1/incidents?country=IR&since=2026-01-01' \
  -H 'Accept: application/json' | jq '.[] | {date,domain,classification}'
Python
import httpx

r = httpx.get(
    "https://voidly.ai/api/v1/incidents",
    params={"country": "IR", "since": "2026-01-01"},
    timeout=30,
)
for incident in r.json():
    print(incident["date"], incident["domain"], incident["classification"])
JavaScript
const url = new URL('https://voidly.ai/api/v1/incidents');
url.searchParams.set('country', 'IR');
url.searchParams.set('since', '2026-01-01');

const res = await fetch(url, { headers: { Accept: 'application/json' } });
const incidents = await res.json();
for (const i of incidents) console.log(i.date, i.domain, i.classification);
R
library(httr2)
library(jsonlite)

resp <- request("https://voidly.ai/api/v1/incidents") |>
  req_url_query(country = "IR", since = "2026-01-01") |>
  req_perform()

incidents <- fromJSON(resp_body_string(resp))
print(head(incidents))

Response shape

[
  {
    "date":           "2026-04-12T03:21:14Z",
    "country":        "IR",
    "domain":         "signal.org",
    "classification": "TLS_INTERFERENCE",
    "confidence":     "verified",
    "sources":        ["voidly", "ooni"],
    "asn":            58224,
    "block_type":     "sni_inspection",
    "evidence_url":   "https://voidly.ai/incidents/2026-04-12-IR-signal"
  }
  // ...
]

Variables measured

DNS_TAMPERING
Resolver returns the wrong IP, or refuses recursion.
TLS_INTERFERENCE
Handshake interrupted, certificate altered, SNI inspected.
HTTP_BLOCK
Block page, content rewrite, response throttled to zero.
BGP_WITHDRAWAL
Network disappears from the global routing table.
THROTTLING
Bandwidth deliberately collapsed for a specific service.
SHUTDOWN
National or regional connectivity dropped entirely.

Technical documentation

License & attribution

Voidly measurement data is published under CC BY 4.0. Use, redistribute, and remix with attribution. Suggested format:

Source: Voidly / AI Analytics — voidly.ai (CC BY 4.0)

Citing in a paper? Use the formatted citations on /voidly (APA + BibTeX, click to copy).

Also available: US Federal Regulatory Data

The Federal Regulatory Data Hub indexes 208 federal datasets across 79 agencies — SEC, FDA, OFAC, DOJ, EPA, CFPB, IRS, FEMA, CDC, NHTSA, FAA, CMS, MSHA, OSHA and more. 50M+ canonical records, daily refresh, licensed CC0 1.0 (public domain — no attribution required). Accessible via REST, MCP, and JSON-LD.

Federal Data Hub landing page · Live dataset counts · MCP server (38+ tools)