API Documentation

The Helioviewer Project maintains a set of Public APIs with the goal of improving access to solar and heliospheric datasets to scientists, educators, developers, and the general public. Read below for descriptions of each API endpoint and examples of usage.

Browse APIs by category using the menu above, or consult the Appendix for more about the available datasources and working with coordinates.

For easy access to API responses within your code, check out the open-source libraries available at Unirest.io. Libraries are provided for integration with Python, PHP, Java, Ruby, Objective-C, Node.js, .NET, and Windows 8 code bases.

Unirest.io API Libraries ➚

JPEG2000

Helioviewer.org and JHelioviewer operate off of JPEG2000 formatted image data generated from science-quality FITS files. Use the APIs below to interact directly with these intermediary JPEG2000 files.

getJP2Image

GET /v2/getJP2Image/

Download a JP2 image for the specified datasource that is the closest match in time to the `date` requested.

Request Parameters:
Parameter Required Type Example Description
date Required string 2014-01-01T23:59:59Z Desired date/time of the JP2 image. ISO 8601 combined UTC date and time UTC format.
sourceId Required number 14 Unique image datasource identifier.
jpip Optional boolean false Optionally return a JPIP URI instead of the binary data of the image itself.
json Optional boolean false Optionally return a JSON object.

Example (A):

binary (JPEG2000 image data)

By default, JPEG2000 binary image data is returned. This assumes that the `jpip` parameter is omitted or set to `false`.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJP2Image/?date=2014-01-01T23:59:59Z&sourceId=14

Example (B):

string (JPIP link to JP2 Image)

If request parameter `jpip` is set to `true` (and the `json` parameter is omitted or set to `false`) the reponse is a plain text string.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJP2Image/?date=2014-01-01T23:59:59Z&sourceId=14&jpip=true
Example Response:
jpip://helioviewer-api.ias.u-psud.fr:8080/AIA/2014/01/02/335/2014_01_02__00_00_02_62__SDO_AIA_AIA_335.jp2

Example (C):

JP2 Image (JSON)

If request parameters `jpip` and `json` are both set to `true`, the reponse is a JSON object.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJP2Image/?date=2014-01-01T23:59:59Z&sourceId=14&jpip=true&json=true
Example Response:
{
    "uri": "jpip://helioviewer-api.ias.u-psud.fr:8080/AIA/2014/01/02/335/2014_01_02__00_00_02_62__SDO_AIA_AIA_335.jp2"
}
Parameter Required Type Description
uri Required string JPIP protocol link to JP2 image.

getJP2Header

GET /v2/getJP2Header/

Get the XML header embedded in a JPEG2000 image. Includes the FITS header as well as a section of Helioviewer-specific metadata.

Request Parameters:
Parameter Required Type Example Description
id Required number 7654321 Unique JP2 image identifier.
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

string (XML)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJP2Header/?id=7654321
Example Response:
<?xml version="1.0" encoding="utf-8"?>
<meta>
    <fits>
        <SIMPLE>1</SIMPLE>
        <BITPIX>16</BITPIX>
        <NAXIS>2</NAXIS>
        <NAXIS1>4096</NAXIS1>
        <NAXIS2>4096</NAXIS2>
        <EXTEND>1</EXTEND>
        <DATE_OBS>2011-05-25T09:07:00.34</DATE_OBS>
        <ORIGIN>SDO</ORIGIN>
        <DATE>2011-05-25T09:15:44</DATE>
        <TELESCOP>SDO</TELESCOP>
        <INSTRUME>AIA_3</INSTRUME>
        <DATE-OBS>2011-05-25T09:07:00.34</DATE-OBS>
        <T_OBS>2011-05-25T09:07:01.34Z</T_OBS>
        <TOBSSTEP>1.0000000</TOBSSTEP>
        <TOBSEPOC>1977.01.01_00:00:00_TAI</TOBSEPOC>
        <CAMERA>3</CAMERA>
        <IMG_TYPE>LIGHT</IMG_TYPE>
        <EXPTIME>2.0002010</EXPTIME>
        <EXPSDEV>0.00012300000</EXPSDEV>
        <INT_TIME>2.2734380</INT_TIME>
        <WAVELNTH>171</WAVELNTH>
        <WAVEUNIT>angstrom</WAVEUNIT>
        <WAVE_STR>171_THIN</WAVE_STR>
        <FSN>26454194</FSN>
        <FID>0</FID>
        <LVL_NUM>1.5000000</LVL_NUM>
        <QUALLEV0>0</QUALLEV0>
        <QUALITY>1073741824</QUALITY>
        <TOTVALS>16777216</TOTVALS>
        <DATAVALS>16777216</DATAVALS>
        <MISSVALS>0</MISSVALS>
        <PERCENTD>100.000</PERCENTD>
        <DATAMIN>0</DATAMIN>
        <DATAMAX>5041</DATAMAX>
        <DATAMEDN>143</DATAMEDN>
        <DATAMEAN>197.450</DATAMEAN>
        <DATARMS>240.880</DATARMS>
        <DATASKEW>3.37000</DATASKEW>
        <DATAKURT>-18.5000</DATAKURT>
        <OSCNMEAN>nan</OSCNMEAN>
        <OSCNRMS>nan</OSCNRMS>
        <FLAT_REC>aia.flatfield[:#30]</FLAT_REC>
        <CTYPE1>HPLN-TAN</CTYPE1>
        <CUNIT1>arcsec</CUNIT1>
        <CRVAL1>0.0000000</CRVAL1>
        <CDELT1>0.60000000</CDELT1>
        <CRPIX1>2048.5000</CRPIX1>
        <CTYPE2>HPLT-TAN</CTYPE2>
        <CUNIT2>arcsec</CUNIT2>
        <CRVAL2>0.0000000</CRVAL2>
        <CDELT2>0.60000000</CDELT2>
        <CRPIX2>2048.5000</CRPIX2>
        <CROTA2>0.0000000</CROTA2>
        <R_SUN>1581.4006</R_SUN>
        <MPO_REC>sdo.master_pointing[:#158]</MPO_REC>
        <INST_ROT>0.10248800</INST_ROT>
        <IMSCL_MP>0.59907600</IMSCL_MP>
        <X0_MP>2049.9199</X0_MP>
        <Y0_MP>2048.8101</Y0_MP>
        <RSUN_LF>nan</RSUN_LF>
        <X0_LF>nan</X0_LF>
        <Y0_LF>nan</Y0_LF>
        <ASD_REC>sdo.lev0_asd_0004[:#10393635]</ASD_REC>
        <SAT_Y0>-4.9394650</SAT_Y0>
        <SAT_Z0>8.3641070</SAT_Z0>
        <SAT_ROT>2.6000000e-05</SAT_ROT>
        <ACS_MODE>SCIENCE</ACS_MODE>
        <ACS_ECLP>NO</ACS_ECLP>
        <ACS_SUNP>YES</ACS_SUNP>
        <ACS_SAFE>NO</ACS_SAFE>
        <ACS_CGT>GT3</ACS_CGT>
        <ORB_REC>sdo.fds_orbit_vectors[2011.05.25_09:07:00_UTC]</ORB_REC>
        <DSUN_REF>1.4959787e+11</DSUN_REF>
        <DSUN_OBS>1.5153469e+11</DSUN_OBS>
        <RSUN_REF>6.9600000e+08</RSUN_REF>
        <RSUN_OBS>947.37917</RSUN_OBS>
        <GCIEC_X>nan</GCIEC_X>
        <GCIEC_Y>nan</GCIEC_Y>
        <GCIEC_Z>nan</GCIEC_Z>
        <HCIEC_X>nan</HCIEC_X>
        <HCIEC_Y>nan</HCIEC_Y>
        <HCIEC_Z>nan</HCIEC_Z>
        <OBS_VR>-1256.5236</OBS_VR>
        <OBS_VW>31812.788</OBS_VW>
        <OBS_VN>3667.9192</OBS_VN>
        <CRLN_OBS>151.31955</CRLN_OBS>
        <CRLT_OBS>-1.4993120</CRLT_OBS>
        <CAR_ROT>2110</CAR_ROT>
        <ROI_NWIN>-2147483648</ROI_NWIN>
        <ROI_SUM>-2147483648</ROI_SUM>
        <ROI_NAX1>-2147483648</ROI_NAX1>
        <ROI_NAY1>-2147483648</ROI_NAY1>
        <ROI_LLX1>-2147483648</ROI_LLX1>
        <ROI_LLY1>-2147483648</ROI_LLY1>
        <ROI_NAX2>-2147483648</ROI_NAX2>
        <ROI_NAY2>-2147483648</ROI_NAY2>
        <ROI_LLX2>-2147483648</ROI_LLX2>
        <ROI_LLY2>-2147483648</ROI_LLY2>
        <ISPSNAME>aia.lev0_isp_0011</ISPSNAME>
        <ISPPKTIM>2011-05-25T09:06:57.50Z</ISPPKTIM>
        <ISPPKTVN>001.197</ISPPKTVN>
        <AIVNMST>453</AIVNMST>
        <AIMGOTS>1685005655</AIMGOTS>
        <ASQHDR>2.1739378e+09</ASQHDR>
        <ASQTNUM>2</ASQTNUM>
        <ASQFSN>26454194</ASQFSN>
        <AIAHFSN>26454186</AIAHFSN>
        <AECDELAY>1535</AECDELAY>
        <AIAECTI>0</AIAECTI>
        <AIASEN>0</AIASEN>
        <AIFDBID>241</AIFDBID>
        <AIMGOTSS>5382</AIMGOTSS>
        <AIFCPS>10</AIFCPS>
        <AIFTSWTH>0</AIFTSWTH>
        <AIFRMLID>3025</AIFRMLID>
        <AIFTSID>40961</AIFTSID>
        <AIHISMXB>7</AIHISMXB>
        <AIHIS192>8386460</AIHIS192>
        <AIHIS348>8388608</AIHIS348>
        <AIHIS604>8388608</AIHIS604>
        <AIHIS860>8388608</AIHIS860>
        <AIFWEN>204</AIFWEN>
        <AIMGSHCE>2000</AIMGSHCE>
        <AECTYPE>2</AECTYPE>
        <AECMODE>ON</AECMODE>
        <AISTATE>CLOSED</AISTATE>
        <AIAECENF>1</AIAECENF>
        <AIFILTYP>0</AIFILTYP>
        <AIMSHOBC>54.787998</AIMSHOBC>
        <AIMSHOBE>68.779999</AIMSHOBE>
        <AIMSHOTC>40.528000</AIMSHOTC>
        <AIMSHOTE>25.516001</AIMSHOTE>
        <AIMSHCBC>2054.9199</AIMSHCBC>
        <AIMSHCBE>2068.8201</AIMSHCBE>
        <AIMSHCTC>2040.8040</AIMSHCTC>
        <AIMSHCTE>2025.8719</AIMSHCTE>
        <AICFGDL1>0</AICFGDL1>
        <AICFGDL2>137</AICFGDL2>
        <AICFGDL3>201</AICFGDL3>
        <AICFGDL4>236</AICFGDL4>
        <AIFOENFL>1</AIFOENFL>
        <AIMGFSN>5</AIMGFSN>
        <AIMGTYP>0</AIMGTYP>
        <AIAWVLEN>7</AIAWVLEN>
        <AIAGP1>0</AIAGP1>
        <AIAGP2>0</AIAGP2>
        <AIAGP3>0</AIAGP3>
        <AIAGP4>0</AIAGP4>
        <AIAGP5>0</AIAGP5>
        <AIAGP6>0</AIAGP6>
        <AIAGP7>0</AIAGP7>
        <AIAGP8>393</AIAGP8>
        <AIAGP9>457</AIAGP9>
        <AIAGP10>748</AIAGP10>
        <AGT1SVY>3</AGT1SVY>
        <AGT1SVZ>-7</AGT1SVZ>
        <AGT2SVY>2</AGT2SVY>
        <AGT2SVZ>-3</AGT2SVZ>
        <AGT3SVY>0</AGT3SVY>
        <AGT3SVZ>0</AGT3SVZ>
        <AGT4SVY>-2</AGT4SVY>
        <AGT4SVZ>2</AGT4SVZ>
        <AIMGSHEN>13</AIMGSHEN>
        <RECNUM>20306521</RECNUM>
        <BLANK>-32768</BLANK>
        <CHECKSUM>CAWfE5VZCAVdC3VZ</CHECKSUM>
        <DATASUM>368618671</DATASUM>
        <XCEN>0.00000</XCEN>
        <YCEN>0.00000</YCEN>
        <history>FITSHEAD2STRUCT run at: Wed May 25 02:27:23 2011
</history>
        <comment>FITS (Flexible Image Transport System) format is defined in 'Astronomy
and Astrophysics', volume 376, page 359; bibcode: 2001A&amp;A...376..359H
FITSHEAD2STRUCT
</comment>
    </fits>
    <helioviewer>
        <HV_ROTATION>0.00000</HV_ROTATION>
        <HV_JP2GEN_VERSION>0.8</HV_JP2GEN_VERSION>
        <HV_JP2GEN_BRANCH_REVISION>No valid revision number found. Bazaar not installed? Using HV_WRITTENBY manually included revision number: 84 [2011/01/10, https://launchpad.net/jp2gen] : % SPAWN: Error managing child process.:  No such file or directory</HV_JP2GEN_BRANCH_REVISION>
        <HV_HVS_DETAILS_FILENAME>hvs_version5.pro</HV_HVS_DETAILS_FILENAME>
        <HV_HVS_DETAILS_FILENAME_VERSION>5.0</HV_HVS_DETAILS_FILENAME_VERSION>
        <HV_COMMENT>JP2 file created locally at Lockheed LMSAL using hv_aia_list2jp2_gs2 at Wed May 25 02:27:24 2011.
Contact Helioviewer LMSAL Franchise (slater@lmsal.com) for more details/questions/comments regarding this JP2 file.
HVS (Helioviewer setup) file used to create this JP2 file: hvs_version5.pro (version 5.0).
FITS to JP2 source code provided by ESA/NASA Helioviewer Project [contact the Helioviewer Project at webmaster@helioviewer.ias.u-psud.fr][NASA-GSFC] and is available for download at https://launchpad.net/jp2gen.
Please contact the source code providers if you suspect an error in the source code.
Full source code for the entire Helioviewer Project can be found at https://github.com/Helioviewer-Project.</HV_COMMENT>
        <HV_SUPPORTED>TRUE</HV_SUPPORTED>
    </helioviewer>
</meta>

getJPX

GET /v2/getJPX/

Generate and (optionally) download a custom JPX movie of the specified datasource.

Request Parameters:
Parameter Required Type Example Description
startTime Required string 2014-01-01T00:00:00Z Date/Time for the beginning of the JPX movie data. ISO 8601 combined UTC date and time UTC format.
endTime Required string 2014-01-01T00:45:00Z Date/Time for the end of the JPX movie data. ISO 8601 combined UTC date and time UTC format.
sourceId Required number 14 Unique image datasource identifier.
linked Optional boolean true Generate a `linked` JPX file containing image pointers instead of data for each individual frame in the series. Currently, only JPX image series support this feature.
verbose Optional boolean false If set to `true,` the JSON response will include timestamps for each frame in the resulting movie and any warning messages associated with the request, in addition to the JPX movie file URI.
jpip Optional boolean false Optionally return a JPIP URI string instead of the binary data of the movie itself, or instead of an HTTP URI in the JSON response (if `verbose` is set to `true`).
cadence Optional number 12 The desired amount of time (in seconds) between each frame in the movie.

If no cadence is specified, the server will attempt to select an optimal cadence.

Example (A):

binary (JPX movie data)

By default, JPX binary movie data is returned. This assumes that the `jpip` and `verbose` parameters are omitted or set to `false`.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14

Example (B):

string (JPIP link to JPX movie)

If the `jpip` parameter is set to `true` (and the `verbose` parameter is omitted or set to `false`) the reponse is a a JPIP-protocol link to the JPX movie as a plain text string.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14&jpip=true
Example Response:
jpip://helioviewer-api.ias.u-psud.fr:8080/movies/SDO_AIA_335_F2014-01-01T00.00.00Z_T2014-01-01T00.45.00Z.jpx

Example (C):

JPIP JPX Movie (JSON)

If request parameters `jpip` and `verbose` are both set to `true`, the reponse is a JSON object containing a JPIP-protocol link to the JPX movie plus the timestamps of each frame a message if the value of `cadence` was overridden by the server.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14&jpip=true&verbose=true
Example Response:
{
  "frames": [
    1388534414,
    1388534450,
    1388534486,
    [...],
    1388537006,
    1388537042,
    1388537078
  ],
  "message": null,
  "uri": "jpip://helioviewer-api.ias.u-psud.fr:8080/movies/SDO_AIA_335_F2014-01-01T00.00.00Z_T2014-01-01T00.45.00Z.jpx"
}
Parameter Required Type Description
message Required string Message describing any values overrided by the server.
uri Required string JPIP protocol link to the JPX movie.
frames Required List[Number] UNIX timestamps of each frame.

Example (D):

HTTP JPX Movie (JSON)

If request parameters `verbose` is set to `true` and `jpip` is omitted or set to `false`, the reponse is a JSON object containing an HTTP-protocol link to the JPX movie plus the timestamps of each frame a message if the value of `cadence` was overridden by the server.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14&verbose=true
Example Response:
{
    "message": "Movie cadence has been changed to one image every 1284 seconds in order to avoid exceeding the maximum allowed number of frames (1000) between the requested start and end dates.",
    "uri": "https://helioviewer-api.ias.u-psud.fr/jp2/movies/SOHO_MDI_MDI_magnetogram_F2003-10-05T00.00.00Z_T2003-10-20T00.00.00ZB1L.jpx",
    "frames": [
        1065323703,
        1065329463,
        1065335223,
        [...],
        1066596483,
        1066602183,
        1066607943
    ]
}
Parameter Required Type Description
message Required string An informational message may be included (e.g. if the server overrode the `cadence` parameter).
uri Required string JPIP protocol link to the JPX movie.
frames Optional List[Number] UNIX timestamps of each frame.

getJPXClosestToMidPoint

GET /v2/getJPXClosestToMidPoint/

Generate and (optionally) download a custom JPX movie of the specified datasource with one frame per pair of startTimes/endTimes parameters.

Request Parameters:
Parameter Required Type Example Description
startTimes Required string 1306886400,1306887000,1306887600 Comma separated Date/Time timestamps for the beginning of the JPX movie data. Date and time in Unix timestamps format separated with commas.
endTimes Required string 1306886700,1306887300,1306887900 Comma separated Date/Time timestamps for the end of the JPX movie data. Date and time in Unix timestamps format separated with commas.
sourceId Required number 14 Unique image datasource identifier.
linked Optional boolean true Generate a `linked` JPX file containing image pointers instead of data for each individual frame in the series. Currently, only JPX image series support this feature.
verbose Optional boolean false If set to `true,` the JSON response will include timestamps for each frame in the resulting movie and any warning messages associated with the request, in addition to the JPX movie file URI.
jpip Optional boolean false Optionally return a JPIP URI string instead of the binary data of the movie itself, or instead of an HTTP URI in the JSON response (if `verbose` is set to `true`).

Example (A):

binary (JPX movie data)

By default, JPX binary movie data is returned. This assumes that the `jpip` and `verbose` parameters are omitted or set to `false`.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPXClosestToMidPoint/?startTimes=1306886400,1306887000,1306887600&endTimes=1306886700,1306887300,1306887900&sourceId=14

Example (B):

string (JPIP link to JPX movie)

If the `jpip` parameter is set to `true` (and the `verbose` parameter is omitted or set to `false`) the reponse is a a JPIP-protocol link to the JPX movie as a plain text string.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPXClosestToMidPoint/?startTimes=1306886400,1306887000,1306887600&endTimes=1306886700,1306887300,1306887900&sourceId=14&jpip=true
Example Response:
jpip://helioviewer-api.ias.u-psud.fr:8080/movies/SDO_AIA_335_F2011-06-01T00.00.00Z_T2011-06-01T00.25.00Z.jpx

Example (C):

JPIP JPX Movie (JSON)

If request parameters `jpip` and `verbose` are both set to `true`, the reponse is a JSON object containing a JPIP-protocol link to the JPX movie plus the timestamps of each frame a message if the value of `cadence` was overridden by the server.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPXClosestToMidPoint/?startTimes=1306886400,1306887000,1306887600&endTimes=1306886700,1306887300,1306887900&sourceId=14&jpip=true&verbose=true
Example Response:
{
  "frames": [
    1306886547,
    [...],
    1306887735
  ],
  "message": null,
  "uri": "jpip://helioviewer-api.ias.u-psud.fr:8080/movies/SDO_AIA_335_F2011-06-01T00.00.00Z_T2011-06-01T00.25.00Z.jpx"
}
Parameter Required Type Description
message Required string Message describing any values overrided by the server.
uri Required string JPIP protocol link to the JPX movie.
frames Required List[Number] UNIX timestamps of each frame.

Example (D):

HTTP JPX Movie (JSON)

If request parameters `verbose` is set to `true` and `jpip` is omitted or set to `false`, the reponse is a JSON object containing an HTTP-protocol link to the JPX movie plus the timestamps of each frame a message if the value of `cadence` was overridden by the server.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getJPXClosestToMidPoint/?startTimes=1306886400,1306887000,1306887600&endTimes=1306886700,1306887300,1306887900&sourceId=14&verbose=true
Example Response:
{
    "message": null,
    "uri": "https://helioviewer-api.ias.u-psud.fr/jp2/movies/SDO_AIA_335_F2011-06-01T00.00.00Z_T2011-06-01T00.25.00Z.jpx.jpx",
    "frames": [
    	1306886547,
	[...],
	1306887735
    ]
}
Parameter Required Type Description
message Required string An informational message may be included (e.g. if the server overrode the `cadence` parameter).
uri Required string JPIP protocol link to the JPX movie.
frames Optional List[Number] UNIX timestamps of each frame.

Movies

The movie APIs can be used to generate custom videos of up to three image datasource layers composited together. Solar feature/event markers pins, extended region polygons, associated text labels, and a size-of-earth scale indicator can optionally be overlayed onto a movie.

Movie generation is performed asynchronously due to the amount of resources required to complete each video. Movie requests are queued and then processed (in the order in which they are received) by one of several worker processes operating in parallel.

As a user of the API, begin by sending a 'queueMovie' request. If your request is successfully added to the queue, you will receive a response containing a unique movie identifier. This identifier can be used to monitor the status of your movie via 'getMovieStatus' and then download or play it (via 'downloadMovie' or 'playMovie') once its status marked as completed.

Movies may contain between 10 and 300 frames. The movie frames are chosen by matching the closest image available at each step within the specified range of dates, and are automatically selected by the API. The region to be included in the movie may be specified using either the top-left and bottom-right coordinates in arc-seconds, or a center point in arc-seconds and a width and height in pixels. See the Coordinates Appendix for more infomration about working with the coordinates used by Helioviewer.org.

queueMovie

GET /v2/queueMovie/

Create a custom movie by submitting a request to the movie generation queue. The response returned will provide you with a unique Movie ID that can be used to check on the status of your movie (via `getMovieStatus`) and to download your movie (via `downloadMovie`).

Request Parameters:
Parameter Required Type Example Description
startTime Required string 2010-03-01T12:12:12Z Desired date and time of the first frame of the movie. ISO 8601 combined UTC date and time UTC format.
endTime Required string 2010-03-04T12:12:12Z Desired date and time of the final frame of the movie. ISO 8601 combined UTC date and time UTC format.
layers Required string [3,1,100],[4,1,100]
or
[3,1,100,2,60,1,2010-03-01T12:12:12.000Z]
Image datasource layer(s) to include in the movie.
events Required string [AR,HMI_HARP;SPoCA,1],[CH,all,1] List feature/event types and FRMs to use to annoate the movie. Use the empty string to indicate that no feature/event annotations should be shown.
eventsLabels Required boolean false Optionally annotate each event marker with a text label.
imageScale Required number 21.04 Image scale in arcseconds per pixel.
format Optional string mp4 Movie format (`mp4`, `webm`, `flv`). Default value is `mp4`.
frameRate Optional string 15 Movie frames per second. 15 frames per second by default.
maxFrames Optional string 300 Maximum number of frames in the movie. May be capped by the server.
scale Optional boolean false Optionally overlay an image scale indicator.
scaleType Optional string earth Image scale indicator.
scaleX Optional number -1000 Horizontal offset of the image scale indicator in arcseconds with respect to the center of the Sun.
scaleY Optional number -500 Vertical offset of the image scale indicator in arcseconds with respect to the center of the Sun.
movieLength Optional number 4.3333 Movie length in seconds.
watermark Optional boolean true Optionally overlay a Helioviewer.org watermark image. Enabled by default.
width Optional string 1920 Width of the field of view in pixels. (Used in conjunction width `x0`,`y0`, and `height`).
height Optional string 1200 Height of the field of view in pixels. (Used in conjunction width `x0`,`y0`, and `width`).
x0 Optional string 0 The horizontal offset of the center of the field of view from the center of the Sun. Used in conjunction with `y0`, `width`, and `height`.
y0 Optional string 0 The vertical offset of the center of the field of view from the center of the Sun. Used in conjunction with `x0`, `width`, and `height`.
x1 Optional string -5000 The horizontal offset of the top-left corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `y1`, `x2`, and `y2`.
y1 Optional string -5000 The vertical offset of the top-left corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `x1`, `x2`, and `y2`.
x2 Optional string 5000 The horizontal offset of the bottom-right corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `x1`, `y1`, and `y2`.
y2 Optional string 5000 The vertical offset of the bottom-right corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `x1`, `y1`, and `x2`.
callback Optional string Wrap the response object in a function call of your choosing.
size Optional number 0 Scale video to preset size:
0 - Original size;
1 - 720p (1280 x 720, HD Ready);
2 - 1080p (1920 x 1080, Full HD);
3 - 1440p (2560 x 1440, Quad HD);
4 - 2160p (3840 x 2160, 4K or Ultra HD).
movieIcons Optional number 0 Display other user generated movies on the video.
followViewport Optional number 0 Rotate field of view of movie with Sun.
reqObservationDate Optional string 2017-08-30T14:45:53.000Z Viewport time. Used when 'followViewport' enabled to shift viewport area to correct coordinates.

Example (A):

Queued Movie (JSON)

JSON response to "queueMovie" and "reQueueMovie" API requests.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/queueMovie/?startTime=2010-03-01T12:12:12Z&endTime=2010-03-04T12:12:12Z&layers=[3,1,100],[4,1,100]&events=[AR,HMI_HARP;SPoCA,1],[CH,all,1]&eventsLabels=false&imageScale=21.04&x1=-5000&y1=-5000&x2=5000&y2=5000
Example Response:
{
  "id": "z6vX5",
  "eta": 376,
  "queue": 0,
  "token": "50e0d98f645b42d159ec1c8a1e15de3e"
}
Parameter Required Type Description
eta Required number Estimated time until movie generation will be completed in seconds
id Required string Unique movie identifier (e.g. "z6vX5")
queue Required number Position in movie generation queue
token Required string

reQueueMovie

GET /v2/reQueueMovie/

Re-generate a custom movie that is no longer cached on disk. Once the movie has been successfully queued for regeneration, the Movie ID can be used to check on the status of the movie (via `getMovieStatus`) and to download the movie (via `downloadMovie`).

Request Parameters:
Parameter Required Type Example Description
id Required string VXvX5 Unique movie identifier (provided by the response to a `queueMovie` request).

Example (A):

Queued Movie (JSON)

JSON response to "queueMovie" and "reQueueMovie" API requests.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/reQueueMovie/?id=VXvX5
Example Response:
{
    "id": "VXvX5",
    "eta": 285,
    "queue": 0,
    "token": "4673d6db4e2a3365ab361267f2a9a112"
}
Parameter Required Type Description
eta Required number Estimated time until movie generation will be completed in seconds
id Required string Unique movie identifier (e.g. "z6vX5")
queue Required number Position in movie generation queue
token Required string

getMovieStatus

GET /v2/getMovieStatus/

Request Parameters:
Parameter Required Type Example Description
id Required string VXvX5 Unique movie identifier (provided by the response to a `queueMovie` request).
format Required string mp4 Movie format (`mp4`, `webm`, or `flv`).
verbose Optional boolean true Optionally include extra metadata in the response.
callback Optional string Wrap the response object in a function call of your choosing.
token Optional string

Example (A):

Movie Status (JSON)

A JSON object containing metadata describing a user-generated movie, including its generation status (0=queued, 1=processing, 2=finished, 3=invalid).

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getMovieStatus/?id=VXvX5&format=mp4
Example Response:
{
  "frameRate": 15,
  "numFrames": 300,
  "startDate": "2014-02-03 20:26:16",
  "status": 2,
  "endDate": "2014-02-05 20:16:40",
  "width": 846,
  "height": 820,
  "title": "SDO AIA AIA 1600 (2014-02-03 20:26:16 - 20:16:40 UTC)",
  "thumbnails": {
    "icon": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-icon.png",
    "small": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-small.png",
    "medium": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-medium.png",
    "large": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-large.png",
    "full": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-full.png"
  },
  "url": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/2014_02_03_20_26_16_2014_02_05_20_16_40_.mp4",
  "statusLabel": "Completed"
}
Parameter Required Type Description
status Required number Movie generation status (0=queued, 1=processing, 2=finished, 3=invalid)

Example (B):

Movie Status Verbose (JSON)

A JSON object containing metadata describing a user-generated movie, including its generation status (0=queued, 1=processing, 2=finished, 3=invalid) and the parameters used to create it.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getMovieStatus/?id=VXvX5&format=webm&verbose=true&callback=callbackTest
Example Response:
callbackTest({
  "frameRate": 15,
  "numFrames": 300,
  "startDate": "2014-02-03 20:26:16",
  "status": 2,
  "endDate": "2014-02-05 20:16:40",
  "width": 846,
  "height": 820,
  "title": "SDO AIA AIA 1600 (2014-02-03 20:26:16 - 20:16:40 UTC)",
  "thumbnails": {
    "icon": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-icon.png",
    "small": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-small.png",
    "medium": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-medium.png",
    "large": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-large.png",
    "full": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/preview-full.png"
  },
  "url": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/2014_02_03_20_26_16_2014_02_05_20_16_40_.webm",
  "timestamp": "2014-02-05 20:25:55",
  "duration": 20,
  "imageScale": 2.42044,
  "layers": "[SDO,AIA,AIA,1600,1,100]",
  "events": "[AR,all,1],[CC,all,1],[CD,all,1],[CH,all,1],[CJ,all,1],[CE,all,1],[CR,all,1],[CW,all,1],[EF,all,1],[ER,all,1],[FI,all,1],[FA,all,1],[FE,all,1],[FL,all,1],[LP,all,1],[OS,all,1],[PG,all,1],[SG,all,1],[SP,all,1],[SS,all,1]",
  "x1": -1011.7442962,
  "y1": -980.2785645,
  "x2": 1035.9487052,
  "y2": 1004.4829735,
  "statusLabel": "Completed"
})
Parameter Required Type Description
endDate Optional string Date of final frame in movie (e.g. "2014-02-05 19:40:16")
frameRate Optional number Number of frames per second (e.g. 15)
height Optional number Pixel height of movie
numFrames Optional number Total number of frames (e.g. 300)
startDate Optional string Date of first frame in movie (e.g. "2014-02-05 19:40:16")
status Required number Movie generation status (0=queued, 1=processing, 2=finished, 3=invalid)
title Optional string Title of movie (e.g. "SDO AIA 1600 (2014-02-03 20:26:16 - 19:40:16 UTC)")
url Optional string Download URL for movie in specified format
width Optional number Pixel width of movie
duration Optional string Movie duration in seconds (e.g. 20)
events Optional string Solar Feature/Event layer(s) contained in movie
imageScale Optional number Image scale in arcseconds per pixel (e.g. 2.42044)
layers Optional string Image datasource layer(s) contained in movie
timestamp Optional string Timestamp (e.g. "2014-02-05 20:25:55")
x1 Optional number Arc seconds from Sun center (e.g. -1011.7442962)
y1 Optional number Arc seconds from Sun center (e.g. -980.2785645)
x2 Optional number Arc seconds from Sun center (e.g. 1035.9487052)
y2 Optional number Arc seconds from Sun center (e.g. 1004.4829735)

downloadMovie

GET /v2/downloadMovie/

Download a custom movie in one of three file formats.

Request Parameters:
Parameter Required Type Example Description
id Required string VXvX5 Unique movie identifier (provided by the response to a `queueMovie` request).
format Required string mp4 Movie Format (`mp4`, `webm`, or `flv`).
hq Optional boolean true Optionally download a higher-quality movie file (valid for .mp4 movies only, ignored otherwise).

Example (A):

binary (movie data)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/downloadMovie/?id=VXvX5&format=mp4

playMovie

GET /v2/playMovie/

Output an HTML web page with the requested movie embedded within.

Request Parameters:
Parameter Required Type Example Description
id Required string VXvX5 Unique movie identifier (provided by the response to a `queueMovie` request).
format Required string mp4 Movie format (mp4, webm, or flv).
hq Optional boolean true Optionally download a higher-quality movie file (valid for .mp4 movies only, ignored otherwise).
width Optional number 846 Width of embedded movie player in pixels. Defaults to the actual width of the movie itself.
height Required string 820 Height of embedded movie player in pixels. Defaults to the actual height of the movie itself.

Example (A):

string (HTML)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/playMovie/?id=VXvX5&format=mp4&hq=true
Example Response:
<!DOCTYPE html>
<html>
<head>
    <title>Helioviewer.org - 2014_02_03_20_26_16_2014_02_05_20_16_40_AIA_1600-hq.mp4</title>
    <script src="https://helioviewer.ias.u-psud.fr/lib/flowplayer/flowplayer-3.2.8.min.js"></script>
</head>
<body>
    <!-- Movie player -->
    <div href="https://helioviewer.ias.u-psud.fr/cache/movies/2014/02/05/VXvX5/2014_02_03_20_26_16_2014_02_05_20_16_40_AIA_1600-hq.mp4"
       style="display:block; width: 846px; height: 820px;"
       id="movie-player">
    </div>
    <br>
    <script language="javascript">
        flowplayer("movie-player", "https://helioviewer.ias.u-psud.fr/lib/flowplayer/flowplayer-3.2.8.swf", {
            clip: {
                autoBuffering: true,
                scaling: "fit"
            }
        });
    </script>
</body>
</html>

Screenshots

The screenshot APIs can be used to generate custom videos of up to three image datasource layers composited together. Solar feature/event markers pins, extended region polygons, associated text labels, and a size-of-earth scale indicator can optionally be overlayed onto a movie.

takeScreenshot

GET /v2/takeScreenshot/

Generate a custom screenshot.

You must specify values for either `x1`, `y1`, `x2`, and `y2`
or `x0`, `y0`, `width` and `height`.

By default, the response is a JSON object containing a unique screenshot identifier (`id`) that can be used to with the `downloadScreenshot` API endpoint.

Set the `display` parameter to `true` to directly return the screenshot as binary PNG image data in the response.

Please note that each request causes the server to generate a screenshot from scratch and is resource intensive. For performance reasons, you should cache the response if you simply intend to serve exactly the same screenshot to multiple users.

Request Parameters:
Parameter Required Type Example Description
date Required string 2014-01-01T23:59:59Z Desired date/time of the image. ISO 8601 combined UTC date and time UTC format.
imageScale Required number 2.4204409 Image scale in arcseconds per pixel.
layers Required string [3,1,100]
or
[3,1,100,2,60,1,2010-03-01T12:12:12.000Z]
Image datasource layer(s) to include in the screenshot.
events Optional string [AR,HMI_HARP;SPoCA,1],[CH,all,1] List feature/event types and FRMs to use to annoate the movie. Use the empty string to indicate that no feature/event annotations should be shown.
eventLabels Required boolean false Optionally annotate each event marker with a text label.
scale Optional boolean false Optionally overlay an image scale indicator.
scaleType Optional string earth Image scale indicator.
scaleX Optional number -1000 Horizontal offset of the image scale indicator in arcseconds with respect to the center of the Sun.
scaleY Optional number -500 Vertical offset of the image scale indicator in arcseconds with respect to the center of the Sun.
width Optional string 1920 Width of the field of view in pixels. (Used in conjunction width `x0`,`y0`, and `height`).
height Optional string 1200 Height of the field of view in pixels. (Used in conjunction width `x0`,`y0`, and `width`).
x0 Optional string 0 The horizontal offset of the center of the field of view from the center of the Sun. Used in conjunction with `y0`, `width`, and `height`.
y0 Optional string 0 The vertical offset of the center of the field of view from the center of the Sun. Used in conjunction with `x0`, `width`, and `height`.
x1 Optional string -5000 The horizontal offset of the top-left corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `y1`, `x2`, and `y2`.
y1 Optional string -5000 The vertical offset of the top-left corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `x1`, `x2`, and `y2`.
x2 Optional string 5000 The horizontal offset of the bottom-right corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `x1`, `y1`, and `y2`.
y2 Optional string 5000 The vertical offset of the bottom-right corner of the field of view with respect to the center of the Sun (in arcseconds). Used in conjunction with `x1`, `y1`, and `x2`.
display Optional boolean false Set to `true` to directly output binary PNG image data. Default is `false` (which outputs a JSON object).
watermark Optional boolean true Optionally overlay a watermark consisting of a Helioviewer logo and the datasource abbreviation(s) and timestamp(s) displayed in the screenshot.
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

Take Screenshot (JSON)

JSON response to "takeScreenshot" API requests. Assumes that the `display` parameter was omitted or set to `false`.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/takeScreenshot/?date=2014-01-01T23:59:59Z&imageScale=2.4204409&layers=[SDO,AIA,AIA,335,1,100]&events=[AR,HMI_HARP;SPoCA,1],[CH,all,1]&eventsLabels=false&x0=0&y0=0&width=1920&height=1200
Example Response:
{
    "id": 3285980
}
Parameter Required Type Description
id Required string Unique screenshot identifier (e.g. "3285980")

Example (B):

binary (PNG image data)

Set the `display` parameter to `true` to directly return binary PNG image data in the response.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/takeScreenshot/?imageScale=2.4204409&layers=[SDO,AIA,AIA,304,1,100]&events=&eventLabels=true&scale=true&scaleType=earth&scaleX=0&scaleY=0&date=2014-02-25T15:53:00.136Z&x1=-929.2475775696686&x2=106.70112763033143&y1=-970.7984919973343&y2=486.3069298026657&display=true&watermark=true&events=[CH,all,1]

downloadScreenshot

GET /v2/downloadScreenshot/

Download a custom screenshot (that was generated using the `takeScreenshot` API endpoint).

Request Parameters:
Parameter Required Type Example Description
id Required number 3240748 Unique screenshot identifier (provided by the response to a `takeScreenshot` request).

Example (A):

binary (PNG image data)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/downloadScreenshot/?id=3240748

Solar Features and Events

Helioviewer.org's solar features and events annotation layer is powered by the Heliophysics Events Knowledgebase (HEK) provided by the Lockheed Martin Solar & Astrophysics Laboratory (LMSAL).

Consult LMSAL's HEK API Documentation for more information.

YouTube

checkYouTubeAuth

GET /v2/checkYouTubeAuth/

Check to see if Helioveiwer.org is authorized to interact with a user's YouTube account via the current browser session.

Request Parameters:
Parameter Required Type Example Description
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

string (Boolean)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/checkYouTubeAuth/?
Example Response:
false

getYouTubeAuth

GET /v2/getYouTubeAuth/

Request authorization from the user via a Google / YouTube authorization flow to permit Helioviewer to upload videos on behalf of the user.

Request Parameters:
Parameter Required Type Example Description
id Required string VXvX5 Unique movie identifier (provided by the response to a `queueMovie` request).
title Required string AIA 4500 (2013-12-30 16:00:07 - 2014-01-27 15:00:07 UTC) Movie title.
description Required string This movie was produced by Helioviewer.org. See the original at https://helioviewer.ias.u-psud.fr/?movieId=z6vX5 or download a high-quality version from https://helioviewer-api.ias.u-psud.fr/v2/downloadMovie/?id=z6vX5&format=mp4&hq=true Move description.
tags Required string SDO,AIA,4500 Movie keyword tags (comma separated).
share Optional boolean true Optionally share the movie with the Helioviewer community.

Example (A):

string (HTTP Header redirect)

Redirect user to YouTube authorization page.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getYouTubeAuth/?id=VXvX5&title=AIA%204500%20(2013-12-30%2016%3A00%3A07%20-%202014-01-27%2015%3A00%3A07%20UTC)&description=This%20movie%20was%20produced%20by%20Helioviewer.org.%20See%20the%20original%20at%20http%3A%2F%2Fhelioviewer.ias.u-psud.fr%2F%3FmovieId%3Dz6vX5%20or%20download%20a%20high-quality%20version%20from%20http%3A%2F%2Fhelioviewer.ias.u-psud.fr%2Fapi%2F%3Faction%3DdownloadMovie%26id%3Dz6vX5%26format%3Dmp4%26hq%3Dtrue&tags=SDO%2CAIA%2C4500&share=true
Example Response:
Location: https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fhelioviewer.ias.u-psud.fr%2Fapi%2Findex.php%3Faction%3DuploadMovieToYouTube%26id%3DVXvX5%26html%3Dtrue&scope=http://gdata.youtube.com&secure=&session=1

uploadMovieToYouTube

GET /v2/uploadMovieToYouTube/

Share an existing user-generated movie to YouTube.

Request Parameters:
Parameter Required Type Example Description
id Required string y9tX5 Unique movie identifier (provided by the response to a `queueMovie` request).
title Optional string AIA 94 (2014-02-26 16:14:25 - 2014-02-27 15:37:49 UTC) Movie title.
description Optional string This movie was produced by Helioviewer.org. See the original at https://helioviewer.ias.u-psud.fr/?movieId=y9tX5 or download a high-quality version from https://helioviewer-api.ias.u-psud.fr/downloadMovie/?id=y9tX5&format=mp4&hq=true Move description.
tags Optional string SDO,AIA,94 Movie keyword tags (comma separated).
share Optional boolean true Optionally share the movie with the Helioviewer community.
html Optional boolean false Optionally output response as HTML instead of JSON.

Example (A):

YouTube Upload Status

JSON response to "uploadMovieToYouTube" API requests.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/uploadMovieToYouTube/?title=AIA+94+(2014-02-26+16%3A14%3A25+-+2014-02-27+15%3A37%3A49+UTC)&description=This+movie+was+produced+by+Helioviewer.org.+See+the+original+at+http%3A%2F%2Fhelioviewer.ias.u-psud.fr%2F%3FmovieId%3Dy9tX5+or+download+a+high-quality+version+from+http%3A%2F%2Fhelioviewer.ias.u-psud.fr%2Fapi%2F%3Faction%3DdownloadMovie%26id%3Dy9tX5%26format%3Dmp4%26hq%3Dtrue&tags=SDO%2CAIA%2C94&share=true&id=y9tX5
Example Response:
{
  "status": "upload in progress."
}
Parameter Required Type Description
status Required string YouTube upload status

getUserVideos

GET /v2/getUserVideos/

Get a listing (in descending time order) of the most recently user-generated movies that have been publicly shared to YouTube. Result set is limited to the value requested or default value of the `num` parameter (unless truncated when the date value of the `since` parameter is reached).

Request Parameters:
Parameter Required Type Example Description
num Optional number 10 Number of shared user-generated movies to include in the response. Default is 10.
since Optional string Optionally truncate result set if this date/time is reached. ISO 8601 combined UTC date and time UTC format.
force Optional boolean false Optionally bypass cache to retrieve most up-to-date data.
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

string (JSON)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getUserVideos/?num=2
Example Response:
[
    {
        "id": "J5tX5",
        "url": "http://www.youtube.com/watch?v=x2VYjI1Eo3M",
        "thumbnails": {
            "icon": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/J5tX5/preview-icon.png",
            "small": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/J5tX5/preview-small.png",
            "medium": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/J5tX5/preview-medium.png",
            "large": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/J5tX5/preview-large.png",
            "full": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/J5tX5/preview-full.png"
        },
        "published": "2014-02-27 14:56:00"
    },
    {
        "id": "L5tX5",
        "url": "http://www.youtube.com/watch?v=h6Y6vhpKPRk",
        "thumbnails": {
            "icon": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/L5tX5/preview-icon.png",
            "small": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/L5tX5/preview-small.png",
            "medium": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/L5tX5/preview-medium.png",
            "large": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/L5tX5/preview-large.png",
            "full": "https://helioviewer-api.ias.u-psud.fr/cache/movies/2014/02/27/L5tX5/preview-full.png"
        },
        "published": "2014-02-27 14:54:08"
    }
]

Official Clients

getClosestImage

GET /v2/getClosestImage/

Find the image data that is closest to the requested date/time. Return the associated metadata from the helioviewer database and the XML header of the JPEG2000 image file.

Request Parameters:
Parameter Required Type Example Description
date Required string 2014-01-01T23:59:59Z Desired date/time of the image. ISO 8601 combined UTC date and time UTC format.
callback Optional string Wrap the response object in a function call of your choosing.
sourceId Required number 14 Unique image datasource identifier.

Example (A):

Get Closest Image (JSON)

A JSON object containing metadata related to the JPEG2000 image representing the closest temporal match for the specified datasource.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getClosestImage/?date=2014-01-01T23:59:59Z&sourceId=14
Example Response:
{
    "id": 34205701,
    "date": "2014-01-02 00:00:02",
    "scale": 0.58996068317702,
    "width": 4096,
    "height": 4096,
    "refPixelX": 2048.5,
    "refPixelY": 2048.5,
    "sunCenterOffsetParams": [],
    "layeringOrder": 1
}
Parameter Required Type Description
id Required number Unique image identifier (e.g. 34205701)
date Required string Date/time of selected image.
scale Required number Image scale in arc-seconds per pixel.
width Required number Width in pixels of source JPEG2000 image data.
height Required number Height in pixels of source JPEG2000 image data.
refPixelX Required number X-coordinate of reference pixel.
refPixelY Required number Y-coordinate of reference pixel.
sunCenterOffsetParams Required string FITS header positioning metadata.
layeringOrder Required number Relative order for image layer compositing.

getDataSources

GET /v2/getDataSources/

Return a hierarchial list of the available datasources.

Optional parameter `verbose` is exists for compatability with JHelioviewer. It outputs the hierarchical list in an alternative format and limits the list of available datasources to a known set (SDO and SOHO). JHelioviewer may not operate properly if new datasources appear in the feed without a client-side updgrade. To explicitly include new sources, use the optional `enable` parameter.

Request Parameters:
Parameter Required Type Example Description
verbose Optional boolean false
enable Optional string [Yohkoh,STEREO_A,STEREO_B] Comma-separated list of observatories to enable.
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

Get Data Sources (JSON)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getDataSources/?
Example Response:
{
  "Hinode": {
    "XRT": {
      "Al_med": {
        "Al_mesh": {
          "end": "2007-05-09 09:50:35",
          "layeringOrder": 1,
          "nickname": "XRT Al_med/Al_mesh",
          "sourceId": 38,
          "start": "2006-11-02 10:25:55",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_mesh"
            }
          ]
        },
        "Al_thick": {
          "end": "2013-04-12 22:30:11",
          "layeringOrder": 1,
          "nickname": "XRT Al_med/Al_thick",
          "sourceId": 39,
          "start": "2006-11-02 10:29:19",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_thick"
            }
          ]
        },
        "Be_thick": {
          "end": "2013-10-10 06:13:06",
          "layeringOrder": 1,
          "nickname": "XRT Al_med/Be_thick",
          "sourceId": 40,
          "start": "2006-11-02 10:30:27",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Be_thick"
            }
          ]
        },
        "Gband": {
          "end": "2007-04-12 09:21:51",
          "layeringOrder": 1,
          "nickname": "XRT Al_med/Gband",
          "sourceId": 41,
          "start": "2006-10-27 03:14:51",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Gband"
            }
          ]
        },
        "Open": {
          "end": "2013-10-16 15:14:57",
          "layeringOrder": 1,
          "nickname": "XRT Al_med/Open",
          "sourceId": 42,
          "start": "2006-11-02 10:25:05",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Open"
            }
          ]
        },
        "Ti_poly": {
          "end": "2010-11-18 14:09:50",
          "layeringOrder": 1,
          "nickname": "XRT Al_med/Ti_poly",
          "sourceId": 43,
          "start": "2006-11-02 10:27:03",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Ti_poly"
            }
          ]
        }
      },
      "Al_poly": {
        "Al_mesh": {
          "end": "2007-12-23 10:04:47",
          "layeringOrder": 1,
          "nickname": "XRT Al_poly/Al_mesh",
          "sourceId": 44,
          "start": "2006-11-02 10:20:35",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_mesh"
            }
          ]
        },
        "Al_thick": {
          "end": "2013-04-30 02:19:57",
          "layeringOrder": 1,
          "nickname": "XRT Al_poly/Al_thick",
          "sourceId": 45,
          "start": "2006-11-02 10:21:13",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_thick"
            }
          ]
        },
        "Be_thick": {
          "end": "2013-04-12 22:29:33",
          "layeringOrder": 1,
          "nickname": "XRT Al_poly/Be_thick",
          "sourceId": 46,
          "start": "2006-11-02 10:21:17",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Be_thick"
            }
          ]
        },
        "Gband": {
          "end": "2007-04-20 09:25:05",
          "layeringOrder": 1,
          "nickname": "XRT Al_poly/Gband",
          "sourceId": 47,
          "start": "2006-10-27 02:16:32",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Gband"
            }
          ]
        },
        "Open": {
          "end": "2013-10-22 08:28:16",
          "layeringOrder": 1,
          "nickname": "XRT Al_poly/Open",
          "sourceId": 48,
          "start": "2006-10-23 10:37:13",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Open"
            }
          ]
        },
        "Ti_poly": {
          "end": "2013-10-19 14:59:37",
          "layeringOrder": 1,
          "nickname": "XRT Al_poly/Ti_poly",
          "sourceId": 49,
          "start": "2006-11-02 10:21:04",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Al_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Ti_poly"
            }
          ]
        }
      },
      "Be_med": {
        "Al_mesh": {
          "end": "2007-05-09 09:50:19",
          "layeringOrder": 1,
          "nickname": "XRT Be_med/Al_mesh",
          "sourceId": 50,
          "start": "2006-11-02 10:23:14",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_mesh"
            }
          ]
        },
        "Al_thick": {
          "end": "2006-11-02 10:24:02",
          "layeringOrder": 1,
          "nickname": "XRT Be_med/Al_thick",
          "sourceId": 51,
          "start": "2006-11-02 10:24:02",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_thick"
            }
          ]
        },
        "Be_thick": {
          "end": "2006-11-02 10:24:28",
          "layeringOrder": 1,
          "nickname": "XRT Be_med/Be_thick",
          "sourceId": 52,
          "start": "2006-11-02 10:24:28",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Be_thick"
            }
          ]
        },
        "Gband": {
          "end": "2007-04-20 07:51:35",
          "layeringOrder": 1,
          "nickname": "XRT Be_med/Gband",
          "sourceId": 53,
          "start": "2006-10-27 03:03:11",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Gband"
            }
          ]
        },
        "Open": {
          "end": "2013-10-21 17:14:06",
          "layeringOrder": 1,
          "nickname": "XRT Be_med/Open",
          "sourceId": 54,
          "start": "2006-11-02 10:23:05",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Open"
            }
          ]
        },
        "Ti_poly": {
          "end": "2006-11-02 10:23:26",
          "layeringOrder": 1,
          "nickname": "XRT Be_med/Ti_poly",
          "sourceId": 55,
          "start": "2006-11-02 10:23:26",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_med"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Ti_poly"
            }
          ]
        }
      },
      "Be_thin": {
        "Al_mesh": {
          "end": "2007-05-09 09:50:03",
          "layeringOrder": 1,
          "nickname": "XRT Be_thin/Al_mesh",
          "sourceId": 56,
          "start": "2006-11-02 10:22:19",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_thin"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_mesh"
            }
          ]
        },
        "Al_thick": {
          "end": "2006-11-02 10:22:35",
          "layeringOrder": 1,
          "nickname": "XRT Be_thin/Al_thick",
          "sourceId": 57,
          "start": "2006-11-02 10:22:35",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_thin"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_thick"
            }
          ]
        },
        "Be_thick": {
          "end": "2006-11-02 10:22:42",
          "layeringOrder": 1,
          "nickname": "XRT Be_thin/Be_thick",
          "sourceId": 58,
          "start": "2006-11-02 10:22:42",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_thin"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Be_thick"
            }
          ]
        },
        "Gband": {
          "end": "2007-04-20 03:13:11",
          "layeringOrder": 1,
          "nickname": "XRT Be_thin/Gband",
          "sourceId": 59,
          "start": "2006-10-27 02:51:31",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_thin"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Gband"
            }
          ]
        },
        "Open": {
          "end": "2013-10-22 08:28:01",
          "layeringOrder": 1,
          "nickname": "XRT Be_thin/Open",
          "sourceId": 60,
          "start": "2006-11-02 10:22:14",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_thin"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Open"
            }
          ]
        },
        "Ti_poly": {
          "end": "2006-11-02 10:22:24",
          "layeringOrder": 1,
          "nickname": "XRT Be_thin/Ti_poly",
          "sourceId": 61,
          "start": "2006-11-02 10:22:24",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Be_thin"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Ti_poly"
            }
          ]
        }
      },
      "C_poly": {
        "Al_mesh": {
          "end": "2007-05-09 09:49:47",
          "layeringOrder": 1,
          "nickname": "XRT C_poly/Al_mesh",
          "sourceId": 62,
          "start": "2006-11-02 10:21:26",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "C_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_mesh"
            }
          ]
        },
        "Al_thick": {
          "end": "2013-04-12 22:29:49",
          "layeringOrder": 1,
          "nickname": "XRT C_poly/Al_thick",
          "sourceId": 63,
          "start": "2006-11-02 10:22:04",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "C_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_thick"
            }
          ]
        },
        "Be_thick": {
          "end": "2006-11-02 10:22:08",
          "layeringOrder": 1,
          "nickname": "XRT C_poly/Be_thick",
          "sourceId": 64,
          "start": "2006-11-02 10:22:08",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "C_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Be_thick"
            }
          ]
        },
        "Gband": {
          "end": "2006-11-02 10:21:34",
          "layeringOrder": 1,
          "nickname": "XRT C_poly/Gband",
          "sourceId": 65,
          "start": "2006-10-27 02:39:52",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "C_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Gband"
            }
          ]
        },
        "Open": {
          "end": "2013-10-19 14:59:17",
          "layeringOrder": 1,
          "nickname": "XRT C_poly/Open",
          "sourceId": 66,
          "start": "2006-11-02 10:21:22",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "C_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Open"
            }
          ]
        },
        "Ti_poly": {
          "end": "2012-11-03 19:30:16",
          "layeringOrder": 1,
          "nickname": "XRT C_poly/Ti_poly",
          "sourceId": 67,
          "start": "2006-11-02 10:21:30",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "C_poly"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Ti_poly"
            }
          ]
        }
      },
      "Mispositioned": {
        "Mispositioned": {
          "end": "2006-12-07 09:13:47",
          "layeringOrder": 1,
          "nickname": "XRT Mispositioned/Mispositioned",
          "sourceId": 68,
          "start": "2006-12-02 09:22:05",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Mispositioned"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Mispositioned"
            }
          ]
        }
      },
      "Open": {
        "Al_mesh": {
          "end": "2013-10-22 06:33:47",
          "layeringOrder": 1,
          "nickname": "XRT Open/Al_mesh",
          "sourceId": 69,
          "start": "2006-10-26 22:55:51",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Open"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_mesh"
            }
          ]
        },
        "Al_thick": {
          "end": "2013-10-22 08:03:58",
          "layeringOrder": 1,
          "nickname": "XRT Open/Al_thick",
          "sourceId": 70,
          "start": "2006-10-27 04:10:52",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Open"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Al_thick"
            }
          ]
        },
        "Be_thick": {
          "end": "2013-10-22 00:25:13",
          "layeringOrder": 1,
          "nickname": "XRT Open/Be_thick",
          "sourceId": 71,
          "start": "2006-10-27 04:22:32",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Open"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Be_thick"
            }
          ]
        },
        "Gband": {
          "end": "2013-10-22 08:00:58",
          "layeringOrder": 1,
          "nickname": "XRT Open/Gband",
          "sourceId": 72,
          "start": "2006-10-24 09:35:12",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Open"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Gband"
            }
          ]
        },
        "Open": {
          "end": "2012-06-19 11:52:20",
          "layeringOrder": 1,
          "nickname": "XRT Open/Open",
          "sourceId": 73,
          "start": "2006-12-05 08:04:05",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Open"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Open"
            }
          ]
        },
        "Ti_poly": {
          "end": "2013-10-22 08:28:11",
          "layeringOrder": 1,
          "nickname": "XRT Open/Ti_poly",
          "sourceId": 74,
          "start": "2006-10-26 22:56:37",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "Hinode"
            },
            {
              "label": "Instrument",
              "name": "XRT"
            },
            {
              "label": "Filter Wheel 1",
              "name": "Open"
            },
            {
              "label": "Filter Wheel 2",
              "name": "Ti_poly"
            }
          ]
        }
      }
    }
  },
  "PROBA2": {
    "SWAP": {
      "174": {
        "end": "2013-12-05 10:56:16",
        "layeringOrder": 1,
        "nickname": "SWAP 174",
        "sourceId": 32,
        "start": "2010-01-04 17:00:50",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "PROBA2"
          },
          {
            "label": "Instrument",
            "name": "SWAP"
          },
          {
            "label": "Measurement",
            "name": "174"
          }
        ]
      }
    }
  },
  "SDO": {
    "AIA": {
      "131": {
        "end": "2013-12-05 13:43:44",
        "layeringOrder": 1,
        "nickname": "AIA 131",
        "sourceId": 9,
        "start": "2010-06-02 00:05:34",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "131"
          }
        ]
      },
      "1600": {
        "end": "2013-12-05 13:49:28",
        "layeringOrder": 1,
        "nickname": "AIA 1600",
        "sourceId": 15,
        "start": "2010-06-02 00:05:30",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "1600"
          }
        ]
      },
      "1700": {
        "end": "2013-12-05 13:50:30",
        "layeringOrder": 1,
        "nickname": "AIA 1700",
        "sourceId": 16,
        "start": "2010-06-23 00:00:31",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "1700"
          }
        ]
      },
      "171": {
        "end": "2013-12-05 13:44:47",
        "layeringOrder": 1,
        "nickname": "AIA 171",
        "sourceId": 10,
        "start": "2010-06-02 00:05:36",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "171"
          }
        ]
      },
      "193": {
        "end": "2013-12-05 13:45:42",
        "layeringOrder": 1,
        "nickname": "AIA 193",
        "sourceId": 11,
        "start": "2010-06-02 00:05:31",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "193"
          }
        ]
      },
      "211": {
        "end": "2013-12-05 13:46:35",
        "layeringOrder": 1,
        "nickname": "AIA 211",
        "sourceId": 12,
        "start": "2010-06-02 00:05:37",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "211"
          }
        ]
      },
      "304": {
        "end": "2013-12-05 13:48:43",
        "layeringOrder": 1,
        "nickname": "AIA 304",
        "sourceId": 13,
        "start": "2010-06-02 00:05:39",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "304"
          }
        ]
      },
      "335": {
        "end": "2013-12-05 13:49:38",
        "layeringOrder": 1,
        "nickname": "AIA 335",
        "sourceId": 14,
        "start": "2010-06-02 00:05:28",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "335"
          }
        ]
      },
      "4500": {
        "end": "2013-12-05 13:00:07",
        "layeringOrder": 1,
        "nickname": "AIA 4500",
        "sourceId": 17,
        "start": "2010-06-02 00:05:44",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "4500"
          }
        ]
      },
      "94": {
        "end": "2013-12-05 13:43:01",
        "layeringOrder": 1,
        "nickname": "AIA 94",
        "sourceId": 8,
        "start": "2010-06-02 00:05:33",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "AIA"
          },
          {
            "label": "Measurement",
            "name": "94"
          }
        ]
      }
    },
    "HMI": {
      "continuum": {
        "end": "2013-12-05 11:20:40",
        "layeringOrder": 1,
        "nickname": "HMI Int",
        "sourceId": 18,
        "start": "2010-12-06 06:53:41",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "HMI"
          },
          {
            "label": "Measurement",
            "name": "continuum"
          }
        ]
      },
      "magnetogram": {
        "end": "2013-12-05 12:18:25",
        "layeringOrder": 1,
        "nickname": "HMI Mag",
        "sourceId": 19,
        "start": "2010-12-06 06:53:41",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SDO"
          },
          {
            "label": "Instrument",
            "name": "HMI"
          },
          {
            "label": "Measurement",
            "name": "magnetogram"
          }
        ]
      }
    }
  },
  "SOHO": {
    "EIT": {
      "171": {
        "end": "2013-08-07 13:00:13",
        "layeringOrder": 1,
        "nickname": "EIT 171",
        "sourceId": 0,
        "start": "1996-01-15 21:39:21",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SOHO"
          },
          {
            "label": "Instrument",
            "name": "EIT"
          },
          {
            "label": "Measurement",
            "name": "171"
          }
        ]
      },
      "195": {
        "end": "2013-08-07 01:13:50",
        "layeringOrder": 1,
        "nickname": "EIT 195",
        "sourceId": 1,
        "start": "1996-01-15 20:51:47",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SOHO"
          },
          {
            "label": "Instrument",
            "name": "EIT"
          },
          {
            "label": "Measurement",
            "name": "195"
          }
        ]
      },
      "284": {
        "end": "2013-08-07 13:06:09",
        "layeringOrder": 1,
        "nickname": "EIT 284",
        "sourceId": 2,
        "start": "1996-01-15 21:04:17",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SOHO"
          },
          {
            "label": "Instrument",
            "name": "EIT"
          },
          {
            "label": "Measurement",
            "name": "284"
          }
        ]
      },
      "304": {
        "end": "2013-08-07 01:19:42",
        "layeringOrder": 1,
        "nickname": "EIT 304",
        "sourceId": 3,
        "start": "1996-01-15 22:00:17",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SOHO"
          },
          {
            "label": "Instrument",
            "name": "EIT"
          },
          {
            "label": "Measurement",
            "name": "304"
          }
        ]
      }
    },
    "LASCO": {
      "C2": {
        "white-light": {
          "end": "2013-12-05 07:12:05",
          "layeringOrder": 2,
          "nickname": "LASCO C2",
          "sourceId": 4,
          "start": "1996-04-01 01:12:15",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "SOHO"
            },
            {
              "label": "Instrument",
              "name": "LASCO"
            },
            {
              "label": "Detector",
              "name": "C2"
            },
            {
              "label": "Measurement",
              "name": "white-light"
            }
          ]
        }
      },
      "C3": {
        "white-light": {
          "end": "2013-12-05 07:18:05",
          "layeringOrder": 3,
          "nickname": "LASCO C3",
          "sourceId": 5,
          "start": "1996-04-14 09:48:18",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "SOHO"
            },
            {
              "label": "Instrument",
              "name": "LASCO"
            },
            {
              "label": "Detector",
              "name": "C3"
            },
            {
              "label": "Measurement",
              "name": "white-light"
            }
          ]
        }
      }
    },
    "MDI": {
      "continuum": {
        "end": "2011-01-11 22:39:00",
        "layeringOrder": 1,
        "nickname": "MDI Int",
        "sourceId": 7,
        "start": "1996-05-19 19:08:35",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SOHO"
          },
          {
            "label": "Instrument",
            "name": "MDI"
          },
          {
            "label": "Measurement",
            "name": "continuum"
          }
        ]
      },
      "magnetogram": {
        "end": "2011-01-11 22:39:00",
        "layeringOrder": 1,
        "nickname": "MDI Mag",
        "sourceId": 6,
        "start": "1996-04-21 00:30:04",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "SOHO"
          },
          {
            "label": "Instrument",
            "name": "MDI"
          },
          {
            "label": "Measurement",
            "name": "magnetogram"
          }
        ]
      }
    }
  },
  "STEREO_A": {
    "SECCHI": {
      "COR1": {
        "white-light": {
          "end": "2013-12-01 09:50:00",
          "layeringOrder": 2,
          "nickname": "COR1-A",
          "sourceId": 28,
          "start": "2010-01-01 00:05:00",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_A"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "COR1"
            },
            {
              "label": "Measurement",
              "name": "white-light"
            }
          ]
        }
      },
      "COR2": {
        "white-light": {
          "end": "2013-11-30 23:54:00",
          "layeringOrder": 3,
          "nickname": "COR2-A",
          "sourceId": 29,
          "start": "2010-01-01 00:24:00",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_A"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "COR2"
            },
            {
              "label": "Measurement",
              "name": "white-light"
            }
          ]
        }
      },
      "EUVI": {
        "171": {
          "end": "2013-11-30 22:14:00",
          "layeringOrder": 1,
          "nickname": "EUVI-A 171",
          "sourceId": 20,
          "start": "2010-01-01 00:14:00",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_A"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "171"
            }
          ]
        },
        "195": {
          "end": "2013-11-30 23:55:30",
          "layeringOrder": 1,
          "nickname": "EUVI-A 195",
          "sourceId": 21,
          "start": "2010-01-01 00:05:30",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_A"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "195"
            }
          ]
        },
        "284": {
          "end": "2013-11-30 22:16:30",
          "layeringOrder": 1,
          "nickname": "EUVI-A 284",
          "sourceId": 22,
          "start": "2010-01-01 00:16:30",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_A"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "284"
            }
          ]
        },
        "304": {
          "end": "2013-11-30 23:56:15",
          "layeringOrder": 1,
          "nickname": "EUVI-A 304",
          "sourceId": 23,
          "start": "2010-01-01 00:06:15",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_A"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "304"
            }
          ]
        }
      }
    }
  },
  "STEREO_B": {
    "SECCHI": {
      "COR1": {
        "white-light": {
          "end": "2013-12-01 03:51:00",
          "layeringOrder": 2,
          "nickname": "COR1-B",
          "sourceId": 30,
          "start": "2010-01-01 00:05:37",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_B"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "COR1"
            },
            {
              "label": "Measurement",
              "name": "white-light"
            }
          ]
        }
      },
      "COR2": {
        "white-light": {
          "end": "2013-11-30 23:55:00",
          "layeringOrder": 3,
          "nickname": "COR2-B",
          "sourceId": 31,
          "start": "2010-01-01 00:24:37",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_B"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "COR2"
            },
            {
              "label": "Measurement",
              "name": "white-light"
            }
          ]
        }
      },
      "EUVI": {
        "171": {
          "end": "2013-11-30 22:15:00",
          "layeringOrder": 1,
          "nickname": "EUVI-B 171",
          "sourceId": 24,
          "start": "2010-01-01 00:07:52",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_B"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "171"
            }
          ]
        },
        "195": {
          "end": "2013-11-30 23:56:30",
          "layeringOrder": 1,
          "nickname": "EUVI-B 195",
          "sourceId": 25,
          "start": "2010-01-01 00:06:07",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_B"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "195"
            }
          ]
        },
        "284": {
          "end": "2013-11-30 22:17:30",
          "layeringOrder": 1,
          "nickname": "EUVI-B 284",
          "sourceId": 26,
          "start": "2010-01-01 00:07:07",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_B"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "284"
            }
          ]
        },
        "304": {
          "end": "2013-11-30 23:57:15",
          "layeringOrder": 1,
          "nickname": "EUVI-B 304",
          "sourceId": 27,
          "start": "2010-01-01 00:06:52",
          "uiLabels": [
            {
              "label": "Observatory",
              "name": "STEREO_B"
            },
            {
              "label": "Instrument",
              "name": "SECCHI"
            },
            {
              "label": "Detector",
              "name": "EUVI"
            },
            {
              "label": "Measurement",
              "name": "304"
            }
          ]
        }
      }
    }
  },
  "TRACE": {
    "1216": {
      "end": "2008-10-03 00:20:37",
      "layeringOrder": 1,
      "nickname": "TRACE 1216",
      "sourceId": 78,
      "start": "2008-09-19 01:04:32",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "1216"
        }
      ]
    },
    "1550": {
      "end": "2008-10-03 00:20:19",
      "layeringOrder": 1,
      "nickname": "TRACE 1550",
      "sourceId": 79,
      "start": "2008-09-18 00:45:30",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "1550"
        }
      ]
    },
    "1600": {
      "end": "2008-10-06 22:08:53",
      "layeringOrder": 1,
      "nickname": "TRACE 1600",
      "sourceId": 80,
      "start": "2008-09-18 10:52:31",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "1600"
        }
      ]
    },
    "1700": {
      "end": "2008-10-03 00:20:26",
      "layeringOrder": 1,
      "nickname": "TRACE 1700",
      "sourceId": 81,
      "start": "2008-09-19 01:04:21",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "1700"
        }
      ]
    },
    "171": {
      "end": "2008-10-06 22:55:32",
      "layeringOrder": 1,
      "nickname": "TRACE 171",
      "sourceId": 75,
      "start": "2008-09-18 00:00:54",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "171"
        }
      ]
    },
    "195": {
      "end": "2008-10-06 06:59:56",
      "layeringOrder": 1,
      "nickname": "TRACE 195",
      "sourceId": 76,
      "start": "2008-09-18 00:38:24",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "195"
        }
      ]
    },
    "284": {
      "end": "2008-09-24 19:25:02",
      "layeringOrder": 1,
      "nickname": "TRACE 284",
      "sourceId": 77,
      "start": "2008-09-18 10:51:36",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "284"
        }
      ]
    },
    "white-light": {
      "end": "2008-10-06 22:54:05",
      "layeringOrder": 1,
      "nickname": "TRACE white-light",
      "sourceId": 82,
      "start": "2008-09-19 01:04:24",
      "uiLabels": [
        {
          "label": "Observatory",
          "name": "TRACE"
        },
        {
          "label": "Measurement",
          "name": "white-light"
        }
      ]
    }
  },
  "Yohkoh": {
    "SXT": {
      "AlMgMn": {
        "end": "2001-12-14 20:58:33",
        "layeringOrder": 1,
        "nickname": "SXT AlMgMn",
        "sourceId": 33,
        "start": "1991-09-13 21:53:40",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "Yohkoh"
          },
          {
            "label": "Instrument",
            "name": "SXT"
          },
          {
            "label": "Filter",
            "name": "AlMgMn"
          }
        ]
      },
      "thin-Al": {
        "end": "2001-12-14 08:20:43",
        "layeringOrder": 1,
        "nickname": "SXT thin-Al",
        "sourceId": 34,
        "start": "1991-09-13 21:49:24",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "Yohkoh"
          },
          {
            "label": "Instrument",
            "name": "SXT"
          },
          {
            "label": "Measurement",
            "name": "thin-Al"
          }
        ]
      },
      "white-light": {
        "end": "1992-11-13 17:05:32",
        "layeringOrder": 1,
        "nickname": "SXT white-light",
        "sourceId": 35,
        "start": "1991-09-11 23:02:54",
        "uiLabels": [
          {
            "label": "Observatory",
            "name": "Yohkoh"
          },
          {
            "label": "Instrument",
            "name": "SXT"
          },
          {
            "label": "Measurement",
            "name": "white-light"
          }
        ]
      }
    }
  }
}

Example (B):

Get Data Sources Verbose (JSON)

Output the hierarchical list of available datasources in a format that is compatible with the JHelioviewer desktop client.

Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getDataSources/?verbose=true&enable=[Yohkoh,STEREO_A,STEREO_B]
Example Response:
{
  "SDO": {
    "children": {
      "AIA": {
        "children": {
          "131": {
            "description": "131 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:43:44",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "131 Å",
            "nickname": "AIA 131",
            "sourceId": 9,
            "start": "2010-06-02 00:05:34"
          },
          "1600": {
            "description": "1600 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:49:28",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "1600 Å",
            "nickname": "AIA 1600",
            "sourceId": 15,
            "start": "2010-06-02 00:05:30"
          },
          "1700": {
            "description": "1700 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:50:30",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "1700 Å",
            "nickname": "AIA 1700",
            "sourceId": 16,
            "start": "2010-06-23 00:00:31"
          },
          "171": {
            "default": true,
            "description": "171 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:44:47",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "171 Å",
            "nickname": "AIA 171",
            "sourceId": 10,
            "start": "2010-06-02 00:05:36"
          },
          "193": {
            "description": "193 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:45:42",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "193 Å",
            "nickname": "AIA 193",
            "sourceId": 11,
            "start": "2010-06-02 00:05:31"
          },
          "211": {
            "description": "211 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:46:35",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "211 Å",
            "nickname": "AIA 211",
            "sourceId": 12,
            "start": "2010-06-02 00:05:37"
          },
          "304": {
            "description": "304 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:48:43",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "304 Å",
            "nickname": "AIA 304",
            "sourceId": 13,
            "start": "2010-06-02 00:05:39"
          },
          "335": {
            "description": "335 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:49:38",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "335 Å",
            "nickname": "AIA 335",
            "sourceId": 14,
            "start": "2010-06-02 00:05:28"
          },
          "4500": {
            "description": "4500 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:00:07",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "4500 Å",
            "nickname": "AIA 4500",
            "sourceId": 17,
            "start": "2010-06-02 00:05:44"
          },
          "94": {
            "description": "94 Ångström extreme ultraviolet",
            "end": "2013-12-05 13:43:01",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "94 Å",
            "nickname": "AIA 94",
            "sourceId": 8,
            "start": "2010-06-02 00:05:33"
          }
        },
        "default": true,
        "description": "Atmospheric Imaging Assembly",
        "label": "Instrument",
        "name": "AIA"
      },
      "HMI": {
        "children": {
          "continuum": {
            "description": "Intensitygram",
            "end": "2013-12-05 11:20:40",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "Continuum",
            "nickname": "HMI Int",
            "sourceId": 18,
            "start": "2010-12-06 06:53:41"
          },
          "magnetogram": {
            "description": "Magnetogram",
            "end": "2013-12-05 12:18:25",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "Magnetogram",
            "nickname": "HMI Mag",
            "sourceId": 19,
            "start": "2010-12-06 06:53:41"
          }
        },
        "description": "Helioseismic and Magnetic Imager",
        "label": "Instrument",
        "name": "HMI"
      }
    },
    "default": true,
    "description": "Solar Dynamics Observatory",
    "label": "Observatory",
    "name": "SDO"
  },
  "SOHO": {
    "children": {
      "EIT": {
        "children": {
          "171": {
            "description": "171 Ångström extreme ultraviolet",
            "end": "2013-08-07 13:00:13",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "171 Å",
            "nickname": "EIT 171",
            "sourceId": 0,
            "start": "1996-01-15 21:39:21"
          },
          "195": {
            "description": "195 Ångström extreme ultraviolet",
            "end": "2013-08-07 01:13:50",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "195 Å",
            "nickname": "EIT 195",
            "sourceId": 1,
            "start": "1996-01-15 20:51:47"
          },
          "284": {
            "description": "284 Ångström extreme ultraviolet",
            "end": "2013-08-07 13:06:09",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "284 Å",
            "nickname": "EIT 284",
            "sourceId": 2,
            "start": "1996-01-15 21:04:17"
          },
          "304": {
            "description": "304 Ångström extreme ultraviolet",
            "end": "2013-08-07 01:19:42",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "304 Å",
            "nickname": "EIT 304",
            "sourceId": 3,
            "start": "1996-01-15 22:00:17"
          }
        },
        "description": "Extreme ultraviolet Imaging Telescope",
        "label": "Instrument",
        "name": "EIT"
      },
      "LASCO": {
        "children": {
          "C2": {
            "children": {
              "white-light": {
                "description": "White Light",
                "end": "2013-12-05 07:12:05",
                "label": "Measurement",
                "layeringOrder": 2,
                "name": "White Light",
                "nickname": "LASCO C2",
                "sourceId": 4,
                "start": "1996-04-01 01:12:15"
              }
            },
            "description": "Coronograph 2",
            "label": "Detector",
            "name": "C2"
          },
          "C3": {
            "children": {
              "white-light": {
                "description": "White Light",
                "end": "2013-12-05 07:18:05",
                "label": "Measurement",
                "layeringOrder": 3,
                "name": "White Light",
                "nickname": "LASCO C3",
                "sourceId": 5,
                "start": "1996-04-14 09:48:18"
              }
            },
            "description": "Coronograph 3",
            "label": "Detector",
            "name": "C3"
          }
        },
        "description": "The Large Angle Spectrometric Coronagraph",
        "label": "Instrument",
        "name": "LASCO"
      },
      "MDI": {
        "children": {
          "continuum": {
            "description": "Intensitygram",
            "end": "2011-01-11 22:39:00",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "Continuum",
            "nickname": "MDI Int",
            "sourceId": 7,
            "start": "1996-05-19 19:08:35"
          },
          "magnetogram": {
            "description": "Magnetogram",
            "end": "2011-01-11 22:39:00",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "Magnetogram",
            "nickname": "MDI Mag",
            "sourceId": 6,
            "start": "1996-04-21 00:30:04"
          }
        },
        "description": "Michelson Doppler Imager",
        "label": "Instrument",
        "name": "MDI"
      }
    },
    "description": "Solar and Heliospheric Observatory",
    "label": "Observatory",
    "name": "SOHO"
  },
  "STEREO_A": {
    "children": {
      "SECCHI": {
        "children": {
          "COR1": {
            "children": {
              "white-light": {
                "description": "White Light",
                "end": "2013-12-01 09:50:00",
                "label": "Measurement",
                "layeringOrder": 2,
                "name": "White Light",
                "nickname": "COR1-A",
                "sourceId": 28,
                "start": "2010-01-01 00:05:00"
              }
            },
            "description": "Coronograph 1",
            "label": "Detector",
            "name": "COR1"
          },
          "COR2": {
            "children": {
              "white-light": {
                "description": "White Light",
                "end": "2013-11-30 23:54:00",
                "label": "Measurement",
                "layeringOrder": 3,
                "name": "White Light",
                "nickname": "COR2-A",
                "sourceId": 29,
                "start": "2010-01-01 00:24:00"
              }
            },
            "description": "Coronograph 2",
            "label": "Detector",
            "name": "COR2"
          },
          "EUVI": {
            "children": {
              "171": {
                "description": "171 Ångström extreme ultraviolet",
                "end": "2013-11-30 22:14:00",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "171 Å",
                "nickname": "EUVI-A 171",
                "sourceId": 20,
                "start": "2010-01-01 00:14:00"
              },
              "195": {
                "description": "195 Ångström extreme ultraviolet",
                "end": "2013-11-30 23:55:30",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "195 Å",
                "nickname": "EUVI-A 195",
                "sourceId": 21,
                "start": "2010-01-01 00:05:30"
              },
              "284": {
                "description": "284 Ångström extreme ultraviolet",
                "end": "2013-11-30 22:16:30",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "284 Å",
                "nickname": "EUVI-A 284",
                "sourceId": 22,
                "start": "2010-01-01 00:16:30"
              },
              "304": {
                "description": "304 Ångström extreme ultraviolet",
                "end": "2013-11-30 23:56:15",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "304 Å",
                "nickname": "EUVI-A 304",
                "sourceId": 23,
                "start": "2010-01-01 00:06:15"
              }
            },
            "description": "Extreme Ultraviolet Imager",
            "label": "Detector",
            "name": "EUVI"
          }
        },
        "description": "Sun Earth Connection Coronal and Heliospheric Investigation",
        "label": "Instrument",
        "name": "SECCHI"
      }
    },
    "description": "Solar Terrestrial Relations Observatory Ahead",
    "label": "Observatory",
    "name": "STEREO_A"
  },
  "STEREO_B": {
    "children": {
      "SECCHI": {
        "children": {
          "COR1": {
            "children": {
              "white-light": {
                "description": "White Light",
                "end": "2013-12-01 03:51:00",
                "label": "Measurement",
                "layeringOrder": 2,
                "name": "White Light",
                "nickname": "COR1-B",
                "sourceId": 30,
                "start": "2010-01-01 00:05:37"
              }
            },
            "description": "Coronograph 1",
            "label": "Detector",
            "name": "COR1"
          },
          "COR2": {
            "children": {
              "white-light": {
                "description": "White Light",
                "end": "2013-11-30 23:55:00",
                "label": "Measurement",
                "layeringOrder": 3,
                "name": "White Light",
                "nickname": "COR2-B",
                "sourceId": 31,
                "start": "2010-01-01 00:24:37"
              }
            },
            "description": "Coronograph 2",
            "label": "Detector",
            "name": "COR2"
          },
          "EUVI": {
            "children": {
              "171": {
                "description": "171 Ångström extreme ultraviolet",
                "end": "2013-11-30 22:15:00",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "171 Å",
                "nickname": "EUVI-B 171",
                "sourceId": 24,
                "start": "2010-01-01 00:07:52"
              },
              "195": {
                "description": "195 Ångström extreme ultraviolet",
                "end": "2013-11-30 23:56:30",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "195 Å",
                "nickname": "EUVI-B 195",
                "sourceId": 25,
                "start": "2010-01-01 00:06:07"
              },
              "284": {
                "description": "284 Ångström extreme ultraviolet",
                "end": "2013-11-30 22:17:30",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "284 Å",
                "nickname": "EUVI-B 284",
                "sourceId": 26,
                "start": "2010-01-01 00:07:07"
              },
              "304": {
                "description": "304 Ångström extreme ultraviolet",
                "end": "2013-11-30 23:57:15",
                "label": "Measurement",
                "layeringOrder": 1,
                "name": "304 Å",
                "nickname": "EUVI-B 304",
                "sourceId": 27,
                "start": "2010-01-01 00:06:52"
              }
            },
            "description": "Extreme Ultraviolet Imager",
            "label": "Detector",
            "name": "EUVI"
          }
        },
        "description": "Sun Earth Connection Coronal and Heliospheric Investigation",
        "label": "Instrument",
        "name": "SECCHI"
      }
    },
    "description": "Solar Terrestrial Relations Observatory Behind",
    "label": "Observatory",
    "name": "STEREO_B"
  },
  "Yohkoh": {
    "children": {
      "SXT": {
        "children": {
          "AlMgMn": {
            "description": "Al/Mg/Mn filter (2.4 Å - 32 Å pass band)",
            "end": "2001-12-14 20:58:33",
            "label": "Filter",
            "layeringOrder": 1,
            "name": "AlMgMn",
            "nickname": "SXT AlMgMn",
            "sourceId": 33,
            "start": "1991-09-13 21:53:40"
          },
          "thin-Al": {
            "description": "11.6 μm Al filter (2.4 Å - 13 Å pass band)",
            "end": "2001-12-14 08:20:43",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "Thin Al",
            "nickname": "SXT thin-Al",
            "sourceId": 34,
            "start": "1991-09-13 21:49:24"
          },
          "white-light": {
            "description": "No filter",
            "end": "1992-11-13 17:05:32",
            "label": "Measurement",
            "layeringOrder": 1,
            "name": "White Light",
            "nickname": "SXT white-light",
            "sourceId": 35,
            "start": "1991-09-11 23:02:54"
          }
        },
        "description": "Soft X-ray Telescope",
        "label": "Instrument",
        "name": "SXT"
      }
    },
    "description": "Yohkoh (Solar-A)",
    "label": "Observatory",
    "name": "Yohkoh"
  }
}

Output the hierarchical list of available datasources in a format that is compatible with the JHelioviewer desktop client.


getTile

GET /v2/getTile/

Request a single image tile to be used in the Helioviewer.org Viewport. Tiles are 512x512 pixel PNG images, generated for a given image scale from the intermediary JPEG2000 image files.

Use the `getClosestImage` API endpoint to obtain the desired image identifier for the `id` parameter.

Request Parameters:
Parameter Required Type Example Description
id Required number 36275490 Unique image identifier.
x Required number -1 Tile position.
y Required number -1 Tile position.
imageScale Required number 2.42044088 Image scale in arcseconds per pixel.
difference Required number 0 Specify image type difference.
0 - Display regular image;
0 - Running difference image;
0 - Base difference image.
diffCount Required number 60 Used to display Running difference image. Work with "diffTime" parameter and set amount of time to use in tyme period
diffTime Required number 1 Select Running difference time period:
0 - Seconds;
1 - Minutes;
2 - Hours;
3 - Days;
4 - Weeks;
5 - Month;
6 - Years.
baseDiffTime Required number string Date/Time string for Base difference images.

Example (A):

binary (PNG image data)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getTile/?id=36275490&x=-1&y=-1&imageScale=2.42044088

shortenURL

GET /v2/shortenURL/

Shorten a Helioviewer.org URL with the bit.ly URL shortening web service.

Request Parameters:
Parameter Required Type Example Description
queryString Required string date%3D2014-02-25T15%3A18%3A07.000Z%26imageScale%3D2.4204409%26centerX%3D-410.06307838566283%26centerY%3D-244.6662219973343%26imageLayers%3D%255BSDO%2CAIA%2CAIA%2C304%2C1%2C100%255D%26eventLayers%3D%26eventLabels%3Dtrue URL-encoded query string.
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

Shortened URL (JSON)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/shortenURL/?queryString=date%3D2014-02-25T15%3A18%3A07.000Z%26imageScale%3D2.4204409%26centerX%3D-410.06307838566283%26centerY%3D-244.6662219973343%26imageLayers%3D%255BSDO%2CAIA%2CAIA%2C304%2C1%2C100%255D%26eventLayers%3D%26eventLabels%3Dtrue
Example Response:
{
    "status_code": 200,
    "status_txt": "OK",
    "data": {
        "long_url": "https://helioviewer.ias.u-psud.fr/?date=2014-02-25T15:18:07.000Z&imageScale=2.4204409¢erX=-410.06307838566283¢erY=-244.6662219973343&imageLayers=[SDO,AIA,AIA,304,1,100]&eventLayers=&eventLabels=true",
        "url": "http://bit.ly/1hbCHMq",
        "hash": "1hbCHMq",
        "global_hash": "1hbCHMr",
        "new_hash": 0
    }
}
Parameter Required Type Description
status Required string YouTube upload status

Web Site

getNewsFeed

GET /v2/getNewsFeed/

Get the XML RSS feed of the official Helioviewer Project Blog.

Request Parameters:
Parameter Required Type Example Description
callback Optional string Wrap the response object in a function call of your choosing.

Example (A):

string (RSS XML)
Example Request:
https://helioviewer-api.ias.u-psud.fr//v2/getNewsFeed/?
Example Response:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/" >

<channel>
    <title>The Helioviewer Project Blog</title>
    <atom:link href="http://blog.helioviewer.org/feed/" rel="self" type="application/rss+xml" />
    <link>http://blog.helioviewer.org</link>
    <description>Explore your heliosphere</description>
    <lastBuildDate>Tue, 28 Jan 2014 15:16:51 +0000</lastBuildDate>
    <language>en</language>
        <sy:updatePeriod>hourly</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>
    <generator>http://wordpress.org/?v=3.8.1</generator>
    <item>
        <title>Follow the Helioviewer Project on Twitter</title>
        <link>http://blog.helioviewer.org/2014/01/28/follow-the-helioviewer-project-on-twitter/</link>
        <comments>http://blog.helioviewer.org/2014/01/28/follow-the-helioviewer-project-on-twitter/#comments</comments>
        <pubDate>Tue, 28 Jan 2014 15:16:51 +0000</pubDate>
        <dc:creator><![CDATA[jack]]></dc:creator>
                <category><![CDATA[General]]></category>

        <guid isPermaLink="false">http://blog.helioviewer.org/?p=1265</guid>
        <description><![CDATA[The Helioviewer Project is now on Twitter, @Helioviewer. Please follow us on Twitter for the latest solar and heliospheric news and movies, as well as new Helioviewer Project features.]]></description>
                <content:encoded><![CDATA[<p>The Helioviewer Project is now on Twitter, @Helioviewer.</p>
<p><a href="http://blog.helioviewer.org/wp-content/uploads/2014/01/twitter_hv.png"><img src="http://blog.helioviewer.org/wp-content/uploads/2014/01/twitter_hv.png" alt="twitter_hv" width="538" height="268" class="aligncenter size-full wp-image-1266" /></a></p>
<p>Please <a href="https://twitter.com/Helioviewer" title="Helioviewer on Twitter">follow us on Twitter</a> for the latest solar and heliospheric news and movies, as well as new Helioviewer Project features.</p>
]]></content:encoded>
            <wfw:commentRss>http://blog.helioviewer.org/2014/01/28/follow-the-helioviewer-project-on-twitter/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>
    </item>
</channel>
</rss>

Appendix

The appendices below provide further context for Helioviewer API usage.

Data Sources

Listed below are all valid image data sources hosted by the Helioviewer Project. Reference a particular datasource in your API requests by its 'sourceId' parameter shown in the following tables.

GOES-R

Source ID Description Observatory Instrument Measurement
2001 GOES-R SUVI 131 GOES-R SUVI 131
2004 GOES-R SUVI 284 GOES-R SUVI 284
2000 GOES-R SUVI 94 GOES-R SUVI 94
2003 GOES-R SUVI 195 GOES-R SUVI 195
2002 GOES-R SUVI 171 GOES-R SUVI 171
2005 GOES-R SUVI 304 GOES-R SUVI 304

GONG

Source ID Description Observatory Instrument Detector Measurement
94 GONG H-alpha GONG GONG H-alpha 6562

IRIS

Source ID Description Observatory Instrument Measurement
89 IRIS SJI 2796 IRIS SJI 2796
92 IRIS SJI 2832 IRIS SJI 2832
88 IRIS SJI 1330 IRIS SJI 1330
90 IRIS SJI 1400 IRIS SJI 1400

SDO

Source ID Description Observatory Instrument Measurement
15 AIA 1600 SDO AIA 1600
8 AIA 94 SDO AIA 94
11 AIA 193 SDO AIA 193
14 AIA 335 SDO AIA 335
17 AIA 4500 SDO AIA 4500
10 AIA 171 SDO AIA 171
13 AIA 304 SDO AIA 304
16 AIA 1700 SDO AIA 1700
9 AIA 131 SDO AIA 131
12 AIA 211 SDO AIA 211
18 HMI Int SDO HMI continuum
19 HMI Mag SDO HMI magnetogram

SOHO

Source ID Description Observatory Instrument Measurement
2 EIT 284 SOHO EIT 284
1 EIT 195 SOHO EIT 195
3 EIT 304 SOHO EIT 304
0 EIT 171 SOHO EIT 171
4 LASCO C2 SOHO LASCO C2 white-light
5 LASCO C3 SOHO LASCO C3 white-light
7 MDI Int SOHO MDI continuum
6 MDI Mag SOHO MDI magnetogram

SOLO

Source ID Description Observatory Instrument Detector Measurement
86 EUI HRI 174 SOLO EUI HRI 174
87 EUI HRI 1216 SOLO EUI HRI 1216
85 EUI FSI 304 SOLO EUI FSI 304
84 EUI FSI 174 SOLO EUI FSI 174

STEREO_A

Source ID Description Observatory Instrument Detector Measurement
28 COR1-A STEREO_A SECCHI COR1 white-light
21 EUVI-A 195 STEREO_A SECCHI EUVI 195
23 EUVI-A 304 STEREO_A SECCHI EUVI 304
22 EUVI-A 284 STEREO_A SECCHI EUVI 284
20 EUVI-A 171 STEREO_A SECCHI EUVI 171
29 COR2-A STEREO_A SECCHI COR2 white-light

STEREO_B

Source ID Description Observatory Instrument Detector Measurement
25 EUVI-B 195 STEREO_B SECCHI EUVI 195
27 EUVI-B 304 STEREO_B SECCHI EUVI 304
26 EUVI-B 284 STEREO_B SECCHI EUVI 284
24 EUVI-B 171 STEREO_B SECCHI EUVI 171
31 COR2-B STEREO_B SECCHI COR2 white-light
30 COR1-B STEREO_B SECCHI COR1 white-light

Yohkoh

Source ID Description Observatory Instrument Measurement
35 SXT white-light Yohkoh SXT white-light
34 SXT thin-Al Yohkoh SXT thin-Al
33 SXT AlMgMn Yohkoh SXT AlMgMn

MLSO

Source ID Description Observatory Instrument Detector Measurement
83 COSMO KCor MLSO COSMO KCor 735

PROBA2

Source ID Description Observatory Instrument Measurement
32 SWAP 174 PROBA2 SWAP 174

Hinode

Source ID Description Observatory Instrument Filter Wheel 1 Filter Wheel 2
60 XRT Be_thin/Open Hinode XRT Be_thin Open
70 XRT Open/Al_thick Hinode XRT Open Al_thick
69 XRT Open/Al_mesh Hinode XRT Open Al_mesh
71 XRT Open/Be_thick Hinode XRT Open Be_thick
49 XRT Al_poly/Ti_poly Hinode XRT Al_poly Ti_poly
48 XRT Al_poly/Open Hinode XRT Al_poly Open
42 XRT Al_med/Open Hinode XRT Al_med Open
54 XRT Be_med/Open Hinode XRT Be_med Open

Coordinates

The APIs for creating custom movies ('queueMovie') and screenshot images ('takeScreenshot') require that you specify a rectangular region-of-interest (ROI). The ROI defines the field-of-view of the video or image in terms of a zoom level and the location and size of the region.

The region-of-interest may be defined in either of two ways. Both methods require an 'imageScale' expressed in arc-seconds per pixel, and atleast one pair of X- and Y-coordinates (expressed as arc-seconds from the center of the solar disk).

The first method defines the ROI based on a pair parameters specifying the X- and Y-coordinates for the top-left ('x1','y1') and bottom-right ('x2','y2') corners of rectangle.

An alternative method defines the ROI in terms of the X- and Y-coordinates of the center of the region ('x0','y0'), coupled with the total width and height of the rectangle in pixels. Use this method if the pixel dimensions of the output are important to you. The APIs handle the translation between arc-seconds and pixels based on the value of 'imageScale' that you have specified.

Smaller values of 'imageScale' will produce results that appear "zoomed-in" to show more detail.

Below is a listing of the native image scales by datasource:

Datasource Dimensions (pixels) Image Scale (arc-seconds/pixel)
PROBA2 SWAP 1024 x 1024  3.162
SDO AIA 4096 x 4096  0.6
SDO HMI 4096 x 4096  0.6
SOHO EIT 1024 x 1024  2.63
SOHO LASCO C2 1024 x 1024 11.9
SOHO LASCO C3 1024 x 1024 56.0
SOHO MDI 1024 x 1024  1.986
STEREO SECCHI EUVI 2048 x 2048  1.588
STEREO SECCHI COR1 512 x 512 15.0
STEREO SECCHI COR2 2048 x 2048 14.7
Yohkoh SXT 1024 x 1024  2.46

You are not limited to creating screenshots and movies at a datasource's native resolution. Each image layer will be scaled to match the imageScale you have requested.