Developer Guide for the Aura Now API

This guide includes help for developers targeting the Aura Now API. It is intended to give an overview of the API features, the expected order of calls and any other business rules associated with the API. To see the full details for each API method and test those methods, see the APIs section.

Only registered and approved users of the Aura Now website may access the API. If you do not already have a website account you must first register using the following sites:

https://auranow.satcomglobal.com       (production website)
https://uatauranow.satcomglobal.com    (test website)

This registration should be in place before attempting to register and subscribe for API access as described below.

Registration, Subscription, and Authorisation

All developer users must register to use the API features. Registration is described in the Developer Guide. To use the Aura Now API you need an active subscription to the Aura Now product. The subscription process is described in the Developer Guide. Authorisation for the Aura Now API requires you to supply your subscription key in the HTTP request header:

Ocp-Apim-Subscription-Key: your-subscription-key

Change Log

Change log for the Aura Now API.

Glossary of API Resource Names

Within the Aura Now API, the following names are used to describe resources in the system:

  • WAN Interface: a satellite terminal or other WAN interface, for example: V-SAT, L-Band, 5G network, Wi-Fi, etc.

  • Installation: a location where WAN interfaces are installed, for example a ship

  • Installation Group: a collection or grouping of installations, for example a fleet of ships

  • Client: a client company, for example a shipping company

  • Client Group: a collection of client companies

The hierarchy of resources in the system is: a client has zero or more installation groups, an installation group has zero or more installations, and an installation has zero or more WAN interfaces. Example usage for a shipping company: satellite terminals are assigned to ships, ships are grouped into fleets, fleets are assigned to a client company.

Installations and WAN Interfaces

List Installations

Once you have an active subscription, the first step to using the Aura Now API is usually to list your installations using following API method:

GET /api/installations

Ensure you have set your Aura Now subscription key in the HTTP request header as shown above.

This method returns a listing of installations that you have access to and the WAN interfaces configured for each installation. You can use the id for each item to query the current and historical status for the installations and WAN interfaces. The listing is in the form of a JSON array of installations:

[
{
// installation Id
"id": 329,
// installation name
"name": "Example ship",
// client company Id in the system
"clientId": 55,
// client company name
"clientName": "Example client",
// fleet group id
"installationGroupId": 33,
// fleet group name
"installationGroupName": "Example fleet",
// WAN interfaces configured for the installation
"wanInterfaces": [
{
// WAN interface Id
"id": 777,
// WAN interface name
"name": "Example Terminal - VSAT",
// WAN interface type Id
"wanInterfaceTypeId": 1,
// WAN interface type name
"wanInterfaceTypeName": "VSAT"
},
{
"id": 778,
"name": "Fallback Terminal - FBB",
"wanInterfaceTypeId": 1,
"wanInterfaceTypeName": "L-Band"
}]
},

...]

Each WAN interface listed has a type. The complete list of WAN interface types may be retrieved using the following method:

GET /api/waninterfaces/types

The WAN type listing is in the following format:

[
{
"id": 1,
"name": "V-SAT"
},
{
"id": 2,
"name": "L-Band"
},
{
"id": 3,
"name": "GSM"
},
...]

Get Installation details

To retrieve the installation details for an individual installation use the following method:

GET ​/api​/installations​/{installation-id}

where installation-id is the Id of the installation of interest, for example the following request returns details for installation Id 329:

GET ​/api​/installations​/329

The returned data is in the following format:

{    
"id": 329,
"name": "Example ship",
"clientId": 55,
"clientName": "Example client",

other properties are as per the example above for the installation listing method and are omitted for brevity
}

WAN interface status and installation location

The following method lists WAN interface status and location for all installations available to a user. The data is based on the latest known information. Due to the nature of the requested data this method may take a few seconds to return.

GET /api/installations/lateststatuses

The returned status data is is the following format:

[
{
// Aura Now installation Id
"installationId": 329,

// Aura Now installation name
"installationName": "Example installation",

// The latest known location for the installation
"latestLocation":
{
// Date/time for this location (Unix Epoch time format)
"unixEpochTime": 1631530710,

// Latest known latitude
"latitude": 29.5599995,

// Latest known longitude
"longitude": -89.7810974
},

// The latest known WAN connection status for the installation.
"wanConnection": "Online with AuraVSAT",

// Date/time for the last known WAN connection status (Unix Epoch time format)
"wanConnectionUnixEpochTime": 1625588720,
// WAN interface Id
"wanInterfaceId": 777,
// WAN interface name
"wanInterfaceName": "Example Terminal - VSAT",
// WAN interface type Id
"wanInterfaceTypeId": 1,
// WAN interface type name
"wanInterfaceTypeName": "VSAT"
},
...]

Note: please be aware that the wanInterfaceId, wanInterfaceName, wanInterfaceTypeId, and wanInterfaceTypeName properties may all be null if the terminal is offline, or online using a WAN interface that has not been configured in the Aura Now database. The wanConnection property is descriptive.

Get WAN status and location for an Installation

To get the latest known location and WAN connection status for an Installation use the following method:

GET /api/installations/{installation-id}/lateststatus

for example:

GET /api/installations/329/lateststatus

The data returned is in the following format:

{
"installationId": 329,
"installationName": "Example installation",
"latestLocation": {
"unixEpochTime": 1631805900,
"latitude": 32.9323997,
"longitude": -61.9753990
},
"wanConnection": "Online with AuraVSAT",
"wanConnectionUnixEpochTime": 1625588664,
// WAN interface Id
"wanInterfaceId": 777,
// WAN interface name
"wanInterfaceName": "Example Terminal - VSAT",
// WAN interface type Id
"wanInterfaceTypeId": 1,
// WAN interface type name
"wanInterfaceTypeName": "VSAT"
}

Get the location for an Installation between two dates

The location (latitude, longitude) for an installation between two dates is listed using the following method:

GET /api/installations/{installation-id}/positionfixes?startTimeUnix={start-time}&endTimeUnix={end-time}

The {start-time} and {end-time} parameters should be supplied in Unix Epoch timestamp seconds format. You may request a maximum of 24 hours worth of location data in a single request. For example:

GET /api/installations/329/positionfixes?startTimeUnix=1632787200&endTimeUnix=1632873599

The data returned is in the following format:

[
{
"unixEpocTime": 1632787200,
"latitude": 14.6676998,
"longitude": -74.4087982
},
{
"unixEpocTime": 1632787500,
"latitude": 14.6676998,
"longitude": -74.4087982
},
...]

WAN Interface Usage & Performance

Satellite terminal usage and performance metrics are accessed via the WAN interface Id. There are also convenience methods that allow the same data to be accessed via the installation Id.

VSAT RF Performance

This data is currently only available for VSAT terminals. To get recent RF performance of the VSAT terminal use the following method:

/api/waninterfaces/{wan-interface-id}/rfperformance?startTimeUnix={start-time}&endTimeUnix={end-time}&interval=300

The {start-time} and {end-time} parameters should be supplied in Unix Epoch timestamp seconds format. The interval is the summary duration for the returned data. Usually 300 seconds for short durations; 300 seconds (5 minutes) is the highest temporal resolution available in the data.

An example call for the VSAT terminal on "Example ship" (as shown above) is:

/api/waninterfaces/777/rfperformance?startTimeUnix=1630450800&endTimeUnix=1630537200&interval=300

This API method call will return the RF performance data for the VSAT terminal (WAN interface Id 777) between Sep 01 2021 at 00:00:00 and Sep 02 2021 at 00:00:00. The returned data is is the following format:

[{
// lower-bound timestamp for this data value
"unixEpochTimeStart": 1630450800,

// upper-bound timestamp for this data value
"unixEpochTimeEnd": 1630451100,

// Carrier-to-noise-density ratio (C/N0). Terminal's upstream average C/N0 as measured by the receiving line card. Expressed in dBHz.
"upstreamCN0": 66.6662979,

// Terminal's downstream average signal-to-noise ratio (SNR) as measured by the receiving terminal. Expressed in dB.
"downstreamSnr": 9.0883541
},
...]

An alternative is to query the RF performance for the installation by specifying the Installation Id. The following method returns data for the first VSAT terminal on the installation. This will return the same data as the call above:

/api/installations/{installation-id}/rfperformance?startTimeUnix={start-time}&endTimeUnix={end-time}&interval=300

An example call for the "Example ship" installation 329 (as shown above) is:

/api/installations/329/rfperformance?startTimeUnix=1630450800&endTimeUnix=1630537200&interval=300

VSAT Satellite Beam

This data is currently only available for VSAT terminals. To list the satellite beams used recently by the VSAT terminal use the following method:

/api/waninterfaces/{wan-interface-id}/beamusage?startTimeUnix={start-time}&endTimeUnix={end-time}&interval=300

The {start-time} and {end-time} parameters should be supplied in Unix Epoch timestamp seconds format. The interval is the summary duration for the returned data. Usually 300 seconds for short durations; 300 seconds (5 minutes) is the highest temporal resolution available in the data.

An example call for the VSAT terminal on "Example ship" (as shown above) is:

/api/waninterfaces/777/beamusage?startTimeUnix=1630450800&endTimeUnix=1630537200&interval=300

This API method call will return the satellite beam data for the VSAT terminal (WAN interface Id 777) between Sep 01 2021 at 00:00:00 and Sep 02 2021 at 00:00:00. The returned data is is the following format:

[
{
// lower-bound timestamp for this data value
"unixEpochTimeStart": 1630450800,

// upper-bound timestamp for this data value
"unixEpochTimeEnd": 1630451100,

// satellite beam name
"beamName": "SES-14_NA09_WDB"
},
...]

Download Speeds

This data is currently only available for VSAT terminals. To retrieve download data transfer rate for a VSAT terminal use the following method:

/api/waninterfaces/{wan-interface-id}/downloadspeeds?startTimeUnix={start-time}&endTimeUnix={end-time}&interval=300

This data transfer rate is calculated based on the volume of data passed over the interval; it represents the average data transfer rate for the duration of the interval. Units for the data transfer rate are kilobits per second (Kbps).

The {start-time} and {end-time} parameters should be supplied in Unix Epoch timestamp seconds format. The interval is the summary duration for the returned data. Usually 300 seconds for short durations; 300 seconds (5 minutes) is the highest temporal resolution available in the data.

An example call for the VSAT terminal on "Example ship" (as shown above) is:

/api/waninterfaces/777/downloadspeeds?startTimeUnix=1630450800&endTimeUnix=1630537200&interval=300

This API method call will return the download data transfer rates for the VSAT terminal (WAN interface Id 777) between Sep 01 2021 at 00:00:00 and Sep 02 2021 at 00:00:00. The returned data is is the following format:

[    
{
// lower-bound timestamp for this data value
"unixEpochTimeStart": 1630450800,

// upper-bound timestamp for this data value
"unixEpochTimeEnd": 1630451100,

// data transfer rate in kilobits per second (Kbps)
"dataRate": "64.58"
},
...]

Upload Speeds

This data is currently only available for VSAT terminals. To retrieve upload data transfer rate for a VSAT terminal use the following method:

/api/waninterfaces/{wan-interface-id}/uploadspeeds?startTimeUnix={start-time}&endTimeUnix={end-time}&interval=300

This method is used in the same way as the downloads speeds method detailed above and returns data in the same format.

Data Volumes

This data is currently only available for VSAT terminals. To retrieve downloaded and uploaded data volumes for a VSAT terminal use the following method:

/api/waninterfaces/{wan-interface-id}/totaldatavolumes?startTimeUnix={start-time}&endTimeUnix={end-time}&interval=300

This data volume is the sum of data passed over each interval. Units for the data transfer volumes are megabytes (MB). The values returned represent total amount of IP data (entire IP packet, including headers) that has been received/transmitted over the air by the remote terminal. If TCP acceleration and if UDP compression is used, then this will reflect the size of the data after compression.

The {start-time} and {end-time} parameters should be supplied in Unix Epoch timestamp seconds format. The interval is the summary duration for the returned data. Usually 300 seconds for short durations; 300 seconds (5 minutes) is the highest temporal resolution available in the data.

An example call for the VSAT terminal on "Example ship" (as shown above) is:

/api/waninterfaces/777/totaldatavolumes?startTimeUnix=1630450800&endTimeUnix=1630537200&interval=300

This API method call will return the data volume totals for the VSAT terminal (WAN interface Id 777) between Sep 01 2021 at 00:00:00 and Sep 02 2021 at 00:00:00. The returned data is is the following format:

[
{
// lower-bound timestamp for this data value
"unixEpochTimeStart": 1630450800,

// upper-bound timestamp for this data value
"unixEpochTimeEnd": 1630451100,

// Data volume downloaded in the interval (MB).
"downloadMb": "144.23"

// Data volume uploaded in the interval (MB).
"uploadMb": "26.96"
},
...]

List the active WAN Interface for an Installation

The following method returns a listing showing which WAN interface was active on the installation over a specified time period:

GET /api/installations/{installation-id}/wanstatus

for example:

GET /api/installations/329/wanstatus

The data returned is in the following format:

[
{
// Aura Now installation Id
"installationId": 329,
// Time of the event in Unix Epoch time format
"unixEpochTime": 1630870480,
// WAN interface name in use (or "Offline")
"interfaceName": "AuraVSAT",
// WAN Connection status: online ("Up") or offline ("Down")?
"status": "Up",
// WAN interface Id
"wanInterfaceId": 777,
// WAN interface name
"wanInterfaceName": "Example Terminal - VSAT",
// WAN interface type Id
"wanInterfaceTypeId": 1,
// WAN interface type name
"wanInterfaceTypeName": "VSAT"
},
{
"installationId": 329,
"unixEpochTime": 1630945204,
"interfaceName": "Offline",
"status": "Down"
},
{
"installationId": 329,
"unixEpochTime": 1630945562,
"interfaceName": "IOP",
"status": "Up"
},
...]

The listing shows the "Example installation" (id 329) was using "AuraVSAT" at 1630870480 (2021-09-16 at 10:02:18 UTC), then went offline and came back up on the "IOP".

Note: please be aware that the wanInterfaceId, wanInterfaceName, wanInterfaceTypeId, and wanInterfaceTypeName properties may all be null if the terminal is offline, or online using a WAN interface that has not been configured in the Aura Now database. The interfaceName property is descriptive.

Installation Equipment Billing Costs

The Aura Now API allows the current billing costs for an installation to be listed using the following method:

GET ​/api​/installations​/{installationId}​/costs

This method returns details of billable items on the installation from our billing system. Some of the items listed map to WAN interfaces configured within the Aura Now site, for example V-SAT terminals. Other items are only returned for information, for example a charge for DID or hardware rental. The returned data is is the following format:

[
{
// Aura Now installation Id
"installationId": 329,

// Aura Now WAN interface Id - may be null
"wanInterfaceId": 777,

// WAN interface type Id
"wanInterfaceTypeId": 1,

// WAN interface type name: "V-SAT", "L-Band", "GSM", "WiFi", or "Other"
"wanInterfaceTypeName": "V-SAT",

// Item description: "V-SAT", "L-Band", "GSM", "Rent", "Other", "Usage"
"description": "VSAT Subscription",

// Line item: Quantity
"quantity": 1.0,

// Line item: Rate
"rate": 1260.0,

// Line item: Line Total
"total": 1260.0,

// The current billing package Id
"ratePlanId": 1761,

// The current billing package Id
"ratePlanName": "MIR_1024x1024_CIR_256x256",

// Is it possible to schedule a package change for this item?
"canChangePackage": true
},
{
"installationId": 329,
"wanInterfaceId": null,
"wanInterfaceTypeId": null,
"wanInterfaceTypeName": null,
"description": "Iridium Open Port Subscription",
"quantity": 1.0,
"rate": 470.0,
"total": 470.0,
"ratePlanId": 1862,
"ratePlanName": "IOP Unlimited MB VSAT Backup",
"canChangePackage": false
},
...]

Billing Package Management

The Aura Now API offers features that allow the billing package to be updated for certain WAN interfaces. In this initial release of the software changes to the data package for Aura VSAT terminals can be scheduled. These changes allow the data package to be upgraded, downgraded, or suspended for a specified number of days.

How to Schedule a Billing Package Change

This section describes the API calls required to schedule a package change for a WAN interface. As stated above, not all equipment items associated with an installation support the package change feature.

Step 1: The first step to schedule a package change for a WAN interface is to obtain the installation Id for the ship of interest:

GET ​/api​/installations

Step 2: Obtain the list of current packages and costs associated with the installation:

GET ​/api​/installations​/{installation-id}​/costs

e.g.

GET ​/api​/installations​/329/costs

Only items marked "canChangePackage": true support the package change feature.

[
{
"installationId": 329,
"wanInterfaceId": 777,
"wanInterfaceTypeId": 1,
"wanInterfaceTypeName": "V-SAT",
"description": "VSAT Subscription",
"quantity": 1.0,
"rate": 1250.0,
"total": 1250.0,
// current billing package id for the item
"ratePlanId": 1761,
// current billing package name for the item
"ratePlanName": "MIR_1024x1024_CIR_256x256",
// does this item support package changes?
"canChangePackage": true
},
{
"installationId": 329,
"description": "Iridium Open Port Subscription",
"ratePlanName": "IOP Unlimited MB VSAT Backup",
"canChangePackage": false
properties have been removed from this item for brevity
},
...]

For our "Example installation" (Id: 329) we can see the V-SAT terminal (WAN interface Id: 777) supports package changes ("canChangePackage": true).

Step 3: To see the listing of packages that the V-Sat terminal supports, list the available packages for the WAN interface:

GET ​/api​/waninterfaces​/{wanInterface-id}​/packages

e.g.

GET ​/api​/waninterfaces​/777​/packages

The resultant package list is shown below (truncated for brevity):

[
{
// WAN interface Id this package may be assigned to
"wanInterfaceId": 777,
// Package Id
"ratePlanId": 1863,
// Package name - in this instance suspend the data package for the terminal
"ratePlanName": "Skala_Suspend",
// Monthly rate for the package subscription
"subscriptionFeeRate": 0.0,
// daily adjustment to the fee based on the current active package for the terminal
"dailyAdjustment": -35.0
},
{
"wanInterfaceId": 777,
"ratePlanId": 1756,
"ratePlanName": "MIR_1024x256_CIR_512x128",
"subscriptionFeeRate": 1580.0,
"dailyAdjustment": 17.0
},
...]

Step 4: Schedule a package change for the V-Sat terminal using a POST request:

POST​ /api​/waninterfaces​/{wanInterface-id}​/packagechanges

{
// Start date for the new package. Time in UNIX Epoch time
"startDate": 0,

// End date for the new package. Time in UNIX Epoch time
"endDate": 0,

// Rate plan selected. Get this value from the packages method listed earlier
"ratePlanId": 0
}

For example, to upgrade the V-SAT package on the "Example installation" for 2 days in September 2021:

POST​ /api​/waninterfaces​/777/packagechanges

{
// 15th September 2021 00:00:00 UTC
"startDate": 1631660400,

// 17th September 2021 00:00:00 UTC
"endDate": 1631833200,

// MIR_1024x256_CIR_512x128
"ratePlanId": 1756,

// Required: one or more email addresses that will be notified of package change
"notificationEmails": ["example@email", "example2@email"]
}

The HTTP response code will be 200 for a successful result. The response body details the scheduled package change:

{
// The unique record id for this package change
"recordId": 294568
}

Optional, store the recordId property in the response to query the details of the scheduled package change.

Get the scheduled package change by Record Id

The package change details returned in the previous method may be retrieved by record Id, using the following method:

GET ​/api​/waninterfaces​/{wanInterfaceId}​/packagechanges​/{recordId}

So for the example above:

GET ​/api​/waninterfaces​/777​/packagechanges​/294568

List the scheduled package changes for a WAN interface

The following method lists all scheduled (or current) package changes for a WAN interface:

GET /api/waninterfaces/{wanInterface-id}/packagechanges

for example the following call lists the scheduled and current package changes for the V-SAT terminal on the "Example installation":

GET /api/waninterfaces/777/packagechanges

The result is an array of scheduled package changes (as shown in the POST response above) in the following format:

[
{
// The unique record id for this package change
"recordId": 294568,

// details of the installation and WAN interface
"installationId": 329,
"wanInterfaceId": 777,
"wanInterfaceTypeId": 1,
"wanInterfaceTypeName": "V-SAT",
// 15th September 2021 00:00:00 UTC
"startDate": 1631660400,
// 17th September 2021 00:00:00 UTC
"endDate": 1631833200,
// The new package scheduled for use on these dates
"ratePlanId": 1757,
"ratePlanName": "MIR_1024x512_CIR_256x128",
// the daily fee for this package
"dailyFee": 25.0,
// the monthly subscription fee for this package
"subscription": 1580.0,
// the difference between the base package and the upgraded package per day
"unitPrice": 17.0,
// the number of days scheduled for the package upgrade
"quantity": 2.0,
// the total cost of the upgrade ( 2 * 17 = 34 )
"total": 34.0,
// email address of the user account that scheduled the package change
"userEmail": "example@emailuser.com",
// Can this change be cancelled? This will be false if the upgrade has already started
"canCancel": true,
// can the start date be amended? This will be false if the upgrade has already started
"canChangeStartDate": true,
// can the end date be amended? This should be true until the last day of the upgrade
"canChangeEndDate": true,
// can the selected package be amended? This will be false if the upgrade has already started
"canChangeRatePlan": true
},
...]

Cancel a scheduled package change for a WAN interface

Only scheduled package changes where "canCancel": true may be cancelled. To cancel a scheduled package change for a WAN interface use the following method:

DELETE /api​/waninterfaces​/{wanInterfaceId}​/packagechanges

{
// recordId for the change being cancelled
"RecordId": 294568,

// Required: list of one or more notification email addresses
    "notificationEmails": ["example@email"]
}

The request body is shown above.

An HTTP 204 (Empty) response indicates success. The response body is empty. For example:

DELETE ​/api​/waninterfaces​/777​/packagechanges​/294568

Amend a scheduled package change for a WAN interface

To amend an existing scheduled package change us the HTTP PUT method instead of the HTTP POST method. This method uses the same request body format as that used to schedule a package change:

PUT /api​/waninterfaces​/{wanInterface-id}​/packagechanges/{recordId}

{
// Start date for the new package. Time in UNIX Epoch time
"startDate": 0,

// End date for the new package. Time in UNIX Epoch time
"endDate": 0,

// Rate plan selected. Get this value from the packages method listed earlier
"ratePlanId": 0,

// Required: list of one or more notification email addresses
    "notificationEmails": ["example@email"]
}

You may only change startDate and ratePlanId if the scheduled change has not yet started. You may change endDate if the change has one or more days to run after today. All dates are UTC based.

List historical packages changes for a WAN interface

The historical package for a WAN interface may be listed using the method below:

GET /api/installations/{installation-id}/packagechanges/history

This returns an array of historical package changes in the format shown in the previous section: List the scheduled package changes for a WAN interface.