Mashup API
Tools for programmatically querying the MAST Portal.
 All Classes Namespaces Properties Pages
Mashup API Documentation

The Mashup API allows for MAST queries to be performed programmatically. This documentation describes how to create a valid Mashup Query, as well as the Mashup Services of interest to an API user.

Questions/Comments/Feedback: contact archi.nosp@m.ve@s.nosp@m.tsci..nosp@m.edu

Documentation Organization

The Mashup Request class documentation provides information for properly formatting a Mashup request to the mast servers.

The Services documentation provides information about specific services that may be used.

The Result Dataset Formats page documents possible return types.

The Examples page contains working code for various Mashup Queries in Python.

There is also a Tutorial that goes through a basic workflow from initial query to data download.

The Mashup Request Url

The Mashup Request Url is https://mast.stsci.edu/api/v0/invoke?request=(Mashup Request Object).
The Mashup service takes a single request argument, ?request=(Mashup Request Object), a json object.
The Mashup service supports both HTTP GET and HTTP POST request types.

The Mashup Request Object

This is an example of the Mashup Request Object. Each property is described in detail in the Mashup Request section.

 {'service':'Mast.Caom.Cone',
  'params':{'ra':254.28746,
            'dec':-4.09933,
            'radius':0.2},
  'format':'json',
  'pagesize':2000,
  'removenullcolumns':True,
  'timeout':30,
  'removecache':True}

A note about large Mashup Queries

The maximum result size for a Mashup Query is roughly 500,000 records (rows) due to server memory limits. If a query results in a larger response, it will raise a memory error. From a user perspective, the query errors out with the message "[Errno 54] Connection reset by peer." If this happens the query should be constrained (decrease the search radius, add more filtering) such that fewer records will be returned.

Long Polling

The Mashup is a long polling service, whereby the client reissues the same request to get current job status:

LongPolling.png