API Reference

The Helioviewer API is organized into groups of related endpoints. The reference below is generated from the OpenAPI specification and grouped by tag.

For a complete list of all endoings, see HTTP Routing Table.

For an interactive “Try it out” experience, see the API Playground.

JPEG2000

GET /downloadImage/

Download a colorized image

Download a specific JP2 image colorized and converted to PNG, JPG, or WebP. If the requested size is larger than the source image, no upscaling is performed.

Example Request

https://api.helioviewer.org/v2/downloadImage/?id=189536650
Query Parameters:
  • id (integer) – ID of the image to download (Required)

  • width (integer) – Desired width of the resulting image. Takes priority over the scale option.

  • scale (integer) – Ratio of the original image size to the downloaded image size. 1 = original, 2 = half size, 3 = one-third size, etc. Ignored if width is provided.

  • type (string) – Output image format. Options: jpg, png, webp.

Status Codes:
  • 200 OK – Image binary data

GET /getJP2Header/

Get JP2 image XML header

Get the XML header embedded in a JPEG2000 image, including the FITS header and Helioviewer-specific metadata.

Example Request

https://api.helioviewer.org/v2/getJP2Header/?id=189536650
Query Parameters:
  • id (integer) – Unique JP2 image identifier (Required)

  • callback (string) – Wrap the response in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    XML header string

    Example response:

    HTTP/1.1 200 OK
    Content-Type: text/xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <meta><fits>...</fits><helioviewer>...</helioviewer></meta>
    

GET /getJP2Image

Download JP2 image closest to a given date

Download the JP2 image for the specified datasource that is closest in time to the requested date. By default returns binary JP2 data. Set jpip=true for a JPIP URI, and additionally json=true for a JSON response.

Example Request — binary JP2 image data (default):

https://api.helioviewer.org/v2/getJP2Image/?date=2014-01-01T23:59:59Z&sourceId=14

Example Request — JPIP URI as plain text:

https://api.helioviewer.org/v2/getJP2Image/?date=2014-01-01T23:59:59Z&sourceId=14&jpip=true

Example Request — JPIP URI as JSON:

https://api.helioviewer.org/v2/getJP2Image/?date=2014-01-01T23:59:59Z&sourceId=14&jpip=true&json=true
Query Parameters:
  • date (string) – Desired date/time of the JP2 image. ISO 8601 UTC format. (Required)

  • sourceId (integer) – Unique image datasource identifier. (Required)

  • jpip (boolean) – Return a JPIP URI instead of binary image data.

  • json (boolean) – Return a JSON object (only meaningful when jpip=true).

Status Codes:
  • 200 OK

    JP2 binary data, a JPIP URI string, or a JSON object.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: text/plain
    
    jpip://api.helioviewer.org:8090/AIA/2014/01/02/335/2014_01_02__00_00_02_62__SDO_AIA_AIA_335.jp2
    

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "uri": "jpip://api.helioviewer.org:8090/AIA/2014/01/02/335/2014_01_02__00_00_02_62__SDO_AIA_AIA_335.jp2"
    }
    

GET /getJPX/

Generate and download a JPX movie

Generate and optionally download a custom JPX movie for the specified datasource. Without jpip or verbose, returns binary JPX data.

Example Request — binary JPX movie data:

https://api.helioviewer.org/v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14

Example Request — JPIP URI as plain text:

https://api.helioviewer.org/v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14&jpip=true

Example Request — JPIP URI in JSON with frame timestamps:

https://api.helioviewer.org/v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14&jpip=true&verbose=true

Example Request — HTTP URI in JSON with frame timestamps:

https://api.helioviewer.org/v2/getJPX/?startTime=2014-01-01T00:00:00Z&endTime=2014-01-01T00:45:00Z&sourceId=14&verbose=true
Query Parameters:
  • startTime (string) – Start date/time of the JPX movie. ISO 8601 UTC format. (Required)

  • endTime (string) – End date/time of the JPX movie. ISO 8601 UTC format. (Required)

  • sourceId (integer) – Unique image datasource identifier. (Required)

  • linked (boolean) – Generate a linked JPX file containing image pointers rather than full frame data.

  • verbose (boolean) – Include frame timestamps and warning messages in the JSON response.

  • jpip (boolean) – Return a JPIP URI instead of binary data.

  • cadence (integer) – Desired time (in seconds) between each frame. If omitted, the server selects an optimal cadence.

Status Codes:
  • 200 OK

    JPX binary data, a JPIP URI string, or a JSON object.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: text/plain
    
    jpip://api.helioviewer.org:8090/movies/SDO_AIA_335_F2014-01-01T00.00.00Z_T2014-01-01T00.45.00Z.jpx
    

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "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": "http://api.helioviewer.org/jp2/movies/SOHO_MDI_MDI_magnetogram_F2003-10-05T00.00.00Z_T2003-10-20T00.00.00ZB1L.jpx",
        "frames": [
            1065323703,
            1065329463,
            1066602183,
            1066607943
        ]
    }
    

GET /getJPXClosestToMidPoint/

Generate a JPX movie with one frame per time interval

Generate a JPX movie with one frame per pair of startTimes/endTimes, selecting the image closest to the midpoint of each interval. Maximum 360 timestamps per request.

Example Request — binary JPX movie data:

https://api.helioviewer.org/v2/getJPXClosestToMidPoint/?startTimes=1306886400,1306887000,1306887600&endTimes=1306886700,1306887300,1306887900&sourceId=14

Example Request — JPIP URI in JSON:

https://api.helioviewer.org/v2/getJPXClosestToMidPoint/?startTimes=1306886400,1306887000,1306887600&endTimes=1306886700,1306887300,1306887900&sourceId=14&jpip=true&verbose=true
Query Parameters:
  • startTimes (string) – Comma-separated Unix timestamps for the start of each interval (max 360). (Required)

  • endTimes (string) – Comma-separated Unix timestamps for the end of each interval (max 360). (Required)

  • sourceId (integer) – Unique image datasource identifier. (Required)

  • linked (boolean) – Generate a linked JPX file containing image pointers.

  • verbose (boolean) – Include frame timestamps and warnings in the JSON response.

  • jpip (boolean) – Return a JPIP URI instead of binary data.

Status Codes:
  • 200 OK

    JPX binary data, a JPIP URI string, or a JSON object.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: text/plain
    
    jpip://api.helioviewer.org:8090/movies/SDO_AIA_335_F2011-06-01T00.00.00Z_T2011-06-01T00.25.00Z.jpx
    

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "frames": [
            1306886547,
            1306887735
        ],
        "message": null,
        "uri": "jpip://api.helioviewer.org:8090/movies/SDO_AIA_335_F2011-06-01T00.00.00Z_T2011-06-01T00.25.00Z.jpx"
    }
    

GET /getStatus/

Get JPEG2000 data ingestion status

Returns information about how far behind the latest available JPEG2000 images are for each instrument.

Example Request

https://api.helioviewer.org/v2/getStatus/
Status Codes:
  • 200 OK

    Status object keyed by instrument name.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "AIA": {
            "time": "2021-12-08T10:01:57Z",
            "level": 5,
            "secondsBehind": 1745203,
            "measurement": "AIA 171"
        }
    }
    

Movies

GET /queueMovie/

Queue a custom movie (GET)

Submit a request to the movie generation queue and receive a unique Movie ID. Use getMovieStatus to poll for completion and downloadMovie to retrieve the file.

Example Request

https://api.helioviewer.org/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
Query Parameters:
  • startTime (string) – Date/time of the first frame. ISO 8601 UTC format. (Required)

  • endTime (string) – Date/time of the final frame. ISO 8601 UTC format. (Required)

  • layers (string) – Image datasource layer(s), e.g. [3,1,100],[4,1,100]. (Required)

  • events (string) – Comma-separated list of feature/event type annotations (e.g. [AR,HMI_HARP;SPoCA,1],[CH,all,1]). Use an empty string for no annotations. (Required)

  • eventsLabels (boolean) – Annotate each event marker with a text label. (Required)

  • imageScale (number) – Image scale in arcseconds per pixel. (Required)

  • format (string) – Movie format. Default is mp4.

  • frameRate (integer) – Frames per second. Default is 15.

  • maxFrames (integer) – Maximum number of frames (may be capped by the server).

  • scale (boolean) – Overlay an image scale indicator.

  • scaleType (string) – Type of image scale indicator.

  • scaleX (number) – Horizontal offset of the scale indicator in arcseconds from Sun center.

  • scaleY (number) – Vertical offset of the scale indicator in arcseconds from Sun center.

  • movieLength (number) – Movie length in seconds.

  • watermark (boolean) – Overlay a Helioviewer.org watermark. Enabled by default.

  • width (integer) – Width of the field of view in pixels (used with x0, y0, height).

  • height (integer) – Height of the field of view in pixels (used with x0, y0, width).

  • x0 (number) – Horizontal offset of the field-of-view center from Sun center (arcseconds).

  • y0 (number) – Vertical offset of the field-of-view center from Sun center (arcseconds).

  • x1 (number) – Horizontal offset of the top-left corner from Sun center (arcseconds).

  • y1 (number) – Vertical offset of the top-left corner from Sun center (arcseconds).

  • x2 (number) – Horizontal offset of the bottom-right corner from Sun center (arcseconds).

  • y2 (number) – Vertical offset of the bottom-right corner from Sun center (arcseconds).

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

  • size (integer) – Scale video to a preset size: - 0: Original size (default) - 1: 720p (HD Ready) - 2: 1080p (Full HD) - 3: 1440p (Quad HD) - 4: 2160p (4K / Ultra HD)

  • movieIcons (integer) – Display other user-generated movies on the video.

  • followViewport (integer) – Rotate field of view with the Sun.

  • reqObservationDate (string) – Viewport time used when followViewport is enabled.

Status Codes:
  • 200 OK

    Queued movie response.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": "z6vX5",
        "eta": 376,
        "queue": 0,
        "token": "50e0d98f645b42d159ec1c8a1e15de3e"
    }
    

POST /postMovie/

Queue a custom movie (POST)

Create a custom movie by submitting a JSON body to the movie generation queue. Returns a unique Movie ID.

Example Request Body

{
    "startTime":   "2010-03-01T12:12:12Z",
    "endTime":     "2010-03-04T12:12:12Z",
    "imageScale":  21.04,
    "layers":      "[3,1,100]",
    "eventsState": {
        "tree_HEK": {
            "labels_visible": true,
            "layers": [
                {
                    "event_type": "flare",
                    "frms": ["frm10", "frm20"],
                    "event_instances": ["flare--frm1--event1", "flare--frm2--event2"]
                }
            ]
        }
    },
    "x1": -5000,
    "y1": -5000,
    "x2":  5000,
    "y2":  5000
}
Status Codes:
  • 200 OK

    Queued movie response.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": "z6vX5",
        "eta": 376,
        "queue": 0,
        "token": "50e0d98f645b42d159ec1c8a1e15de3e"
    }
    

GET /reQueueMovie/

Re-generate an expired movie

Re-generate a custom movie that is no longer cached on disk. Use the returned Movie ID with getMovieStatus and downloadMovie.

Example Request

https://api.helioviewer.org/v2/reQueueMovie/?id=w1Pj5
Query Parameters:
  • id (string) – Unique movie identifier. (Required)

  • force (boolean) – Force rebuild even if a cached copy exists.

Status Codes:
  • 200 OK

    Queued movie response.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": "w1Pj5",
        "eta": 285,
        "queue": 0,
        "token": "4673d6db4e2a3365ab361267f2a9a112"
    }
    

GET /getMovieStatus/

Check movie generation status

Returns metadata and generation status for a user-generated movie. Status codes: 0=queued, 1=processing, 2=finished, 3=invalid.

Example Request

https://api.helioviewer.org/v2/getMovieStatus/?id=w1Pj5&format=mp4

Example Request — verbose with JSONP callback:

https://api.helioviewer.org/v2/getMovieStatus/?id=w1Pj5&format=webm&verbose=true&callback=callbackTest
Query Parameters:
  • id (string) – Unique movie identifier. (Required)

  • format (string) – Movie format. (Required)

  • verbose (boolean) – Include extra metadata in the response.

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

  • token (string) – Handle to job in the movie builder queue.

Status Codes:
  • 200 OK

    Movie status object.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "frameRate": 15,
        "numFrames": 175,
        "startDate": "2010-03-01 12:30:06",
        "status": 2,
        "endDate": "2010-03-04 12:06:06",
        "width": 476,
        "height": 476,
        "title": "SOHO EIT 304, SOHO LASCO C2 white-light (2010-03-01 12:30:06 - 12:06:06 UTC)",
        "thumbnails": {
            "icon": "https://api.helioviewer.org/cache/movies/2026/06/25/w1Pj5/preview-icon.png",
            "small": "https://api.helioviewer.org/cache/movies/2026/06/25/w1Pj5/preview-small.png",
            "medium": "https://api.helioviewer.org/cache/movies/2026/06/25/w1Pj5/preview-medium.png",
            "large": "https://api.helioviewer.org/cache/movies/2026/06/25/w1Pj5/preview-large.png",
            "full": "https://api.helioviewer.org/cache/movies/2026/06/25/w1Pj5/preview-full.png"
        },
        "url": "https://api.helioviewer.org/cache/movies/2026/06/25/w1Pj5/2010_03_01_12_30_06_2010_03_04_12_06_06_EIT_304__LASCO_C2.mp4",
        "statusLabel": "Completed"
    }
    

GET /downloadMovie/

Download a generated movie

Download a custom movie in mp4 or webm format.

Example Request

https://api.helioviewer.org/v2/downloadMovie/?id=w1Pj5&format=mp4
Query Parameters:
  • id (string) – Unique movie identifier. (Required)

  • format (string) – Movie format. (Required)

  • hq (boolean) – Download higher-quality version (mp4 only).

Status Codes:
  • 200 OK – Movie binary data.

GET /playMovie/

Get an HTML page with the movie embedded

Returns an HTML page with the requested movie embedded in a player.

Example Request

https://api.helioviewer.org/v2/playMovie/?id=w1Pj5&format=mp4&hq=true
Query Parameters:
  • id (string) – Unique movie identifier. (Required)

  • format (string) – Movie format. (Required)

  • hq (boolean) – Use higher-quality version (mp4 only).

  • width (integer) – Width of the embedded player in pixels.

  • height (integer) – Height of the embedded player in pixels.

Status Codes:
  • 200 OK – HTML page with embedded movie player.

Screenshots

GET /takeScreenshot/

Generate a custom screenshot (GET)

Generate a custom screenshot. Specify the field of view using either (x1, y1, x2, y2) or (x0, y0, width, height). By default returns a JSON object with a screenshot id; set display=true to receive the PNG binary directly.

Example Request — JSON response with screenshot ID:

https://api.helioviewer.org/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 Request — PNG binary directly:

https://api.helioviewer.org/v2/takeScreenshot/?imageScale=2.4204409&layers=[SDO,AIA,AIA,304,1,100]&events=[CH,all,1]&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
Query Parameters:
  • date (string) – Desired date/time of the image. ISO 8601 UTC format. (Required)

  • imageScale (number) – Image scale in arcseconds per pixel. (Required)

  • layers (string) – Image datasource layer(s), e.g. [3,1,100]. (Required)

  • events (string) – Feature/event annotations (e.g. [AR,HMI_HARP;SPoCA,1],[CH,all,1]).

  • eventLabels (boolean) – Annotate each event marker with a text label.

  • scale (boolean) – Overlay an image scale indicator.

  • scaleType (string) – Type of image scale indicator.

  • scaleX (number) – Horizontal offset of the scale indicator (arcseconds).

  • scaleY (number) – Vertical offset of the scale indicator (arcseconds).

  • width (integer) – Width of the field of view in pixels.

  • height (integer) – Height of the field of view in pixels.

  • x0 (number) – Horizontal offset of the field-of-view center (arcseconds).

  • y0 (number) – Vertical offset of the field-of-view center (arcseconds).

  • x1 (number) – Horizontal offset of the top-left corner (arcseconds).

  • y1 (number) – Vertical offset of the top-left corner (arcseconds).

  • x2 (number) – Horizontal offset of the bottom-right corner (arcseconds).

  • y2 (number) – Vertical offset of the bottom-right corner (arcseconds).

  • display (boolean) – Return PNG binary directly instead of a JSON ID object.

  • watermark (boolean) – Overlay a Helioviewer watermark. Enabled by default.

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    Screenshot ID or PNG binary.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 3285980
    }
    

POST /postScreenshot/

Generate a custom screenshot (POST)

Generate a custom screenshot via a JSON POST request. Specify the field of view with (x1, y1, x2, y2) or (x0, y0, width, height). Set display=true to receive the PNG binary directly.

Example Request Body — JSON response with screenshot ID:

{
    "date":       "2014-01-01T23:59:59Z",
    "imageScale": 2.4204409,
    "layers":     "[3,1,100]"
}

Example Request Body — PNG binary directly:

{
    "date":       "2014-01-01T23:59:59Z",
    "imageScale": 2.4204409,
    "layers":     "[3,1,100]",
    "display":    true
}
Status Codes:
  • 200 OK

    Screenshot ID or PNG binary.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 3285980
    }
    

GET /downloadScreenshot/

Download a generated screenshot

Download a screenshot that was previously generated with takeScreenshot.

Example Request

https://api.helioviewer.org/v2/downloadScreenshot/?id=3240748
Query Parameters:
  • id (integer) – Unique screenshot identifier. (Required)

Status Codes:
  • 200 OK – PNG image binary.

GET /getEclipseImage/

Generate a LASCO C2 eclipse image

Generates a grayscale image of LASCO C2 with a preset field of view. Optionally shows a moon in place of the Sun.

Example Request

https://api.helioviewer.org/v2/getEclipseImage/
Query Parameters:
  • moon (boolean) – Show a moon where the Sun would be.

Status Codes:

Official Clients

GET /getClosestImage/

Find image metadata closest to a date/time

Find the image data closest to the requested date/time for a given datasource. Returns metadata from the Helioviewer database and the JPEG2000 XML header.

Example Request

https://api.helioviewer.org/v2/getClosestImage/?date=2014-01-01T23:59:59Z&sourceId=14
Query Parameters:
  • date (string) – Desired date/time. ISO 8601 UTC format. (Required)

  • sourceId (integer) – Unique image datasource identifier. (Required)

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    Image metadata object.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 34205701,
        "date": "2014-01-02 00:00:02",
        "scale": 0.58996068317702,
        "scaleCorrection": 1.01701692521,
        "width": 4096,
        "height": 4096,
        "refPixelX": 2048.5,
        "refPixelY": 2048.5,
        "rsun": 1600,
        "sunCenterOffsetParams": [],
        "layeringOrder": 1
    }
    

GET /getDataSources/

List available image datasources

Return a hierarchical list of available datasources. Set verbose=true for a JHelioviewer-compatible format. Use enable to include additional observatories in verbose mode.

Example Request

https://api.helioviewer.org/v2/getDataSources/
Query Parameters:
  • verbose (boolean) – Output in JHelioviewer-compatible format (limits to SDO/SOHO by default unless enable is specified).

  • enable (string) – Comma-separated list of additional observatories to enable in verbose mode (e.g. [Yohkoh,STEREO_A,STEREO_B]).

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    Hierarchical datasource tree.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "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"
                            }
                        ]
                    }
                }
            }
        }
    }
    

GET /getTile/

Request a 512×512 image tile

Request a single 512×512 pixel PNG image tile for use in the Helioviewer viewport. Obtain the image identifier via getClosestImage.

Example Request

https://api.helioviewer.org/v2/getTile/?id=36275490&x=-1&y=-1&imageScale=2.42044088
Query Parameters:
  • id (integer) – Unique image identifier. (Required)

  • x (integer) – Horizontal tile position. (Required)

  • y (integer) – Vertical tile position. (Required)

  • imageScale (number) – Image scale in arcseconds per pixel. (Required)

  • difference (integer) – Image difference type: - 0: regular (default) - 1: running difference - 2: base difference

  • diffCount (integer) – Amount of time units used for running difference. Works with diffTime.

  • diffTime (integer) – Time unit for running difference: - 1: Minutes - 2: Hours - 3: Days - 4: Weeks - 5: Month - 6: Years

  • baseDiffTime (string) – Date/time string for base difference images. Required when difference is 1 or 2.

Status Codes:
GET /shortenURL/

Shorten a Helioviewer URL

Warning

This endpoint is obsolete and will go away in future versions

Shorten a Helioviewer.org URL using the bit.ly service.

Example Request

https://api.helioviewer.org/v2/shortenURL/?queryString=date%3D2014-02-25T15%3A18%3A07.000Z%26imageScale%3D2.4204409%26imageLayers%3D%255BSDO%2CAIA%2CAIA%2C304%2C1%2C100%255D
Query Parameters:
  • queryString (string) – URL-encoded full Helioviewer URL to shorten. (Required)

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    Shortened URL details.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "status_code": 200,
        "status_txt": "OK",
        "data": {
            "long_url": "http://helioviewer.org/?date=2014-02-25T15:18:07.000Z&imageScale=2.4204409&imageLayers=[SDO,AIA,AIA,304,1,100]",
            "url": "http://bit.ly/1hbCHMq",
            "hash": "1hbCHMq",
            "global_hash": "1hbCHMr",
            "new_hash": 0
        }
    }
    

Solar Features & Events

GET /events

Get solar feature and event data

Returns a list of HEK events in the Helioviewer event format. Event-specific data conforms to the HEK Event Specification.

When format=simpletree is requested, that flat payload is re-shaped into a single-level map whose keys are SOURCE>>Label strings (one per known event type for the requested sources) and whose values are arrays of the matching events. Empty buckets are kept so the client can render the full catalogue regardless of what’s in the response.

Example Request

https://api.helioviewer.org/v2/events/?startTime=2023-03-30T00:00:00Z

Example simpletree Request

https://api.helioviewer.org/v2/events/?startTime=2023-03-30T00:00:00Z&sources=HEK&format=simpletree

Example flat Request

https://api.helioviewer.org/v2/events/?startTime=2023-03-30T00:00:00Z&sources=HEK&format=flat
Query Parameters:
  • startTime (string) – Date/time to query events for. ISO 8601 UTC format. (Required)

  • sources (string) – Comma-separated external data sources to query. Current options: HEK, DONKI. If omitted, all sources are queried.

  • format (string) – Output shape. tree (default) returns the legacy nested category/group structure described in the Helioviewer event format. simpletree buckets the flat response into a one-level SOURCE>>Label map keyed by event type. flat returns the new v1 per-source response (one object per event with no category nesting).

Status Codes:
  • 200 OK

    Array of solar event groups.

    tree - Default tree format:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "name": "Active Region",
            "pin": "AR",
            "groups": [
                {
                    "name": "NOAA SWPC Observer",
                    "contact": "http://www.swpc.noaa.gov/",
                    "url": "N/A",
                    "data": [
                        {
                            "active": "true",
                            "area_atdiskcenter": 213057280,
                            "area_unit": "km2",
                            "ar_mcintoshcls": "HAX",
                            "ar_mtwilsoncls": "ALPHA"
                        }
                    ]
                }
            ]
        }
    ]
    

    simpletree - format=simpletree:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "HEK>>Active Region": [
            {
                "concept": "Active Region",
                "frm_name": "NOAA SWPC Observer",
                "path": "HEK>>Active Region>>NOAA SWPC Observer",
                "pin": "AR"
            }
        ],
        "HEK>>CME": [],
        "HEK>>Coronal Hole": [
            {
                "concept": "Coronal Hole",
                "frm_name": "SPoCA",
                "path": "HEK>>Coronal Hole>>SPoCA"
            }
        ],
        "HEK>>Flare": [],
        "HEK>>Sunspot": []
    }
    

    flat - format=flat:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "concept": "Active Region",
            "frm_name": "NOAA SWPC Observer",
            "path": "HEK>>Active Region>>NOAA SWPC Observer",
            "pin": "AR"
        },
        {
            "concept": "Coronal Hole",
            "frm_name": "SPoCA",
            "path": "HEK>>Coronal Hole>>SPoCA"
        }
    ]
    

YouTube

GET /checkYouTubeAuth/

Check YouTube authorization status

Check whether Helioviewer.org is authorized to interact with the user’s YouTube account via the current browser session.

Example Request

https://api.helioviewer.org/v2/checkYouTubeAuth/
Query Parameters:
  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    Boolean indicating authorization status.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: text/plain
    
    false
    

GET /getYouTubeAuth/

Initiate YouTube authorization

Redirect the user to a Google/YouTube OAuth authorization page so Helioviewer can upload videos on their behalf.

Example Request

https://api.helioviewer.org/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&tags=SDO%2CAIA%2C4500&share=true
Query Parameters:
  • id (string) – Unique movie identifier. (Required)

  • title (string) – Movie title. (Required)

  • description (string) – Movie description. (Required)

  • tags (string) – Comma-separated keyword tags. (Required)

  • share (boolean) – Share the movie with the Helioviewer community.

Status Codes:
  • 302 Found – Redirect to Google/YouTube OAuth authorization page.

Response Headers:
  • Location

GET /uploadMovieToYouTube/

Upload a movie to YouTube

Share an existing user-generated movie to YouTube.

Example Request

https://api.helioviewer.org/v2/uploadMovieToYouTube/?id=y9tX5&title=AIA+94+(2014-02-26+16%3A14%3A25+-+2014-02-27+15%3A37%3A49+UTC)&description=This+movie+was+produced+by+Helioviewer.org&tags=SDO%2CAIA%2C94&share=true
Query Parameters:
  • id (string) – Unique movie identifier. (Required)

  • title (string) – Movie title.

  • description (string) – Movie description.

  • tags (string) – Comma-separated keyword tags.

  • share (boolean) – Share the movie with the Helioviewer community.

  • html (boolean) – Output response as HTML instead of JSON.

Status Codes:
  • 200 OK

    Upload status.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "status": "upload in progress."
    }
    

GET /getUserVideos/

List recently shared user videos

Get a list (newest first) of user-generated movies that have been publicly shared to YouTube.

Example Request

https://api.helioviewer.org/v2/getUserVideos/?num=2
Query Parameters:
  • num (integer) – Number of movies to return. Default is 10.

  • since (string) – Truncate results if this date/time is reached. ISO 8601 UTC format.

  • force (boolean) – Bypass cache to retrieve the most up-to-date data.

  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    Array of shared user videos.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": "J5tX5",
            "url": "http://www.youtube.com/watch?v=x2VYjI1Eo3M",
            "thumbnails": {
                "icon": "http://api.helioviewer.org/cache/movies/2014/02/27/J5tX5/preview-icon.png",
                "small": "http://api.helioviewer.org/cache/movies/2014/02/27/J5tX5/preview-small.png",
                "medium": "http://api.helioviewer.org/cache/movies/2014/02/27/J5tX5/preview-medium.png",
                "large": "http://api.helioviewer.org/cache/movies/2014/02/27/J5tX5/preview-large.png",
                "full": "http://api.helioviewer.org/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": "http://api.helioviewer.org/cache/movies/2014/02/27/L5tX5/preview-icon.png",
                "small": "http://api.helioviewer.org/cache/movies/2014/02/27/L5tX5/preview-small.png",
                "medium": "http://api.helioviewer.org/cache/movies/2014/02/27/L5tX5/preview-medium.png",
                "large": "http://api.helioviewer.org/cache/movies/2014/02/27/L5tX5/preview-large.png",
                "full": "http://api.helioviewer.org/cache/movies/2014/02/27/L5tX5/preview-full.png"
            },
            "published": "2014-02-27 14:54:08"
        }
    ]
    

Website

GET /getNewsFeed/

Get the Helioviewer Project blog RSS feed

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

Example Request

https://api.helioviewer.org/v2/getNewsFeed/
Query Parameters:
  • callback (string) – Wrap the response object in a named JavaScript function call (JSONP).

Status Codes:
  • 200 OK

    RSS XML feed.

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/rss+xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0">
      <channel>
        <title>The Helioviewer Project Blog</title>
        <link>http://blog.helioviewer.org</link>
        <description>Explore your heliosphere</description>
        <item>
          <title>Follow the Helioviewer Project on Twitter</title>
          <link>http://blog.helioviewer.org/2014/01/28/follow-the-helioviewer-project-on-twitter/</link>
          <pubDate>Tue, 28 Jan 2014 15:16:51 +0000</pubDate>
          <description>The Helioviewer Project is now on Twitter, @Helioviewer.</description>
        </item>
      </channel>
    </rss>