the phone-home register

ONNX Runtime

What ONNX Runtime sends out of your computer by default, when, to whom, and the switch that stops it, version by version, with how we know.

The answer

Measured on the PyPI wheel for Linux x86-64: from 1.29.0 on, ONNX Runtime sends usage events (a hashed device ID, the program's path, hardware, system, model names, run counts) to mobile.events.data.microsoft.com about 9 s after launch on mains power (18 s otherwise, per its source; 1.28.0 sent nothing in 120 s); ORT_DISABLE_TELEMETRY=1, set before it starts, stops it (measured on 1.30.0: 3 of 3 runs of 120 s); its privacy file says the same of its official macOS, Android, iOS, C#, Java and C/C++ builds, Windows builds use Windows' own event tracing, and conda-forge's recipe builds without it.

measured on the research hub: ONNX Runtime's telemetry on Linux, measured: on by default since 1.29, and the switch that stops it

Builds and versions

not installed: the npm package onnxruntime-node 1.30.0 downloaded and its two Linux libraries searchedOn by default?likely · read in the shipped librariesMeasured here?no · read in codeDate checked (UTC)2026-09-28
Version
1.30.0 · the npm package for Node.js, its Linux libraries
Where the evidence came from
not run: the shipped libraries were searched, not run
On by default?
likely · read in the shipped libraries: the collector's address and the switch's name are there
Measured here?
no · read in code
Date checked (UTC)
2026-09-28
Why we say so
the shipped package onnxruntime-node-1.30.0.tgz from the npm registry: its two Linux libraries searched for the collector's address and the switch's name (for our ONNX Runtime telemetry measurement, 2026-09-28)
not installed: the PyPI wheel onnxruntime_gpu-1.30.0-cp312-cp312-manylinux_2_28_x86_64.whl downloaded, checked against PyPI's sha256, and its libraries searchedOn by default?likely · read in the shipped librariesMeasured here?no · read in codeDate checked (UTC)2026-09-28
Version
1.30.0 · the GPU wheel on PyPI, Linux x86-64
Where the evidence came from
not run: the shipped libraries were searched, not run
On by default?
likely · read in the shipped libraries: the collector's address and the switch's name are there
Measured here?
no · read in code
Date checked (UTC)
2026-09-28
Why we say so
the shipped wheel onnxruntime_gpu-1.30.0-cp312-cp312-manylinux_2_28_x86_64.whl (sha256 6acc0f4b3d5ac5f2984432faa59dd8fcce6775f8b43a7140afa0f322c7a703b1, as PyPI publishes it) carries the collector's address and the switch's name in its libraries (searched for our ONNX Runtime telemetry measurement, 2026-09-28)
pip, the official PyPI wheel (onnxruntime-1.30.0-cp312-cp312-manylinux_2_28_x86_64.whl, CPython 3.12.13)On by default?yes · measuredMeasured here?yesDate checked (UTC)2026-09-28
Version
1.30.0 · the PyPI wheel for Linux x86-64
Where the evidence came from
Debian 12 container, x86-64
On by default?
yes · measured
Measured here?
yes
Date checked (UTC)
2026-09-28
Why we say so
a sealed Docker container with no route out: a name server that answered every lookup with a local address and logged it, a listener that logged the server name each connection asked for and hung up, and strace on every system call; a planted caller showed the instruments could see; predictions frozen before the first run (the kit published with our ONNX Runtime telemetry measurement, research hub, 2026-09-28)
pip or uv: a fresh install of each package named below, resolved for Python 3.12 on Linux x86-64 on 2026-09-28 with uv pip compileOn by default?yes · inferredMeasured here?no · inferredDate checked (UTC)2026-09-28
Version
1.30.0 · the PyPI wheel, as a fresh install of one of 19 named Python packages resolved it
Where the evidence came from
not run: an install resolution for Linux x86-64
On by default?
yes · inferred: through ONNX Runtime 1.30.0, once the program loads it; the packages' own code not read
Measured here?
no · inferred
Date checked (UTC)
2026-09-28
Why we say so
a dependency's behaviour carried to the packages that bring it in, from an install resolution on a named day; a later install may resolve differently
not installed: source read at tag v1.29.1On by default?yes · read in codeMeasured here?no · read in codeDate checked (UTC)2026-10-10
Version
1.29.1 · the C and C++ library archives released on GitHub (1.29.1 was never on PyPI, npm, NuGet or Maven)
Where the evidence came from
not run: the source applies to the official native builds for Linux, macOS, Android and iOS
On by default?
yes · read in code: the same telemetry code and privacy file as 1.29.0
Measured here?
no · read in code
Date checked (UTC)
2026-10-10
Why we say so
the telemetry source and the privacy file at v1.29.1 compared with v1.29.0's and v1.30.0's; our ONNX Runtime telemetry measurement made the same comparison on 2026-09-28. The source at v1.29.1; we did not check that the released archives match it.
not installed: the conda-forge recipe read at its 1.29.0 and 1.30.0 commitsOn by default?not read · the build recipe, read at two commits, passes --no_telemetry, which leaves the telemetry out of the build; the package itself was not runMeasured here?no · read in codeDate checked (UTC)2026-10-10
Version
1.29.0 and 1.30.0 · the conda-forge builds
Where the evidence came from
not run: the recipe applies to every platform conda-forge builds
On by default?
not read · the build recipe, read at two commits, passes --no_telemetry, which leaves the telemetry out of the build; the package itself was not run
Measured here?
no · read in code
Date checked (UTC)
2026-10-10
Why we say so
conda-forge's recipe/build.sh read at the commit that built each version; the packages were not run
not installed: the vendor's privacy file read at v1.29.0 and v1.30.0On by default?yes · read in its own privacy fileMeasured here?no · in the vendor's documentsDate checked (UTC)2026-10-10
Version
1.29.0 and 1.30.0 · the official builds for macOS, Android and iOS, and the C# (NuGet) and Java (Maven) packages
Where the evidence came from
not run: the vendor's privacy file applies to these builds
On by default?
yes · read in its own privacy file
Measured here?
no · in the vendor's documents
Date checked (UTC)
2026-10-10
Why we say so
docs/Privacy.md read at v1.29.0 and v1.30.0 (the two files are identical)
not installed: the vendor's privacy file read at v1.29.0 and v1.30.0On by default?not read · its privacy file says the WebAssembly builds carry no telemetry; we did not read or run themMeasured here?no · in the vendor's documentsDate checked (UTC)2026-10-10
Version
1.29.0 and 1.30.0 · the WebAssembly build for browsers
Where the evidence came from
not run: a browser build
On by default?
not read · its privacy file says the WebAssembly builds carry no telemetry; we did not read or run them
Measured here?
no · in the vendor's documents
Date checked (UTC)
2026-10-10
Why we say so
docs/Privacy.md read at v1.29.0 and v1.30.0
pip, the official PyPI wheel (onnxruntime-1.29.0-cp312-cp312-manylinux_2_28_x86_64.whl, CPython 3.12.13)On by default?yes · measuredMeasured here?yesDate checked (UTC)2026-09-28
Version
1.29.0 · the PyPI wheel for Linux x86-64
Where the evidence came from
Debian 12 container, x86-64
On by default?
yes · measured
Measured here?
yes
Date checked (UTC)
2026-09-28
Why we say so
the same sealed Docker probe as the 1.30.0 row (the kit published with our ONNX Runtime telemetry measurement, research hub, 2026-09-28); 1.29.0 is the first version with this telemetry on by default on Linux
not installed: the vendor's privacy file read at v1.28.0, v1.29.0 and v1.30.0On by default?yes · read in its own privacy fileMeasured here?no · in the vendor's documentsDate checked (UTC)2026-10-10
Version
1.28.0, 1.29.0 and 1.30.0 · the official Windows builds
Where the evidence came from
not run: the vendor's privacy file applies to Windows
On by default?
yes · read in its own privacy file: through Windows' own event tracing, while a trace session collects
Measured here?
no · in the vendor's documents
Date checked (UTC)
2026-10-10
Why we say so
docs/Privacy.md read at v1.28.0, v1.29.0 and v1.30.0
pip, the official PyPI wheel (onnxruntime-1.28.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl, CPython 3.12.13)On by default?none found · measuredMeasured here?yesDate checked (UTC)2026-09-28
Version
1.28.0 · the PyPI wheel for Linux x86-64
Where the evidence came from
Debian 12 container, x86-64
On by default?
none found · measured: none in 120 s from launch in 3 runs; a second launch and a working network not exercised
Measured here?
yes
Date checked (UTC)
2026-09-28
Why we say so
the same sealed Docker probe as the 1.30.0 row (the kit published with our ONNX Runtime telemetry measurement, research hub, 2026-09-28)

Each call out

telemetry · 1.30.0 · the npm package for Node.js, its Linux libraries

Version · build
1.30.0 · the npm package for Node.js, its Linux libraries · not run: the shipped libraries were searched, not run · not installed: the npm package onnxruntime-node 1.30.0 downloaded and its two Linux libraries searched
Sends by default
likely · read in the shipped libraries: the collector's address and the switch's name are there
Kind
reports
Trigger
on its own
When
Not run. The libraries carry the same collector address and switch name as the Python package.
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Also know
transformers.js (@huggingface/transformers 4.3.0) depends on onnxruntime-node 1.30.0. — research.strata2signal.com · onnx-runtime-telemetry-on-linux, read 2026-09-28
Grade and method
read · the shipped package onnxruntime-node-1.30.0.tgz from the npm registry: its two Linux libraries searched for the collector's address and the switch's name (for our ONNX Runtime telemetry measurement, 2026-09-28) · read 2026-09-28
Receipts
the package on npm (registry record) · the privacy file at v1.30.0 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'Are you affected?' a house page; the receipts are above

telemetry · 1.30.0 · the GPU wheel on PyPI, Linux x86-64

Version · build
1.30.0 · the GPU wheel on PyPI, Linux x86-64 · not run: the shipped libraries were searched, not run · not installed: the PyPI wheel onnxruntime_gpu-1.30.0-cp312-cp312-manylinux_2_28_x86_64.whl downloaded, checked against PyPI's sha256, and its libraries searched
Sends by default
likely · read in the shipped libraries: the collector's address and the switch's name are there
Kind
reports
Trigger
on its own
When
Not run. The privacy file covers the official builds, and these libraries carry the same collector address as the CPU wheel.
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Grade and method
read · the shipped wheel onnxruntime_gpu-1.30.0-cp312-cp312-manylinux_2_28_x86_64.whl (sha256 6acc0f4b3d5ac5f2984432faa59dd8fcce6775f8b43a7140afa0f322c7a703b1, as PyPI publishes it) carries the collector's address and the switch's name in its libraries (searched for our ONNX Runtime telemetry measurement, 2026-09-28) · read 2026-09-28
Receipts
the wheel on PyPI · the privacy file at v1.30.0 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'Are you affected?' a house page; the receipts are above

telemetry · 1.30.0 · the PyPI wheel for Linux x86-64

Version · build
1.30.0 · the PyPI wheel for Linux x86-64 · Debian 12 container, x86-64 · pip, the official PyPI wheel (onnxruntime-1.30.0-cp312-cp312-manylinux_2_28_x86_64.whl, CPython 3.12.13)
Sends by default
yes · measured
Kind
reports
Trigger
on its own
When
First attempt 9.2 s after launch (observed 9.150 to 9.232 s at the listener's TCP accept, in 5 runs: 3 pre-registered and 2 audit re-runs), on a laptop on mains power. The library's source sets this timer to 9 s when it reads the machine as charging on an unmetered network, and 18 s otherwise (read, not run). When it cannot connect, it tried 4 more times within 120 s, with growing gaps, the last 77.4 to 90.3 s after launch in the same 5 runs. What follows a successful upload was not observed (seen with every handshake hung up, on mains power).
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Also know
Calling onnxruntime.disable_telemetry_events() did not stop the uploader in the sealed test (3 of 3 runs with the call made). — research.strata2signal.com · SUMMARY.md, read 2026-09-28
The library's runtime switch is ORT_DISABLE_TELEMETRY; the name DO_NOT_TRACK appears nowhere in its own source at v1.30.0 (a name search of the release's source, not of the telemetry SDK it builds in). — github.com · telemetry_environment.h, read 2026-10-10
If it ran before you set the switch, delete the .onnxruntime folder the 'has it already run' check finds; whether the switch also stops an old queue from being sent is not tested. — research.strata2signal.com · onnx-runtime-telemetry-on-linux, read 2026-09-28
Blocking the collector's name on your network keeps the events from leaving through that network, but the library still collects and queues them; the switch stops collection. (In every default run the queue filled while every attempt was cut off.) — research.strata2signal.com · result.json, read 2026-09-28
Grade and method
measured · a sealed Docker container with no route out: a name server that answered every lookup with a local address and logged it, a listener that logged the server name each connection asked for and hung up, and strace on every system call; a planted caller showed the instruments could see; predictions frozen before the first run (the kit published with our ONNX Runtime telemetry measurement, research hub, 2026-09-28) · 2026-09-28T08:45:25Z to 2026-09-28T09:07:54Z
exercised: import, a one-addition model built in memory, loaded and run once on the processor, then 120 s alive
not exercised: a second launch from the same home; a working network (every attempt was cut off); battery power; the cadence past 120 s
Receipts
the kit's run summary · run 1, every event · run 2, every event · run 3, every event · the audit's first re-run, every event · the audit's second re-run, every event · the predictions, frozen before the first run · the audit's re-runs · the collector's address in the source at v1.30.0 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'What we measured' a house page; the receipts are above

telemetry · 1.30.0 · the PyPI wheel, as a fresh install of one of 19 named Python packages resolved it

Version · build
1.30.0 · the PyPI wheel, as a fresh install of one of 19 named Python packages resolved it · not run: an install resolution for Linux x86-64 · pip or uv: a fresh install of each package named below, resolved for Python 3.12 on Linux x86-64 on 2026-09-28 with uv pip compile
Sends by default
yes · inferred: through ONNX Runtime 1.30.0, once the program loads it; the packages' own code not read
Kind
reports
Trigger
on its own
When
As the 1.30.0 row, from the moment the program imports ONNX Runtime; pulling it in is not the same as running it.
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Grade and method
inferred · a dependency's behaviour carried to the packages that bring it in, from an install resolution on a named day; a later install may resolve differently · read 2026-09-28
Receipts
the row it carries from · the resolution, published with its date, Python version and platform a house page; the receipts are above

telemetry · 1.29.1

Version · build
1.29.1 · the C and C++ library archives released on GitHub (1.29.1 was never on PyPI, npm, NuGet or Maven) · not run: the source applies to the official native builds for Linux, macOS, Android and iOS · not installed: source read at tag v1.29.1
Sends by default
yes · read in code: the same telemetry code and privacy file as 1.29.0
Kind
reports
Trigger
on its own
When
As 1.29.0: the code at v1.29.1 starts the same uploader; we did not run this build.
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Grade and method
read · the telemetry source and the privacy file at v1.29.1 compared with v1.29.0's and v1.30.0's; our ONNX Runtime telemetry measurement made the same comparison on 2026-09-28. The source at v1.29.1; we did not check that the released archives match it. · read 2026-10-10
Receipts
the collector's address in the source at v1.29.1 · the privacy file at v1.29.1 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'What changed, and when' a house page; the receipts are above

Not read · 1.29.0 and 1.30.0 · the conda-forge builds

Version · build
1.29.0 and 1.30.0 · the conda-forge builds · not run: the recipe applies to every platform conda-forge builds · not installed: the conda-forge recipe read at its 1.29.0 and 1.30.0 commits
Sends by default
not read · the build recipe, read at two commits, passes --no_telemetry, which leaves the telemetry out of the build; the package itself was not run
Grade and method
read · conda-forge's recipe/build.sh read at the commit that built each version; the packages were not run · read 2026-10-10
Receipts
recipe/build.sh at the 1.29.0 commit · recipe/build.sh at the 1.30.0 commit · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'Are you affected?' a house page; the receipts are above

telemetry · 1.29.0 and 1.30.0

Version · build
1.29.0 and 1.30.0 · the official builds for macOS, Android and iOS, and the C# (NuGet) and Java (Maven) packages · not run: the vendor's privacy file applies to these builds · not installed: the vendor's privacy file read at v1.29.0 and v1.30.0
Sends by default
yes · read in its own privacy file
Kind
reports
Trigger
on its own
When
Not run. The privacy file says these platforms send the same trace events over HTTPS.
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Grade and method
read · docs/Privacy.md read at v1.29.0 and v1.30.0 (the two files are identical) · read 2026-10-10
Receipts
the privacy file at v1.30.0, 'Non-Windows' · the privacy file at v1.29.0 · the collector's address in the non-Windows telemetry source at v1.30.0 · the same address at v1.29.0 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'Are you affected?' a house page; the receipts are above

Not read · 1.29.0 and 1.30.0 · the WebAssembly build for browsers

Version · build
1.29.0 and 1.30.0 · the WebAssembly build for browsers · not run: a browser build · not installed: the vendor's privacy file read at v1.29.0 and v1.30.0
Sends by default
not read · its privacy file says the WebAssembly builds carry no telemetry; we did not read or run them
Grade and method
read · docs/Privacy.md read at v1.29.0 and v1.30.0 · read 2026-10-10
Receipts
the privacy file at v1.30.0

telemetry · 1.29.0

Version · build
1.29.0 · the PyPI wheel for Linux x86-64 · Debian 12 container, x86-64 · pip, the official PyPI wheel (onnxruntime-1.29.0-cp312-cp312-manylinux_2_28_x86_64.whl, CPython 3.12.13)
Sends by default
yes · measured
Kind
reports
Trigger
on its own
When
First attempt 9.2 s after launch (observed 9.186 to 9.222 s at the listener's TCP accept, in 4 runs: 3 pre-registered and 1 audit re-run), on a laptop on mains power. The library's source sets this timer to 9 s when it reads the machine as charging on an unmetered network, and 18 s otherwise (read, not run). When it cannot connect, it tried 4 more times within 120 s, with growing gaps, the last 69.1 to 85.6 s after launch in the same 4 runs. What follows a successful upload was not observed (seen with every handshake hung up, on mains power).
Where
vendor telemetry collector · mobile.events.data.microsoft.com
What it sends
a device ID, sent as a hash that stays the same across runs and programs (identifier); the path the program was launched by (your username is in it when the program lives in your home folder) (path); processor model, core count and total memory (hardware); operating system and version, device class, network type and cost (system); names and metadata of the models you run (graph name, producer name, custom metadata) (model metadata); run counts and durations, the accelerator used, process memory and processor use (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Also know
Calling onnxruntime.disable_telemetry_events() did not stop the uploader in the sealed test on 1.30.0 (3 of 3 runs with the call made). — research.strata2signal.com · SUMMARY.md, read 2026-09-28
The library's runtime switch is ORT_DISABLE_TELEMETRY; the name DO_NOT_TRACK appears nowhere in its own source at v1.30.0 (a name search of the release's source, not of the telemetry SDK it builds in). — github.com · telemetry_environment.h, read 2026-10-10
If it ran before you set the switch, delete the .onnxruntime folder the 'has it already run' check finds; whether the switch also stops an old queue from being sent is not tested. — research.strata2signal.com · onnx-runtime-telemetry-on-linux, read 2026-09-28
Blocking the collector's name on your network keeps the events from leaving through that network, but the library still collects and queues them; the switch stops collection. (In every default run the queue filled while every attempt was cut off.) — research.strata2signal.com · result.json, read 2026-09-28
Step 3 of the switch rule was shown outside the sandbox on this version: the switch read from a running program's environment after its first log line. — research.strata2signal.com · onnx-runtime-telemetry-on-linux, read 2026-09-28
Grade and method
measured · the same sealed Docker probe as the 1.30.0 row (the kit published with our ONNX Runtime telemetry measurement, research hub, 2026-09-28); 1.29.0 is the first version with this telemetry on by default on Linux · 2026-09-28T08:45:25Z to 2026-09-28T09:12:14Z
exercised: import, a one-addition model built in memory, loaded and run once on the processor, then 120 s alive
not exercised: a second launch from the same home; a working network (every attempt was cut off); battery power; the cadence past 120 s
Receipts
the kit's run summary · run 1, every event · run 2, every event · run 3, every event · the audit's re-run without the switch, every event · the audit's run with the switch · the predictions, frozen before the first run · the audit's re-runs (check 4) · the privacy file at v1.29.0 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'What we measured' a house page; the receipts are above

etw trace events · 1.28.0, 1.29.0 and 1.30.0

Version · build
1.28.0, 1.29.0 and 1.30.0 · the official Windows builds · not run: the vendor's privacy file applies to Windows · not installed: the vendor's privacy file read at v1.28.0, v1.29.0 and v1.30.0
Sends by default
yes · read in its own privacy file: through Windows' own event tracing, while a trace session collects
Kind
reports
Trigger
on its own
When
Not run. Per the privacy file, events are recorded only while an external trace session collects them.
Where
OS telemetry
What it sends
the same trace events, recorded through Windows' own event tracing (usage)
The vendor's stated purpose
“ONNX Runtime collects trace events with the goal of improving product quality.” — docs/Privacy.md at v1.30.0, 'Official Builds', read 2026-10-10
Also know
Its privacy file says ONNX Runtime may already have emitted a minimal initialization event before the API switch can be called. — github.com · Privacy.md, read 2026-10-10
Grade and method
read · docs/Privacy.md read at v1.28.0, v1.29.0 and v1.30.0 · read 2026-10-10
Receipts
the privacy file at v1.30.0, 'Windows' · the privacy file at v1.30.0, the API switch · the privacy file at v1.29.0, 'Windows' · the privacy file at v1.28.0 · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'What changed, and when' a house page; the receipts are above

No call found · 1.28.0

Version · build
1.28.0 · the PyPI wheel for Linux x86-64 · Debian 12 container, x86-64 · pip, the official PyPI wheel (onnxruntime-1.28.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl, CPython 3.12.13)
Sends by default
none found · measured: none in 120 s from launch in 3 runs; a second launch and a working network not exercised
Grade and method
measured · the same sealed Docker probe as the 1.30.0 row (the kit published with our ONNX Runtime telemetry measurement, research hub, 2026-09-28) · 2026-09-28T08:45:25Z to 2026-09-28T08:51:43Z · network condition: every handshake hung up
exercised: import, a one-addition model built in memory, loaded and run once on the processor, then 120 s alive
not exercised: a second launch from the same home; a working network; the time past 120 s
Receipts
the kit's run summary · run 1, every event · run 2, every event · run 3, every event · the privacy file at v1.28.0: telemetry 'only implemented for Windows builds' · our ONNX Runtime telemetry measurement (research hub, 2026-09-28), 'What we measured' a house page; the receipts are above

The switch

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
found in the shipped library; not tested by us
For the call
telemetry · 1.30.0 · the npm package for Node.js, its Linux libraries

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
found in the shipped library; not tested by us
For the call
telemetry · 1.30.0 · the GPU wheel on PyPI, Linux x86-64

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
Values we set
1
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
proven on 1.30.0, from launch to 120 s, n = 3; not met: 3: the switch was set in the environment the program started with; it was not read back from the running process; 5: a queue left on disk by an earlier run without the switch was not seeded and re-run with it
For the call
telemetry · 1.30.0 · the PyPI wheel for Linux x86-64

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
proven on ONNX Runtime 1.30.0 itself (its own row); not tested inside these packages
For the call
telemetry · 1.30.0 · the PyPI wheel, as a fresh install of one of 19 named Python packages resolved it

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
documented; not tested by us
For the call
telemetry · 1.29.1

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
documented; not tested by us
For the call
telemetry · 1.29.0 and 1.30.0

ORT_DISABLE_TELEMETRY=1

Accepted values
1, true, yes, on, y (any case)
Values we set
1
What it is
environment variable, read once when the library first starts (in Python, at import)
Where it must be set
in the environment of the program, before it starts (see Turn them off) · turn them off
Also turns off
the persistent device ID file and the event queue are not created
What turning it off costs
none known: the privacy file names no other effect
Proof
undecided: one run with the switch set, made by the audit outside the pre-registered plan, was silent (n = 1). The privacy file names the same switch for this version. That run: 2026-09-28, 09:10:11Z to 09:12:14Z (UTC).
For the call
telemetry · 1.29.0

DisableTelemetryEvents

Accepted values
a call in the C API (and its C#, Python and Java bindings)
What it is
API call
Where it must be set
in the program's own code (the environment switch does not apply on Windows) · turn them off
Proof
documented; not tested by us
For the call
etw trace events · 1.28.0, 1.29.0 and 1.30.0

Listens beyond the machine, and other cloud features

Listens beyond the machine by default

  • n/a · a library: it opens no listening port of its own (1.30.0 the npm package for Node.js, its Linux libraries)
  • n/a · a library: it opens no listening port of its own (1.30.0 the GPU wheel on PyPI, Linux x86-64)
  • n/a · a library: it opens no listening port of its own (1.30.0 the PyPI wheel for Linux x86-64)
  • n/a · libraries: none opens a listening port through ONNX Runtime (1.30.0 the PyPI wheel, as a fresh install of one of 19 named Python packages resolved it)
  • n/a · a library: it opens no listening port of its own (1.29.1 the C and C++ library archives released on GitHub (1.29.1 was never on PyPI, npm, NuGet or Maven))
  • n/a · a library: it opens no listening port of its own (1.29.0 and 1.30.0 the conda-forge builds)
  • n/a · a library: it opens no listening port of its own (1.29.0 and 1.30.0 the official builds for macOS, Android and iOS, and the C# (NuGet) and Java (Maven) packages)
  • n/a · a library running in a browser (1.29.0 and 1.30.0 the WebAssembly build for browsers)
  • n/a · a library: it opens no listening port of its own (1.29.0 the PyPI wheel for Linux x86-64)
  • n/a · a library: it opens no listening port of its own (1.28.0, 1.29.0 and 1.30.0 the official Windows builds)
  • n/a · a library: it opens no listening port of its own (1.28.0 the PyPI wheel for Linux x86-64)

Other cloud features

None found.

What it leaves on disk

  • .cache/Microsoft/DeveloperTools/.onnxruntime/deviceid · the device ID file
  • .cache/Microsoft/DeveloperTools/.onnxruntime/onnxruntime.db · the queue of events waiting to be sent
  • /tmp/.ses (or $TMPDIR/.ses) · the telemetry library's own ID file
  • /tmp/mat-debug-<process number>.log (or under $TMPDIR) · an empty debug-log file made as the uploader starts

Has it already run on your machine?

Brings in, and installed for you by

Brings in

Installed for you by

Packages that install it, with no row of their own

  • chromadb 1.5.9
  • kokoro-onnx 0.6.1
  • faster-whisper 1.2.1 · starts it only when its voice-activity filter is used
  • whisperx 3.8.6 · through faster-whisper
  • markitdown 0.1.8 · its Docker image sets the switch; a pip install does not
  • insightface 2.0 · sets the switch itself when imported, before it loads ONNX Runtime
  • fastembed 0.8.1
  • piper-tts 1.8.0
  • unstructured-inference 1.6.13 · also brought in by unstructured[all-docs] 0.27.10
  • openwakeword 0.6.0
  • funasr-onnx 0.4.3
  • kittentts 0.1.3
  • rapidocr-onnxruntime 1.4.4
  • onnxruntime-genai 0.17.0 · requires 1.30.0 or newer
  • rembg[cpu] 2.0.85
  • silero-vad[onnx-cpu] 6.2.3
  • optimum[onnxruntime] 2.3.0
  • onnx-asr[cpu] 0.12.0
  • txtai[pipeline] 9.13.0

Credit

  • The default and the switch are documented in the package's own privacy file. — github.com · Privacy.md, read 2026-10-10
  • The device ID is sent as a hash, and the library blanks the program's name and your timezone from the events' shared context. — research.strata2signal.com · onnx-runtime-telemetry-on-linux, read 2026-09-28
  • conda-forge's recipe passes --no_telemetry to the build; the package itself was not inspected. — github.com · build.sh, read 2026-10-10
  • insightface 2.0 sets the switch itself when imported, before it loads ONNX Runtime (insightface/__init__.py, line 10, in the shipped wheel insightface-2.0-py3-none-any.whl, sha256 7b44c9ef8cfa80d0446285f048d1816a9326c87e7615f04625a1f277adbc4f19 as PyPI publishes it). — pypi.org · 2.0, read 2026-10-10
  • markitdown's Docker image sets the switch for its users (its Dockerfile at v0.1.8); a pip install does not. — github.com · Dockerfile, read 2026-10-10
  • Its privacy file says targets without a supported telemetry provider, "including WebAssembly", "do not include telemetry". — github.com · Privacy.md, read 2026-10-10
  • Its privacy file says: "Currently telemetry is only implemented for Windows builds". — github.com · Privacy.md, read 2026-10-10

Vendor documents it? · public discussion

Vendor documents it?

  • telemetry · 1.30.0 · the npm package for Node.js, its Linux libraries: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • telemetry · 1.30.0 · the GPU wheel on PyPI, Linux x86-64: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • telemetry · 1.30.0 · the PyPI wheel for Linux x86-64: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • telemetry · 1.30.0 · the PyPI wheel, as a fresh install of one of 19 named Python packages resolved it: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • telemetry · 1.29.1: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • telemetry · 1.29.0 and 1.30.0: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • telemetry · 1.29.0: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10
  • etw trace events · 1.28.0, 1.29.0 and 1.30.0: yes · Its privacy file, shipped inside the package, says telemetry is on by default in the official builds on Linux, macOS, Android and iOS, and names ORT_DISABLE_TELEMETRY=1 under 'Disabling Telemetry'. The PyPI page and the onnxruntime.ai documentation did not mention it when we checked them for our ONNX Runtime telemetry measurement (2026-09-28). · github.com · Privacy.md · research.strata2signal.com · onnx-runtime-telemetry-on-linux · read 2026-10-10

Public discussion

History

No dated changes yet.

Not yet checked

Nothing named.