Okapi

Telemetry

Every Okapi instance checks in with OKAPI_UPDATE_ENDPOINT (default https://api.useokapi.app) roughly every 3 hours. This page is the complete, exact list of what that check-in can send — nothing here is abridged.

The version check is mandatory; the rest is opt-out

There are two different requests an instance might make, and which one it makes depends on two independent things: whether telemetry is enabled, and whether the instance is licensed.

Unlicensed, with telemetry disabled (OKAPI_DISABLE_TELEMETRY=1) — a bare GET /v1/latest. No body, no instance id, no version number, nothing identifying. This is the mandatory part: Okapi always checks whether a newer release exists, full stop, but this specific request carries no information about your instance at all.

Telemetry enabled (the default), or the instance is licensed — a POST /v1/checkin carrying:

  • instanceId — always. A random identifier generated locally on first boot; it isn't tied to any account, email, or license by itself.
  • version — always. The running Okapi version.
  • os / arch — only when telemetry is enabled. Omitted entirely when OKAPI_DISABLE_TELEMETRY=1.
  • licenseKey — only when the instance has activated a license. This is sent regardless of the telemetry setting, including with telemetry disabled — the license check-in is what keeps your cached entitlements (coverage, seats, offers) current, so it runs independent of the telemetry opt-out.

What never leaves your instance

Events, logs, issue content, stack traces, user data, and anything else in your database. The fields listed above are the entire contents of every outbound request Okapi's update/license check ever makes — there is no broader "usage analytics" payload beyond what's written out here.

Turning it off

Set OKAPI_DISABLE_TELEMETRY=1. This stops os/arch from ever being sent and, for an unlicensed instance, drops the check-in down to the bare version-check GET. The version check itself cannot be disabled — Okapi always needs to know whether it's current — and a licensed instance's check-in continues regardless, since that's the mechanism keeping its entitlements accurate.

The fail-open promise

An Okapi instance that can't reach OKAPI_UPDATE_ENDPOINT is never degraded. Cached entitlements never expire on their own; at most, after the relevant grace window closes (see Licensing), you'll see a quiet notice. Network trouble, a firewall, an air-gapped deployment — none of it turns your instance off or blurs anything it wasn't already going to blur on its own schedule.