openapi: 3.0.0
servers:
  - url: ""
info:
  contact:
    x-twitter: amentumspace
  description: |
    Instantly access empirical models of atmospheric density and  composition that are recommended by the Committee on Space Research (COSPAR) for  satellite drag calculations. <br><br>
    API requests must contain a key "API-Key" in the header (see code samples). Obtain a key from  <a href='https://developer.amentum.io'>here</a>. <br><br> 
    Help us improve the quality of our web APIs by completing our 2 minute survey <a href="https://www.surveymonkey.com/r/CTDTRBN">here</a>.<br><br>
    Amentum Pty Ltd is not responsible nor liable for any loss or damage of any sort incurred as a result of using the API. <br><br>
    Copyright <a href='https://amentum.space'>Amentum Pty Ltd</a> 2021.
  title: Atmosphere API
  version: 1.1.1
  x-apisguru-categories:
    - location
  x-logo:
    altText: Amentum Aerospace
    backgroundColor: "#FFFFFF"
    url: https://twitter.com/amentumspace/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://atmosphere.amentum.space/openapi.json
      version: "3.0"
  x-providerName: amentum.space
  x-serviceName: atmosphere
tags:
  - description: |
      The <a href='https://ccmc.gsfc.nasa.gov/modelweb/atmos/nrlmsise00.html'>NRLMSISE-00</a>  model was developed by the US Naval Research Laboratory.  It is based on mass spectrometry and incoherent radar scatter data,  includes drag and accelerometer data, and accounts for anomalous  oxygen at high altitudes. It is recommended by the International  Committee on Space Resarch (COSPAR) as the standard for atmospheric  composition. <br><br> The API now automatically updates the Ap and F10.7 cm radio flux  indices unless provided by the user.
    name: nrlmsise00
    x-displayName: NRLMSISE-00
  - description: |
      The <a href='https://sol.spacenvironment.net/jb2008/'>JB2008</a> (Jacchia-Bowman) model is a newer model developed by  Space Environment Technologies and the US Air Force Space Command.
       The model accounts for various phenomena related to EUV heating of 
       the thermosphere and uses the DST index as the driver of global 
       density changes. The model is complementary to the NRLMSISE00 model 
       and is more accurate during times of high solar activity and 
       geomagnetic storms. It is recommended by COSPAR as the standard 
       for thermospheric density in satellite drag calculations.<br><br>
       The API now automatically updates the indices needed to account 
       for global density variations due to geomagnetic storms and EUV heating. 
    name: jb2008
    x-displayName: JB2008
  - description: |
      The NOAA/SWPC <a href='https://www.swpc.noaa.gov/products/wam-ipe'>Whole Atmosphere Model-Ionosphere Plasmasphere Electrodynamics (WAM-IPE) Forecast System (WFS)</a> provides thermosphere and ionosphere forecasts on a 48 hour horizon.  The model accounts for solar, space weather, and lower atmosphere forcing effects. The neutral density predictions are important for accurate orbit determinations and therefore safer space traffic management. Our web API endpoint provides the  wind components, temperature, and molecular and atomic atmospheric compositions for a given altitude, latitude and longitude, and time  ahead 42-48 hours on a 10 minute grid. (The forecast horizon is 42-48 hours as the data is updated every  6 hours). Please contact team@amentum.space if you would like to access the Global Ionosphere forecasts as well. 
    name: wam-ipe
    x-displayName: WAM-IPE
paths:
  /jb2008:
    get:
      description: |
        under given conditions.
      operationId: app.api.endpoints.JB2008.sample_atmosphere
      parameters:
        - $ref: "#/components/parameters/Year"
        - $ref: "#/components/parameters/Month"
        - $ref: "#/components/parameters/Day"
        - $ref: "#/components/parameters/Altitude"
        - $ref: "#/components/parameters/GeodeticLatitude"
        - $ref: "#/components/parameters/GeodeticLongitude"
        - $ref: "#/components/parameters/UTC"
      responses:
        "200":
          content:
            application/json:
              example:
                at_alt_temp:
                  units: K
                  value: 667.005615234375
                exospheric_temp:
                  units: K
                  value: 666.522705078125
                total_mass_density:
                  units: kg/m3
                  value: 5.201439105817496e-12
              schema:
                properties:
                  at_alt_temp:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  exospheric_temp:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  total_mass_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                type: object
          description: Successful atmospheric density calculation
      summary: |
        Compute atmospheric density and temperatures
      tags:
        - jb2008
      x-codeSamples:
        - lang: Shell
          source: |
            curl -X GET "https://atmosphere.amentum.io/jb2008?year=2020&month=5&day=21&altitude=300&geodetic_latitude=42&geodetic_longitude=42&utc=2" -H "API-Key: <your_key>" -H  "accept: application/json"
        - lang: Python
          source: |
            import json
            import requests

            url = "https://atmosphere.amentum.io/jb2008"

            params = {
                'year' : 2020,
                'month' : 5,
                'day' : 21,
                'geodetic_latitude' : 42,
                'geodetic_longitude' : 42,
                'altitude' : 300, # km
                'utc' : 2, # hours
            }
            headers = {"API-Key" : "<add_your_key>"}
            # handle exceptions
            response = requests.get(url, params=params, headers=headers)
            json_payload = response.json()

            print(json.dumps(json_payload, indent=4, sort_keys=True))
  /nrlmsise00:
    get:
      description: |
        at specified conditions.
      operationId: app.api.endpoints.NRLMSISE00.sample_atmosphere
      parameters:
        - $ref: "#/components/parameters/Year"
        - $ref: "#/components/parameters/Month"
        - $ref: "#/components/parameters/Day"
        - $ref: "#/components/parameters/Altitude"
        - $ref: "#/components/parameters/GeodeticLatitude"
        - $ref: "#/components/parameters/GeodeticLongitude"
        - $ref: "#/components/parameters/UTC"
        - $ref: "#/components/parameters/F107A"
        - $ref: "#/components/parameters/F107"
        - $ref: "#/components/parameters/AP"
      responses:
        "200":
          content:
            application/json:
              example:
                Ar_density:
                  units: /m3
                  value: 345221344
                H_density:
                  units: /m3
                  value: 846266302464
                He_density:
                  units: /m3
                  value: 14137357762560
                N2_density:
                  units: /m3
                  value: 7370196910080
                N_density:
                  units: /m3
                  value: 424038367232
                O2_density:
                  units: /m3
                  value: 285386670080
                O_density:
                  units: /m3
                  value: 160525593870336
                anomalous_O_density:
                  units: /m3
                  value: 2940371.25
                ap:
                  value: 3
                at_alt_temp:
                  units: K
                  value: 590.3972778320312
                exospheric_temp:
                  units: K
                  value: 590.4319458007812
                f107:
                  units: sfu
                  value: 70
                f107a:
                  units: sfu
                  value: 69.35802469135803
                total_mass_density:
                  units: kg/m3
                  value: 4.7264410267533474e-12
              schema:
                properties:
                  Ar_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  H_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  He_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  N2_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  N_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  O2_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  O_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  anomalous_O_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  ap:
                    properties:
                      value:
                        type: number
                    type: object
                  at_alt_temp:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  exospheric_temp:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  f107:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  f107a:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  total_mass_density:
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                type: object
          description: Successful atmospheric density calculation
      summary: |
        Compute atmospheric composition, density, and temperatures
      tags:
        - nrlmsise00
      x-codeSamples:
        - lang: Shell
          source: |
            curl -X GET "https://atmosphere.amentum.io/nrlmsise00?year=2020&month=5&day=21&altitude=300&geodetic_latitude=42&geodetic_longitude=42&utc=2" -H "API-Key: <your_key>" -H "accept: application/json"
        - lang: Python
          source: |
            import json
            import requests

            url = "https://atmosphere.amentum.io/nrlmsise00"

            headers = {"API-Key" : "<add_your_key>"}

            params = {
                'year' : 2020,
                'month' : 5,
                'day' : 21,
                'geodetic_latitude' : 42,
                'geodetic_longitude' : 42,
                'altitude' : 300, # km
                'utc' : 2, # hours
            }
            # handle exceptions
            response = requests.get(url, params=params, headers=headers)
            json_payload = response.json()

            print(json.dumps(json_payload, indent=4, sort_keys=True))
  /wam-ipe:
    get:
      description: |
        at a given position and time on 42-48 hour forecast horizon (10 minute resolution). NOTE: latitudes outside the interval (-90,90) are clipped to the endpoints; longitudes outside (0,360) are wrapped.   
      operationId: app.api_wfs.endpoints.WFS.get_values
      parameters:
        - $ref: "#/components/parameters/Latitude"
        - $ref: "#/components/parameters/Longitude"
        - $ref: "#/components/parameters/Altitude"
        - $ref: "#/components/parameters/Year"
        - $ref: "#/components/parameters/Month"
        - $ref: "#/components/parameters/Day"
        - $ref: "#/components/parameters/Hour"
        - $ref: "#/components/parameters/Minute"
      responses:
        "200":
          content:
            application/json:
              schema:
                example:
                  N2_density:
                    units: /m3
                    value: 1.8508440362185578e+25
                  O2_density:
                    units: /m3
                    value: 5.005040353829904e+24
                  O_density:
                    units: /m3
                    value: 4279507561218048
                  eastward_wind_neutral:
                    units: m/s
                    value: 0.15444904565811157
                  northward_wind_neutral:
                    units: m/s
                    value: -9.831161499023438
                  point:
                    altitude: 327.6
                    latitude: 30
                    longitude: 348
                  temp_neutral:
                    units: K
                    value: 296.2078
                  total_mass_density:
                    units: kg/m3
                    value: 4.124548465486878e-11
                  upward_wind_neutral:
                    units: m/s
                    value: -0.00033221824560314417
                properties:
                  N2_density:
                    description: |
                      Molecular nitrogen density in (/m3).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  O2_density:
                    description: |
                      Moleculary oxygen density in (/m3).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  O_density:
                    description: |
                      Oxygen atomic density in (/m3).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  eastward_wind_neutral:
                    description: |
                      Easterly component of neutral wind velocity in (m/s).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  northward_wind_neutral:
                    description: |
                      Northerly component of neutral wind velocity in (m/s).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  point:
                    description: The given point in the request.
                    properties:
                      altitude:
                        type: number
                      latitude:
                        type: number
                      longitude:
                        type: number
                    type: object
                  temp_neutral:
                    description: |
                      Temperature of the atmosphere in (K).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  total_mass_density:
                    description: |
                      Total mass density (kg/m3).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                  upward_wind_neutral:
                    description: |
                      Upward component of neutral wind velocity in (m/s).
                    properties:
                      units:
                        type: string
                      value:
                        type: number
                    type: object
                type: object
          description: Successful wam-ipe calculation
      summary: |
        Forecast winds, ion and molecular densities, and temperatures in the atmosphere
      tags:
        - wam-ipe
      x-codeSamples:
        - lang: Shell
          source: |
            # NOTE: sample code time will lag forecast, update this to be a datetime within 42 hours of the time of your request
            curl -X GET "https://atmosphere.amentum.io/wam-ipe?latitude=21.0&longitude=-12.0&altitude=300&year=2022&month=5&day=23&hour=15&minute=10" -H "API-Key: <your_key>" -H "accept: application/json"
        - lang: Python
          source: |
            import json
            import requests

            url = "https://atmosphere.amentum.io/wam-ipe"

            headers = {"API-Key": "<add_your_key>"}

            # NOTE: sample code time will lag forecast, update this to be a datetime within 42 hours of the time of your request
            params = {
              "latitude": 21.0,
              "longitude": -12.0,
              "altitude": 300,
              "year": 2022,
              "month": 5,
              "day": 23,
              "hour": 15,
              "minute": 10
            }

            # handle exceptions
            response = requests.get(url, headers=headers, params=params)
            json_payload = response.json()

            print(json.dumps(json_payload, indent=4, sort_keys=True))
components:
  parameters:
    AP:
      description: |
        (Optional) The Ap-index provides a daily average level for geomagnetic activity F107, F107A, AP effects can be neglected below 80 km. If unspecified, the average of values in the 24 hours preceding the date-time  are automatically calculated from data provided by GFZ German Research Centre  for Geosciences.
      in: query
      name: ap
      required: false
      schema:
        example: 30
        type: number
    Altitude:
      description: Altitude in (km)
      in: query
      name: altitude
      required: true
      schema:
        example: 300
        type: number
    Day:
      description: Day in DD format
      in: query
      name: day
      required: true
      schema:
        example: 23
        type: integer
    F107:
      description: |
        (Optional) Daily F10.7 cm radio flux for previous day (SFU). F107 and F107A values correspond to the 10.7 cm radio flux at the actual distance of Earth from Sun rather than radio flux at 1 AU. F107, F107A, AP effects can be neglected below 80 km. If unspecified, values provided by the US National Oceanic and  Atmospheric Administration are retrieved automatically.
      in: query
      name: f107
      required: false
      schema:
        example: 120
        type: number
    F107A:
      description: |
        (Optional) 81 day average of F10.7 flux (SFU) centered on the specified day. F107 and F107A values correspond to the 10.7 cm radio flux at the actual distance of Earth from Sun rather than radio flux at 1 AU. F107, F107A, AP effects can be neglected below 80 km. If unspecified, values provided by the US National Oceanic and  Atmospheric Administration are retrieved automatically.
      in: query
      name: f107a
      required: false
      schema:
        example: 120
        type: number
    GeodeticLatitude:
      description: GeodeticLatitude (deg) -90 to 90 deg
      in: query
      name: geodetic_latitude
      required: true
      schema:
        example: 42
        type: number
    GeodeticLongitude:
      description: GeodeticLongitude (deg) 0 to 360 deg
      in: query
      name: geodetic_longitude
      required: true
      schema:
        example: 42
        type: number
    Hour:
      description: UTC Hour of the day in 24 hour format
      in: query
      name: hour
      required: true
      schema:
        example: 15
        type: integer
    Latitude:
      description: Latitude (deg) -90 to 90 deg
      in: query
      name: latitude
      required: true
      schema:
        example: 42
        type: number
    Longitude:
      description: Longitude (deg) 0 to 360 deg or -180 to 180 deg
      in: query
      name: longitude
      required: true
      schema:
        example: 42
        type: number
    Minute:
      description: Minute of the given hour
      in: query
      name: minute
      required: true
      schema:
        example: 10
        type: integer
    Month:
      description: Month in MM format
      in: query
      name: month
      required: true
      schema:
        example: 5
        type: integer
    UTC:
      description: Coordinated Universal Time (hrs)
      in: query
      name: utc
      required: true
      schema:
        example: 2
        type: number
    Year:
      description: Year in YYYY format
      in: query
      name: year
      required: true
      schema:
        example: 2020
        type: integer
x-tagGroups:
  - name: Density and composition
    tags:
      - nrlmsise00
      - jb2008
      - wam-ipe
