Tool

starlink-client: Python library for the Starlink dish and account API

Feb 04, 2025Hector Oliveros (Eitol)Source: PyPI387 views

starlink-client (MIT, version 0.1.13, February 2025) wraps the Starlink terminal's local gRPC service and the account API in Python: account data, device location or H3 cell, network statistics, telemetry, and a remote reboot. Requires Python 3.9+.

What it is

starlink-client is a Python package by Hector Oliveros, published on PyPI under the MIT licence; the current release is 0.1.13 from 4 February 2025 and it requires Python 3.9 or later. The library exposes two paths to a Starlink system. The first is direct: the user terminal runs a gRPC server on port 9200 that is reachable from the local network without authentication, and the library ships the protocol definitions extracted from the antenna itself. The second is remote, through Starlink's account API over gRPC-Web and REST, which requires the customer's credentials. The repository includes a Makefile to re-extract the .proto files from a dish with grpc-curl and to regenerate the client with Connect.

What you can do with it

  • Get account data: e-mail, customer name and the service lines attached to the account.
  • Get device location: precise GPS coordinates when you are on the local network, otherwise the H3 cell the terminal is connected to (the same hexagonal indexing Starlink uses in its Enterprise telemetry).
  • Get network stats: current latency, download speed and related counters.
  • Reboot the dish remotely, and read telemetry fields the official app only shows as graphs.

Who it is for

Developers building monitoring for a handful of terminals, integrators who need to script an inventory of a customer's service lines, and anyone prototyping a dashboard before committing to a commercial tool. It is a good companion to starlink-grpc-tools, which covers the local gRPC interface in more depth and has exporters for InfluxDB, Prometheus, MQTT and SQLite; starlink-client adds the account side. For fleets with a Business or Enterprise account, the official Telemetry and Management APIs, as used by the DataMiner Starlink Enterprise connector, remain the supported route.

How to use it

  1. pip install starlink-client in a virtual environment (Python 3.9+).
  2. For local access, make sure 192.168.100.1 is reachable through your router (the Starlink app must work from the same network).
  3. Instantiate the client, call the network statistics method in a loop and write the results to your time-series store; the README lists the supported operations.
  4. For remote access, authenticate with the account credentials and use the H3 location and account calls; keep the credentials out of source control.

Limits

This is a community project at version 0.1.x: the API surface is small, error handling is basic, and the account API it wraps is not documented or guaranteed by Starlink, so a firmware or web change can break a call. Location over gRPC has been restricted on most plans since May 2026. Treat it as a prototyping tool rather than a production dependency for a NOC.

Related

Definitions: throughput, uplink and downlink, Starlink. Directories: enterprise satellite solutions, Starlink providers.

Find a provider

The listings this resource is relevant to — every company is profiled with services, coverage and contact details.

Keep reading

Related resources