voidly
● LiveCC BY 4.0No auth requiredCORS-open

Voidly Status Badges

Like shields.io, but for censorship data. Drop-in SVG badges for READMEs, blogs, and docs that show whether a country, service, or domain is blocked — refreshed every five minutes from 2,021 live incidents.

Tracked by VoidlyIran censorship levelChatGPT in CNtwitter.com in IR

Build your badge

Pick a kind, fill in the blanks, copy the snippet.

● Auto-updates
Censorship level in IR
https://api.voidly.ai/badge/v1/country/IR.svg
Markdown
[![Censorship level in IR](https://api.voidly.ai/badge/v1/country/IR.svg)](https://voidly.ai/ir)
HTML
<a href="https://voidly.ai/ir"><img src="https://api.voidly.ai/badge/v1/country/IR.svg" alt="Censorship level in IR" /></a>
RST
.. image:: https://api.voidly.ai/badge/v1/country/IR.svg
   :target: https://voidly.ai/ir
   :alt: Censorship level in IR
AsciiDoc
image:https://api.voidly.ai/badge/v1/country/IR.svg[Censorship level in IR,link=https://voidly.ai/ir]

URL patterns

All badges live under https://api.voidly.ai/badge/v1/. Each endpoint returns an SVG with Cache-Control: public, max-age=300 and Access-Control-Allow-Origin: *.

PatternDescriptionExample
/badge/v1/country/<CC>.svgCountry severity tier + scoreIR severity
/badge/v1/service/<name>/<CC>.svgStatus of a named service in a countryOpenAI in CN
/badge/v1/domain/<host>/<CC>.svgBlock status for any domain in a countrytwitter.com in IR
/badge/v1/voidly.svgGeneric “Tracked by Voidly · N incidents”Tracked by Voidly
/badge/v1/incident/<id>.svgSeverity for a single citable incidentSample incident
/badge/v1/topic/<topic>.svgHow many countries censor this topicnews topic

Query parameters (all optional)

  • ?style= flat-square (default), flat, plastic, or for-the-badge
  • ?label= override the left-side text (URL-encoded)
  • ?color= override the right-side colour: a hex (#10b981) or a name (red, severe, accessible, …)
  • ?logo=none hide the inline V mark

Examples gallery

Five common ways people use Voidly badges. Click the snippet to copy the markdown.

Show your project is censored somewhere

Drop-in badge for tools, news sites, or apps that face blocking. Pulls live data from /data/censorship-index.json.

Iran censorship levelChina censorship levelRussia censorship level
[![Censorship in IR](https://api.voidly.ai/badge/v1/country/IR.svg)](https://voidly.ai/ir)
[![Censorship in CN](https://api.voidly.ai/badge/v1/country/CN.svg)](https://voidly.ai/cn)
[![Censorship in RU](https://api.voidly.ai/badge/v1/country/RU.svg)](https://voidly.ai/ru)

Show that an AI service is blocked

Aliases for OpenAI, Claude, Gemini, Perplexity and more — resolves to the right domain automatically.

ChatGPT in CNClaude in IRGemini in RU
[![ChatGPT in CN](https://api.voidly.ai/badge/v1/service/openai/CN.svg)](https://voidly.ai/ai-blocked)
[![Claude in IR](https://api.voidly.ai/badge/v1/service/claude/IR.svg)](https://voidly.ai/ai-blocked)
[![Gemini in RU](https://api.voidly.ai/badge/v1/service/gemini/RU.svg)](https://voidly.ai/ai-blocked)

Pin a domain status to your README

For news sites, indie SaaS, or any domain — pass a fully qualified host plus a country code.

twitter.com in IRwikipedia.org in CNsignal.org in RU
[![twitter.com in IR](https://api.voidly.ai/badge/v1/domain/twitter.com/IR.svg)](https://voidly.ai/domain/twitter.com)
[![wikipedia.org in CN](https://api.voidly.ai/badge/v1/domain/wikipedia.org/CN.svg)](https://voidly.ai/domain/wikipedia.org)
[![signal.org in RU](https://api.voidly.ai/badge/v1/domain/signal.org/RU.svg)](https://voidly.ai/domain/signal.org)

Tracked-by-Voidly badge

For projects that consume Voidly data — say so loudly. Auto-updates with our live incident counter.

Tracked by VoidlyTracked by Voidly (large)Powered by Voidly
[![Tracked by Voidly](https://api.voidly.ai/badge/v1/voidly.svg)](https://voidly.ai)
[![Tracked by Voidly](https://api.voidly.ai/badge/v1/voidly.svg?style=for-the-badge)](https://voidly.ai)
[![Powered by Voidly](https://api.voidly.ai/badge/v1/voidly.svg?label=Powered%20by%20Voidly&color=blue)](https://voidly.ai)

Topic-level signal

Counts countries with non-zero censorship score in a Citizen Lab category. Drives advocacy dashboards.

News censorship topicLGBT censorship topicWomen health censorship topic
[![News censorship](https://api.voidly.ai/badge/v1/topic/news.svg)](https://voidly.ai/topics/news)
[![LGBT censorship](https://api.voidly.ai/badge/v1/topic/lgbt.svg)](https://voidly.ai/topics/lgbt)
[![Women-health censorship](https://api.voidly.ai/badge/v1/topic/women-health.svg)](https://voidly.ai/topics/women-health)

How it works

Live data
Each badge calls our public API. Country severity comes from /data/censorship-index.json. Service/domain status comes from /v1/accessibility/check. Incident counts from /data/incidents/stats.
Edge-cached
Badges are cached for 5 minutes at Cloudflare. ETag headers let your browser skip re-downloads with HTTP 304. No CDN bills, no rate limits for embedded use.
No JS, no fonts
Pure SVG with the Verdana / DejaVu Sans fallback every README renderer already has. Works on GitHub, GitLab, Bitbucket, npm, Substack, Reddit and arXiv.

Released under CC BY 4.0. Attribution: link back to voidly.ai.

Need a badge that doesn’t exist yet? Open an issue on GitHub or email us.