Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The PowUnity tracking server includes a web API to access GPS tracking data from your trackers using a REST API. Documentation for the API can be found in our API Reference which is based on the Swagger format.

...

There are two authorization options:

  1. Using session cookies (see "session" URL path)

  2. Standard HTTP authorization header

View API documentation:

Access token

As an alternative to email and password login, there is an option to use an account token for authorisation.

...

To create a token use the "token" query parameter in a session GET request:

Code Block
https://traccariot.powunity.com/api/session?token=YOUR_ACCESS_TOKEN

...

In addition to the REST API, we provide access to a WebSocket endpoint for live location updates and events. The URL for the connection:

Code Block
httpswss://traccariot.powunity.com/api/socket

Session cookie is the only authorization option for the WebSocket connection.

...

Sample WebSocket API Client

  1. Web - Here you can find a (non-complete) web project (HTML / Javascript), showing how to draw the devices of an account on a map including WebSocket live updates.

  2. Node.js - Here we provide a simple script to subscribe to your BikeTrax event stream and either print it to stdout or process it as you wish. In the sample script we log the events and forward them to a local http endpoint of choice.

Webhook Integration

The BikeTrax Cloud can be configured to call a HTTP(S) endpoint of your choice for every new event generated by your devices' activity.

  • Webhooks are sent as HTTP(S) POST

  • The Content-Type is application/json

  • A X-PowTxn header is set, please log this and quote it for any support queries concerning a specific event.

  • The payload is JSON-encoded BikeTrax event data, containing all details the system knows about the Device.

    • Here is an example of an event of type “deviceOnline”,

      Code Block
      {
        "event": {
          "id": 1,
          "attributes": {},
          "deviceId": 1,
          "type": "deviceOnline",
          "serverTime": "2021-01-01T00:00:00.000+00:00",
          "positionId": 0
        },
        "device": {
          "id": 1,
          "attributes": {},
          "groupId": 0,
          "name": "Test Device 1",
          "uniqueId": "1",
          "status": "online",
          "lastUpdate": "2021-01-01T00:00:00.000+00:00",
          "positionId": 0,
          "geofenceIds": [],
          "disabled": false
        }
      }
  • The consuming server should respond with HTTP status code either 200 or 201. The HTTP response body is ignored.

  • If the webhook fails the BikeTrax Cloud will NOT re-send the data. There is no notification of failed webhooks at this time.

Setting up a webhook

  1. Log in to https://traccar.powunity.com

  2. click Settings at the top right:

    Image Modified
  3. Select Account

  4. Click on the Attributes button in the dialog that opened

  5. Use the + button to add the following attributes to the table - NOTE: Attribute names are case sensitive!

    1. webhookUrl This is the URL that will be called on every new event via a HTTP POST request. We highly encourage to use a URL starting with https:// but http:// is also supported for testing purposes.

    2. webhookPsk Optional. If set, the HTTP(S) requests will contain a Authorization header with this attribute’s data as value. This should allow Basic and Bearer authorization methods to be implemented easily.

    3. webhookTypes Optional. If set, this should be a comma (,) separated list of event types which are to be forwarded by the webhook. If this attribute is not present then all events are sent. Some useful possible values are: deviceOnline,deviceOffline,deviceMoving,deviceStopped,alarm,geofenceEnter,geofenceExit,ignitionOn,ignitionOff

    4. Here is what the Attributes dialog could look like:

...

    1. Image Added
  1. Once the attributes are set close the Attributes and Account dialogs. The webhooks are then activated immediately.

Info

Non-alert events are ignored for non-b2b users or in case disableWebhooks is "true"