---
title: "Perform inverse ATM calculation"
method: POST
path: "/api/v2/atm/inverse"
tags: ["Auroral Transport Model (ATM)"]
---

# Perform inverse ATM calculation

`POST /api/v2/atm/inverse`

## Request

- Base URL: `https://api.phys.ucalgary.ca` (the document declares no server; this is the origin it was published from)
- URL: `https://api.phys.ucalgary.ca/api/v2/atm/inverse`
- Auth: none declared
- TypeScript: <https://skmtc.dev/ucalgary/apis/ucalgary-space-remote-sensing-api/docs/api/v2/atm/inverse/post.ts> (a function with typed inputs; its response is checked against the schema)

Perform an inverse calculation using **VERSION 2** of the TREx Auroral Transport Model and the supplied 
input parameters.

**NOTE**: This version of the model no longer provides extended outputs which are derived when doing a 
subsequent forward request after the inversion determines the energy flux. Instead, we leave this up
to the user to perform the forward request using the parameters of their choosing. This was done to 
allow further customization of the forward requests which use inversion-derived inputs.

**NOTE**: As of API version 1.78.0 (released 2026-09-23), the `characteristic_energy` output flag (deprecated
in API version 1.38.0) has been removed. Please use `mean_energy` instead. Further, the
`precipitation_flux_spectral_type` parameter is now required.

Input notes:
  - By default requests are cached. Use the 'no_cache' parameter to disable this functionality
  - Timestamp
    - Timestamp is expected to be in UTC
    - Only specific dates are valid at this time. A 400 error will be returned if an unsupported date is
      requested. If you want to get a date that we have not enabled support for yet, please contact us.
    - the 'Z' character at the end of the timestamp is optional, and will be ignored if it is supplied
  - Latitude and longitude
    - Expected to be in geodetic coordinates
    - latitude is currently limited to >=50.0 and <71.5 degrees
    - longitude is currently limited >=-160 and <-75 and degrees
  - Units and defaults
    - intensity_4278: Rayleighs, default is 1000.0
    - intensity_5577: Rayleighs, default is 6000.0
    - intensity_6300: Rayleighs, default is 600.0
    - intensity_8446: Rayleighs, default is 400.0
    - precipitation_flux_spectral_type: required, valid values are "gaussian" or "maxwellian"
    - nrlmsis_model_version: valid values are "00" and "2.0", default is "2.0"
  - Special logic keyword
    - If you would like special logic to be used, the special_logic_keyword parameter can be set with 
      a unique keyword provided by UCalgary staff. This is meant as a way to enable support for certain 
      special use-cases.

Output notes:
  - output parameter of the request are toggles the enable/disable each field's inclusion in the response
  - all output parameters are false by default
  - altitude is in kilometers
  - energy flux: erg/cm2/s
  - mean energy: eV

## Request body

- SrcAtmV2SchemasInverseATMInverseRequest
  - `timestamp` string, date-time, required
  - `geodetic_latitude` number, required
  - `geodetic_longitude` number, required
  - `intensity_4278` number
  - `intensity_5577` number
  - `intensity_6300` number
  - `intensity_8446` number
  - `precipitation_flux_spectral_type` 'gaussian' | 'maxwellian', required
  - `nrlmsis_model_version` '00' | '2.0'
  - `special_logic_keyword` string
  - `output` SrcAtmV2SchemasInverseATMInverseRequestOutputFlags
    - `energy_flux` boolean
    - `mean_energy` boolean
    - `oxygen_correction_factor` boolean
  - `no_cache` boolean

## Response `200`

Calculated outputs

- SrcAtmV2SchemasInverseATMInverseResponse
  - `data` SrcAtmV2SchemasInverseATMInverseResponseData, required
    - `energy_flux` number
    - `mean_energy` number
    - `oxygen_correction_factor` number
  - `request` SrcAtmV2SchemasInverseATMInverseRequest, required
    - `timestamp` string, date-time, required
    - `geodetic_latitude` number, required
    - `geodetic_longitude` number, required
    - `intensity_4278` number
    - `intensity_5577` number
    - `intensity_6300` number
    - `intensity_8446` number
    - `precipitation_flux_spectral_type` 'gaussian' | 'maxwellian', required
    - `nrlmsis_model_version` '00' | '2.0'
    - `special_logic_keyword` string
    - `output` SrcAtmV2SchemasInverseATMInverseRequestOutputFlags
      - `energy_flux` boolean
      - `mean_energy` boolean
      - `oxygen_correction_factor` boolean
    - `no_cache` boolean
  - `calculation_duration_ms` number, required

## Other responses

- `400`: Problematic request made
- `422`: Validation Error
- `500`: Data generation error

---

[API](https://skmtc.dev/ucalgary/apis/ucalgary-space-remote-sensing-api.md) - [All operations](https://skmtc.dev/ucalgary/apis/ucalgary-space-remote-sensing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ucalgary/apis/ucalgary-space-remote-sensing-api/revisions/e451a425b5eb?raw)
