GNSS seed data (AGNSS assisted orbit files)
Free, openly available GNSS assistance data for faster cold-start fixes. Rebuilt every 20 minutes.
🔄 Rebuilt every 20 minutes
Current data built 14 minutes ago (2026-07-28T21:19:04Z).
118 satellitesGPS, Galileo, BeiDouraw 10.1 KBzlib 7.4 KB / 8 chunkslzma 6.6 KB / 7 chunks

This is the assisted-GNSS (AGNSS) orbit data used to get a fast first satellite fix from cold. It is pre-built broadcast ephemeris in standard MGA frame format, and it is public. If you are building your own tracker or flight computer, you are welcome to fetch and use these files directly. No account, no key, no rate limits within reason.

The data is served from a plain directory. Both http:// and https:// work on every URL below, so a device without a TLS stack (or one that wants to keep its single TLS session free) can fetch over plain HTTP.

Using one of our altimeters? There is nothing to set up. Our altimeters download this data automatically over the air; you do not need to configure anything on this page. It is published here purely so anyone can use the same data in their own projects and devices.
What it contains

A single blob of concatenated MGA-EPH ephemeris frames, one per satellite, covering three constellations:

  • GPS (MGA-GPS-EPH)
  • Galileo (MGA-GAL-EPH)
  • BeiDou (MGA-BDS-EPH)

The source is the current-day multi-GNSS broadcast navigation file from the international GNSS network, rebuilt into MGA frames. GLONASS and QZSS are intentionally omitted. A typical build is around 80 to 90 satellites and roughly 10 KB raw. The data is refreshed on a 20 minute cycle, so at any time the newest ephemeris is at most a few tens of minutes old, which is well within its useful validity window for cold-start assistance.

Feed each frame to a GNSS receiver as an MGA message. The first payload byte of every frame is 0x01 (ephemeris). Watch for the MGA-ACK reply to confirm each satellite was accepted. A position and rough time seed alongside the orbit gives the fastest lock.
Files and URLs

Same data, three encodings. Pick whichever suits your device. Sizes and chunk counts below are read live from the current build.

EncodingWhole fileSizeNotes
Raw/ubx/gnssglobal.bin10.1 KBUncompressed MGA frames. Simplest to parse.
zlib/ubx/gnssglobal.z7.4 KBStandard zlib stream (RFC 1950): 2-byte header, DEFLATE body, Adler-32 trailer.
LZMA/ubx/gnssglobal.lzma6.6 KBLZMA-alone (.lzma / xz --format=lzma): 5-byte props, 8-byte size, payload. 64 KB dictionary. Smallest.
Chunk size is 1000 bytes. The compressed streams are also split into small numbered chunks so a device with a tiny HTTP body buffer can pull them one at a time. Fetch the chunks in order and concatenate; the last chunk is shorter than the chunk size (a 404 also marks the end), then decompress the reassembled stream in one shot.
Machine-readable index

Every build writes a manifest listing the current sizes, chunk counts and the full URL of every file, so your device or script can discover everything without guessing filenames. Two identical copies are provided, one JSON, one plain text:

The JSON manifest gives the generation timestamp, which constellations are present, the satellite count, the chunk size, and for each of raw / zlib / lzma the whole-file URL, the byte size, the number of chunks and the complete list of chunk URLs. The text manifest carries the exact same fields as simple KEY=VALUE lines.

Terms of use

The underlying ephemeris is public broadcast navigation data. We rebuild and host it as a convenience and place our packaging in the public domain, so you may use these files freely in your own projects, commercial or otherwise. It is provided as-is with no guarantee of availability or accuracy; do not rely on it as a sole safety-critical input. Please fetch on a sensible schedule (the data only changes every 20 minutes, so there is no reason to poll faster than that).