The Variable Star Plotter (VSP) API provides a RESTful interface to VSP, allowing application developers to write programs that obtain charts and photometry data from the AAVSO. This document outlines how to use the VSP API. It does not assume the reader is familiar with REST practices; however it does assume that you know how to make an HTTP request, as well as how to handle JSON or XML data, in your language of choice.
Using the API
Making Requests
All uses of the VSP API are made by performing an HTTP request.
Creating a New Chart
You can create a new chart by specifying the field using the name of a star or a specific RA and declination. You do this by specifying parameters in the URL query string. For example:
https://app.aavso.org/vsp/api/chart/?star=SS+Cyg&fov=60&maglimit=14.5
will give you a chart for SS Cygni, with a 60 arcmin field of view and a magnitude limit of 14.5.
The available parameters are described below. Fields with a * are required:
- star*: name of the star to plot. You must provide EITHER the star parameter OR ra and dec parameters (see below)
- ra*: right ascension
- dec*: declination
- fov*: field of view, in arcminutes.
- maglimit*: magnitude limit for the chart; stars fainter than the maglimit will not be plotted.
- title: custom title to display on the chart
- comment: comment to display at the bottom of the chart
- resolution: chart resolution in pixels per inch (ppi). Defaults to 150
- north: chart north/south orientation. Must be either "up" or "down". Defaults to "up"
- east: chart east/west orientation. Must be either "right" or "left". Defaults to "right"
- other: other variable stars to mark on the chart. Omit or leave blank for none, "gcvs" for GCVS variables, "all" for all variables
- dss: plot a DSS chart. "on" plots a DSS chart; any other value does not
- lines: draw lines for all magnitude labels. "on" draws lines, any other value does not
- special: plot a special chart. Omit or leave blank for normal charts; other options are "dslr" for DSLR chart, "binoc" for Binocular chart, "std_field" for a Standard Field chart
Chart ID
If you already have a ChartID, you can obtain the chart by simply adding the chart ID to the endpoint URL. For example, if you want the chart 1000ABC you would use
Note that the trailing slash is REQUIRED.
Output
A sample output in JSON is shown below:
{ "star": "SS Cyg", "auid": "000-BCP-220", "ra": 325.67892, "dec": 43.58608, "fov": 60.0, "maglimit": 14.5, "title": "", "comment": "", "special": null, "dss": false, "chartid": "X15223Z", "image_uri": "https://www.aavso.org/apps/vsp/chart/X15223Z.png", "resolution": 150, "photometry": [ { "auid": "000-BCP-115", "comments": null, "label": 142, "ra": "21:42:37.62", "dec": "44:04:42.0" "bands": [ { "band": "V", "mag": 5.11, "error": 0.0 } ... (more bands) ] } ... (more field stars) ] }
Many of the results correspond to the parameters used to create the chart; see "Creating a New Chart" above. Other fields:
"auid": if the chart is plotted based on a star, this is the AUID of that star
"image_uri": URL where you can access the final rendered chart, in PNG format.
"photometry": this is a list of all the photometry stars in the field. Each star is an object describing that field star, including its AUID, RA and Declination coordinates, label, and any comments. It also includes a list of bandpass measurements for the star; this will generally include at least the V magnitude, as well as any other measurements available for that star.
You can also see the full output for a chart by using the Browsable API (see below)
Output Formats
The VSP API supports multiple output formats. This allows you to use whatever format is most natural for your programming environment.
There are two methods to specify your output format:
HTTP Accept: Header
You can specify the output format by sending an Accept header as part of the HTTP request. For example, with the following header:
Accept: application/xml
the API will respond with XML-encoded data
Query string parameter
You can specify the format using a parameter as part of the URL's query string. Use the parameter format with the name of the format you'd like. For example:
Will return the data in JSON format
The VSP API currently supports three output formats:
JSON
- Accept: application/json
- format=json
Data is returned in Javascript Object Notation.
XML
- Accept: application/xml
- format=xml
Data is returned in Extensible Markup Language.
Browsable
- Accept: text/html
- format=api
This format provides a browsable API that is easy view in your browser. This format is not intended to be used by programs, but rather provides a human-readable output to allow developers a simple way to explore the API. If you visit a resource URL in your web browser, you will see this format by default.