Get Started

What exactly is the {MAAS} API?

The {MAAS} API is an open source REST API built to help make it easier and more efficient to build interactive applications that want to utilize the wealth of weather data being transmitted by the Curiosity Rover on Mars. Our API is built upon the REMS (Rover Environmental Monitoring Station) data provided by the Centro de Astrobiologia (CSIC-INTA).

What's possible?

Using open source, publicly available data from NASA, the Planetary Data System, the Centro de Astrobiologia (CSIC-INTA) and MarsWeather.com, we've parsed together a robust grouping of data being transmitted by REMS. Here's a listing of what's available:

  • Terrestrial Date (Earth Date)
  • Sol (Mars Date)
  • LS - (Mars Season)
  • Min Temp (C&F)
  • Max Temp (C&F)
  • Atmospheric Pressure
  • Humidity
  • Wind Direction
  • Weather Status (Sunny, Cloudy, etc)

Use the {MAAS} API to build mobile weather apps, web apps, data visualizations and more. The possibilities are endless as our RESTful API can integrate with nearly any web- enabled application or programming language.

Get started with the {MAAS} API

Start building apps on a galactic scale with the Mars Atmospheric Aggregation System.

Our API is accessible at marsweather.ingenology.com. Thanks to being built with Django REST Framework, it features a Browsable API that makes exploring the data easy. Here are a few examples to get you started:

The following request:

curl -X GET http://marsweather.ingenology.com/v1/latest/

will return a JSON object for the latest report:

{
    "report": {
        "terrestrial_date": "2013-05-01", 
        "sol": 261, 
        "ls": 310.5, 
        "min_temp": -69.75, 
        "min_temp_fahrenheit": -93.55, 
        "max_temp": -4.48, 
        "max_temp_fahrenheit": 23.94, 
        "pressure": 868.05, 
        "pressure_string": "Higher", 
        "abs_humidity": null, 
        "wind_speed": null, 
        "wind_direction": "--", 
        "atmo_opacity": "Sunny", 
        "season": "Month 11", 
        "sunrise": "2013-05-01T11:00:00Z", 
        "sunset": "2013-05-01T22:00:00Z"
    }
}

You can filter by most report fields. For example, sol:

curl -X GET http://marsweather.ingenology.com/v1/archive/?sol=155

This returns:

{
    "count": 1, 
    "next": null, 
    "previous": null, 
    "results": [
        {
            "terrestrial_date": "2012-12-10", 
            "sol": 155, 
            ...
        }
    ]
}

You can also filter by terrestrial date using terrestrial_date_start and terrestrial_date_end. For example:

curl -X GET http://marsweather.ingenology.com/v1/archive/?terrestrial_date_start=2012-10-01&terrestrial_date_end=2012-10-31

This returns a collection of JSON objects for every weather report available for October 2012:

{
    "count": 29, 
    "next": "http://marsweather.ingenology.com/v1/archive/?terrestrial_date_end=2012-10-31&terrestrial_date_start=2012-10-01&page=2", 
    "previous": null, 
    "results": [
        ...
    ]
}

Our API is open sourced under the Apache license. The source code is available on Github

Browse the API Get the Code