Amateur Radio Satellite Pass Matcher by K5EM


API is currently under active development. Feel free to experiment, but let K5EM know if you want to use the api for an integration.


Satmatch has a basic URL-based API so it can be used without the form on this page. Set the request type to application/json or set ?json=true to get json results instead of rendered pages or images.


Satellites must match the satellite name from nasabare.txt e.g. AO-91 or ISS

Lists of Satellites, separated by commas with no spaces, are allowed for pass and overlap list pages e.g. AO-91,AO-29

Locations can be 4-12 character maidenhead grid squares for example: BL01ix09, DM04uq32ab12, or alternatively a lat,lon pair such as 45.5986,-113.02342

Extended Locations can (optionally) also include the WGS-84 altitude above mean sea level for the location in kilometers and (optionally) the horizon in degrees of the location. This is most useful when planning challenging matches where the observers may be on a high hill or mountain (such as the Haleakela volcano in Maui) where the elevation can impact pass times, and when passes below the normal horizon are possible due to both the elevation of the observer and atmospheric refraction. In these cases negative elevations down to a few degress can help to identify passes which might be possible.

For example, the following locations represent a lat,lon,altitude,elevation setup and a grid,altitude,elevation setup for two locations. The ground altitude of the location in meters has been found using Google Earth and entered in kilometers for the most accurate results.


Times are ISO 8601 standard date format entered in the URL bar when searching for passes at a specific time. Both past and future times are supported, but note that today's keplarian elements are used, so passes for some low altitude and high drag satellites such as the ISS may not be accurate too far in the past or future. Other satellties in higher orbits can be reliably predicted within a few minutes even months into the past or future. Note: UTC offsets are not currently supported


Passes for a location and satellite

Get all passes for a location and satellite at the current time, or at any time and for a specified duration. search_start_time is an ISO-8601 encoded time string and duration_hrs defaults to 24. Requests for durations longer than 72 hours may not return.{satname}/obs1/{location}?search_start_time={search_start_time}&duration_hrs={duration}

A specific pass for a location and satellite

You can look up a specific pass by location and satellite, but pass_start_time must fall within one hour of the pass start (but not after the start of pass) to find the pass.{satname}/obs1/{location}/pass/{pass_start_time}

Overlapping passes

Get overlapping passes for a satellite using{satname}/obs1/{location}/obs2/{location2}