Skip to content

OONI nettest quick reference

The nettests directory in ooni/spec holds 41 nettest specifications, a fair share of which are no longer in use. When picking a nettest or making sense of data you already have, knowing which ones still produce measurements is more efficient than reading every specification.

This page condenses all 41 into one reference table, noting each one's upstream status, whether public data still exists, and which ones show up in Taiwan.

How to read the status columns

Spec status comes from the _status_ marker at the top of each specification, one of current, experimental or obsolete, reflecting how upstream positions that nettest.

Data in circulation is measured, snapshotted on the day of writing (2026-08-04) by surveying each nettest's most recent public measurements through the OONI API.

Taiwan comes from the S3 public dataset, spot-checking the nettest directories that appeared under Taiwan across five time slots on 2026-08-03.

A status marker is not a data supply

Specification markers and actual data do disagree, and the gap runs in both directions:

  • Marked current with no data to be found: tlsmiddlebox, portfiltering and captiveportal.
  • Marked experimental with data every day: dnscheck, echcheck, openvpn, stunreachability and vanilla_tor among others, at volumes comparable to some current nettests.

experimental reflects the maturity of the specification itself and implies nothing about data volume. To judge whether a nettest suits your analysis, querying the API for data beats reading the status marker.

Grouped by purpose

The groupings below are by observation purpose; the tables that follow carry the detail:

  • Website blocking detection: web_connectivity
  • Middleboxes and interference techniques: http_header_field_manipulation, http_invalid_request_line, sni_blocking, echcheck
  • Messaging app reachability: telegram, whatsapp, signal, facebook_messenger
  • Circumvention tool availability: tor, vanilla_tor, torsf, psiphon, riseupvpn, openvpn
  • DNS behaviour: dnscheck, dnsping
  • Connection performance: ndt, dash, stunreachability, quicping

Nettests still producing data

Every nettest below had public measurements available on the day of writing, and these are also the ones encountered most often when reading OONI data.

Nettest What it measures Spec status Taiwan
web_connectivity Website reachability and block verdicts, by far the largest nettest by volume current yes
tor Reachability of Tor directory authorities and bridges current yes
vanilla_tor Whether unobfuscated Tor can bootstrap a connection experimental yes
torsf Tor over the Snowflake pluggable transport experimental no
telegram Reachability of Telegram web and its data centre endpoints current yes
whatsapp Reachability of WhatsApp endpoints and its registration service current yes
signal Reachability of Signal service endpoints current yes
facebook_messenger Reachability of Facebook Messenger endpoints current yes
dnscheck Behaviour of a given DNS resolver, covering encrypted queries (DoH, DoT) experimental yes
dnsping Latency and response behaviour of DNS queries experimental no
echcheck Support for and interference with Encrypted Client Hello (ECH) experimental yes
http_header_field_manipulation Whether middleboxes tamper with HTTP headers current yes
http_invalid_request_line How middleboxes react to malformed request lines, used to detect transparent proxies current yes
openvpn Whether an OpenVPN handshake completes experimental yes
psiphon Whether the Psiphon circumvention tool can establish a connection current yes
riseupvpn Reachability of the RiseupVPN service current yes
stunreachability Reachability of STUN servers, which affects WebRTC calls experimental yes
ndt Connection speed and performance diagnostics current yes
dash Video streaming playback quality current yes
browser_web Loading pages with a real browser engine experimental no

Abbreviations in the table

  • DoH, DoT: DNS queries wrapped in HTTPS or TLS, so query contents do not cross the network in plaintext. See Encrypted DNS.
  • ECH (Encrypted Client Hello): the first message of a TLS handshake normally carries the destination domain in plaintext, and ECH encrypts that field.
  • SNI (Server Name Indication): the destination domain sent in plaintext during a TLS handshake, frequently used as the basis for blocking decisions.
  • STUN: a protocol that helps a device discover its own public IP and port, used when WebRTC calls set up a connection.
  • QUIC: a UDP-based transport protocol that HTTP/3 is built on.

Nettests with only occasional data

Nettest What it measures Spec status Most recent
quicping Reachability of the QUIC protocol experimental 2026-07-30
sni_blocking Blocking targeted at the TLS SNI field experimental 2026-07-20

Nettests with no public data

The seven nettests below return no public measurements from the API. Their specifications remain in the upstream repository and are worth reading when designing a new nettest or a research method.

Nettest What it measures Spec status
tlsmiddlebox Middlebox behaviour along a TLS connection path current
portfiltering Whether specific ports are filtered current
captiveportal Whether the network requires a login to get out current
urlgetter A general-purpose fetching component reused by other nettests experimental
tcpping Round-trip latency at the TCP layer experimental
tlsping Round-trip latency of a TLS handshake experimental
simplequicping A simplified QUIC latency measurement experimental

Historical nettests marked obsolete

Twelve specifications are marked obsolete upstream. Most of their functionality was absorbed into web_connectivity, or they retired as measurement methods evolved. Their records still turn up when working with historical data, and there is no reason to adopt them for new observation work.

Nettest Specification
bridgeT ts-001
DNS Consistency ts-002
HTTP Requests ts-003
HTTP Host ts-004
DNS Spoof ts-005
TCP Connect ts-008
Multi Protocol Traceroute ts-009
Bridge Reachability ts-011
DNS Injection ts-012
Lantern ts-013
Meek Fronted Requests ts-014
OpenVPN Client Test (legacy) ts-016

Two OpenVPN specifications share a number

Upstream has two specifications numbered ts-016: ts-016-openvpn.md, marked obsolete in the table above, and ts-016-vanilla-tor.md, marked experimental. The current OpenVPN specification is ts-040-openvpn.md, so take care not to cite the old one.

Which nettests show up in Taiwan

Spot-checking five time slots on 2026-08-03, 17 nettests appeared under Taiwan (written here in the API's underscore form): web_connectivity, tor, vanilla_tor, telegram, whatsapp, signal, facebook_messenger, dnscheck, echcheck, http_header_field_manipulation, http_invalid_request_line, openvpn, psiphon, riseupvpn, stunreachability, ndt, dash.

Directory names on S3 differ from test_name. Directory names carry no underscores (webconnectivity, vanillator, facebookmessenger) while API queries need the underscore form (web_connectivity, vanilla_tor, facebook_messenger). For the retrieval path in detail, see ASN observation data retrieval and analysis.

Taiwan's observations concentrate on web_connectivity, with small sample sizes for everything else. For widening local coverage, tor and dnscheck sit closest to the community's existing themes.

There are two ways to run a specific nettest. With OONI Probe on desktop or mobile, choose which nettests to enable in the settings. To invite others to measure a fixed list of URLs, use OONI Run v2 to create a shareable link. The link ID the community currently maintains is 10328.

Where to go from here

Each nettest's full algorithm is defined in the upstream nettests directory. The fields their output shares are defined in data-formats.