Experimental asyncio API


The asyncio API is not thoroughly unit tested, use with caution. Please report issues on GitHub.

class spacetrack.aio.AsyncSpaceTrackClient(identity, password)

Bases: spacetrack.base.SpaceTrackClient

Asynchronous SpaceTrack client class.

This class should be considered experimental.

It must be closed by calling close(). Alternatively, instances of this class can be used as a context manager.

  • identity – Space-Track username.
  • password – Space-Track password.

For more information, refer to the Space-Track documentation.


aiohttp.ClientSession instance.


Close aiohttp session.

generic_request(class_, iter_lines=False, iter_content=False, controller=None, parse_types=False, **kwargs)

Generic Space-Track query coroutine.

The request class methods use this method internally; the public API is as follows:

st.tle_publish(*args, **st)
st.basicspacedata.tle_publish(*args, **st)
st.file(*args, **st)
st.fileshare.file(*args, **st)
st.spephemeris.file(*args, **st)

They resolve to the following calls respectively:

st.generic_request('tle_publish', *args, **st)
st.generic_request('tle_publish', *args, controller='basicspacedata', **st)
st.generic_request('file', *args, **st)
st.generic_request('file', *args, controller='fileshare', **st)
st.generic_request('file', *args, controller='spephemeris', **st)
  • class – Space-Track request class name
  • iter_lines – Yield result line by line
  • iter_content – Yield result in 100 KiB chunks.
  • controller – Optionally specify request controller to use.
  • parse_types – Parse string values in response according to type given in predicate information, e.g. '2017-01-01' -> datetime.date(2017, 1, 1).
  • **kwargs

    These keywords must match the predicate fields on Space-Track. You may check valid keywords with the following snippet:

    spacetrack = AsyncSpaceTrackClient(...)
    await spacetrack.tle.get_predicates()
    # or
    await spacetrack.get_predicates('tle')

    See _stringify_predicate_value() for which Python objects are converted appropriately.


Lines—stripped of newline characters—if iter_lines=True


100 KiB chunks if iter_content=True


Parsed JSON object, unless format keyword argument is passed.


Passing format='json' will return the JSON unparsed. Do not set format if you want the parsed JSON object returned!

get_predicates(class_, controller=None)

Get full predicate information for given request class, and cache for subsequent calls.