API Overview

Different data consumer use cases may require different data delivery types. For example, an emergency car service may require a real-time event when an accident takes place. On the other hand, Usage-Based Insurance may pull a car’s odometer once a week. Lastly, a data analytics company might opt for historical car data to understand traffic trends. Otonomo provides different data delivery methods to cater to these different use case requirements.

Otonomo provides a rich set of APIs to serve the different needs of mobility applications. This page guides developers to choose the right APIs for their application as well as describes Otonomo's data models and concepts.

  1. Aggregated Data APIs ](https://docs.otonomo.io/docs/reports): CSV reports which contain historical, aggregated (masked) vehicle data. Historical data reports are triggered by a RESTful API call with parameters that define a region (e.g. city) and time span for the report. Report generation may take minutes up to hours to complete. Several historical reports exist for different data types (e.g vehicle data points and vehicle trips).

  2. Vehicle status: A semi-realtime RESTful API that returns the last known status of a specific vehicle. Used by personal driver applications such as fuelling and parking.

  3. Streaming: a ‘push’ mechanism that continuously streams real-time data to a Data Consumer. Streaming uses HTTP POST requests and can send both aggregate and personal vehicle data. A stream is created by subscribing to a stream. Stream subscription defines one or more data filters such as desired vehicle area (i.e. city), maximal point latency, etc. Streaming is optimal for applications that require real-time, rich, vehicle data.

  4. Events: An event is defined by a logical rule on a vehicle data point. When a rule evaluates to true, an event message is triggered and sent to the data consumer. The system ‘remembers’ that an event was sent per specific rule and will only send it once. An example event maybe a fuelling application which gets an event whenever a vehicle traveling at a certain radius from a gas station, crosses the 10% fuel level. Events are a great way for applications to save processing power and network bandwidth and only get the data they need in real-time. Events can be used for both personal and aggregate (masked) vehicle data.

Table: data delivery methods key attributes

Data Delivery MethodReal Time/HistorcialAggregatePersonalPush/Pull
Historical Data ReportsHistoricalYesYes*Pull
Vehicle statusReal-timeNoYesPull
StreamingReal-timeYesYes*Push
Events*Real-timeYesYesPush
  • In beta