Buoy sends one anonymous ping per day, in development only. This page is the complete description of it — there is nothing else, and no other network call Buoy makes on its own behalf.
import { Buoy } from '@buoy-gg/core';
Buoy.init({
licenseKey: process.env.BUOY_KEY,
telemetry: false,
});
import { Buoy } from '@buoy-gg/core';
Buoy.init({
licenseKey: process.env.BUOY_KEY,
telemetry: false,
});
That's the whole opt-out. When it's off, nothing is sent and nothing is written to disk — opting out really is opting out, not "collected but not transmitted".
Four fields. That's the entire payload:
| Field | Example | What it is |
|---|---|---|
| installId | 9f3c1d7a-… | A random UUID generated on your machine the first time Buoy runs |
| version | 7.0.22 | The @buoy-gg/core version you have installed |
| platform | ios | ios, android, web, macos, or windows |
| tier | free | anonymous, free, or pro |
The first time it runs on a new install, Buoy prints one line to your console saying it's on and how to disable it. Once — not on every launch.
Buoy's licensing data can tell us how many people have a free or pro key. It structurally cannot tell us how many people are running Buoy without one, because there's no record of an install that never asked for anything.
That missing number is the denominator for the only question that matters when deciding what to build next: of everyone who tries Buoy, how many find it worth keeping? Without it we're guessing from npm download counts, which are heavily inflated by CI.
The ping goes to https://buoy.gg/api/t. If your network blocks it, Buoy is unaffected — the request fails silently and everything works normally.
If you need to allowlist Buoy's traffic in a corporate environment, the domain that actually matters is api.keygen.sh (license validation). buoy.gg is optional; blocking it costs you nothing.