Retrieve SAS Token & POST URL

All position events posted to the Atrius platform should contain an authorization header with SharedAccessSignature token. Each successful call to the Navigator Initialization API will result in a Response Body that contains both the endpoint URI and an access token which can be used to formulate a HTTP POST on future position updates.

To retrieve information from the Navigator Initialization API, execute a GET operation against the navigator-configurations endpoint (EXAMPLE)

GET https://api.us.atrius-iot.io/api/v1/navigator-configurations/device-id/{deviceID}/site-id/{siteID}

With the following headers

{
  "atr-environment-id": <environment string>, //For example "atrdemo01us"
  "atr-partner-id": <partner guid>,
  "atr-request-source": <source of request>,
  "atr-subscription-key": <subscription key to organization for site>
}

The result will look similar to the following:

{
  "eventHubSendUrl": "https://...",
  "sasToken": "SharedAccessSignature ..."
  ...
}

Sending Data to Spatial Data Ingestion

With the eventHubSendUrl and sasToken in hand, you’re ready to begin posting locations to the ingestion engine.

POST https://<eventHubSendUrl from previous GET request>

With the following headers:

{
  "Content-Type": "application/json",
  "Authorization": <sasToken from previous GET request&gt
}

The POST body must not exceed 256 KB, and is expected to be an array with the following required / optional parameters:

[
  {
    // Required Parameters
    "pk": "65cd5987-3b24-4c3b-bbff-84e1a4f3951f", //(string) - Partner Key/Guid
    "s": 143, //(int) - Floor Space Identifier
    "p": "v", //(string) - Capture Type Pick from Following (b, v, ble, vlc, cloudtrax, cisco, trilateration)
    "i": "ABL-G-I-7A8B881C-9352-4470-91B5-50BD4C0730DD”, //(string) - Unique Device Identifier
    "t": "2015-12-30T16:46:55.107+0000”, //(string) - Timestamp Received (ISO 8601 - UTC)

    // Required or Optional Depending on Provided Data
    "x": 4, //(float | optional) - Local X Coordinate on Lights Map (meter) (optional if longitude exists)
    "y": 2.54161, //(float | optional) - Local Y Coordinate on Lights Map (meter) (optional if latitude exists)
    "z": 0, //(float | optional) - Local Z Coordinate (meter)
    "lon": 0.0, //(double | optional) - Longitude (decimal degrees) (optional if x exists)
    "lat": 0.0, //(double | optional) - Latitude (decimal degrees) (optional if y exists)

    // Optional Parameters
    "o": 1, //(int | optional) - Organization Identifier
    "sid": 21, //(int | optional) - Site Identifier
    "f": 90, //(int | optional) - Floor Identifier
    "pid": null, //(varchar | optional) - Unique Position Identifier (we calc)
    "cx": 2.54161, //(float | optional) - Client Converted Local X Coordinate (meter)
    "cy": 4, //(float | optional) - Client Converted Local Y Coordinate (meter)
    "ca": 90.00002, //(float | optional) - Client Converted Local Orientation (degree)
    "a": 180, //(float | optional) - Orientation (degree)
    "hd": null, //(float | optional) - Heading (degree)
    "h": null, //(float | optional) - Elevation
    "cn": 39.0, //(float | optional) - Closest Node Distance (meter)
    "cs": "83b887f0-6749-42f3-a77d-2e12666b9a70", //(string | optional) - Closest Sensor Name
    "os": null, //(bool | optional) - Position is outside a zone, but inside a capture area
    "oid": null, //(string(6) | optional) - Manufacturer OID
    "f1": 1, //(int | optional) - Custom Property Lookup 1
    "f2": 2, //(int | optional) - Custom Property Lookup 2
    "f3": 3, //(int | optional) - Custom Property Lookup 3
    "f4": 4, //(int | optional) - Custom Property Lookup 4
    "f5": 5, //(int | optional) - Custom Property Lookup 5
    "f6": 6, //(int | optional) - Custom Property Lookup 6
    "f7": 7, //(int | optional) - Custom Property Lookup 7
    "f8": 8, //(int | optional) - Custom Property Lookup 8
  },
  {...}
]