Document toolboxDocument toolbox

Using and managing OData feeds

This article explains how to set up a Devo data query as an OData feed. This will allow you to stream the data to external tools like, for example, Microsoft ExcelTableau or Power BI. Currently, Devo feeds implement OData version 2.0.

The service root URL for OData feeds depends on your Devo domain region:

EUhttps://api-eu.devo.com/odatav2/Query.svc
USAhttps://api-us.devo.com/odatav2/Query.svc

Set up an OData feed

  1. Go to Data Search and run query whose data you want to share via OData.
  2. Click the gear icon in the table toolbar, then select Query Info → OData URI.


  3. The Create ODataV2 URL window opens.

    The following table describes the fields in this window:

    Feed friendly name Enter a name for the data feed.
    Authentication type 

    Choose one of the following authentication options:

    • No authentication - If you choose this mode, anyone with access to the feed might execute the query. For security reasons, we do not recommend this mode.
    • Domain authentication - This is the default, recommended option. It automatically uses the OData API credentials from your account preferences. You can check and edit them in the Preferences → Account Preferences area. Go to the Domain preferences for more information.
    • Standard authentication - This allows you to create a user and password that will only be used for this feed.
    TagsAdd tags to the feed to easily identify it in the Api/OData tab of the Data Management area.
  4. Click Create. The feed URL is generated and you can copy it to your clipboard.

Manage feeds

All the feeds that have been created in your domain are listed in the API & OData Feeds tab of the Administration → Data Management area. Check the API & OData feeds article for more information.

OData feed parameters

You can add query string parameters to the OData feed URI to specify the data you want to retrieve. These parameters can be used to, for example, control the amount and order of the data that an OData service returns for the query identified by the URI.

OData feed URIs may include as many parameters as required, which are always prefixed with a "&" character (except the $metadata parameter). 

The following table lists the supported parameters using a feed URL for a Devo domain in the USA cloud region:


$top

Add the $top parameter to return only the first N events of the query.

Example

https://api-us.devo/odatav2/Query.svc/716ae082-4943-43b-ab3a-48940fb168ce/544dd94cfaa4e48e831f0e7e26d8fa3/query?from=2018-10-03T07:00:00&to=2018-10-04T07:10:00&$top=10


$skip

Add the $skip parameter to skip the first N events and show only the remaining ones.

Example

https://api-us.devo/odatav2/Query.svc/716ae082-4943-43b-ab3a-48940fb168ce/544dd94cfaa4e48e831f0e7e26d8fa3/query?from=2018-10-03T07:00:00&to=2018-10-04T07:10:00&$skip=9


$select

Add the $select parameter to specify the columns of the data table you want to retrieve.

Example

https://api-us.devo/odatav2/Query.svc/716ae082-4943-43b-ab3a-48940fb168ce/544dd94cfaa4e48e831f0e7e26d8fa3/query?from=2018-10-03T07:00:00&to=2018-10-04T07:10:00&$select=eventdate,cid




$format

Add the $format parameter to return the data in a specific format. The valid formats are:

  • Atom xml (default format)
  • JSON

Add =json or =xml after the parameter to indicate the format. For example: &$format=json

Example

https://api-us.devo/odatav2/Query.svc/716ae082-4943-43b-ab3a-48940fb168ce/544dd94cfaa4e48e831f0e7e26d8fa3/query?from=2018-10-03T07:00:00&to=2018-10-04T07:10:00&$format=json



timezone

Add the timezone parameter to indicate that the dates of the from and to parameters, as outlined further below, are relative to the timezone indicated. The possible values for this parameter come from an IANA standard and more information can be found here.

Example

https://api-us.devo/odatav2/Query.svc/716ae082-4943-43b-ab3a-48940fb168ce/544dd94cfaa4e48e831f0e7e26d8fa3/query?from=2018-10-03T07:00:00&to=2018-10-04T07:10:00&timezone=Europe/Madrid

Note that if no timezone is specified then UTC is always used by default. In the example provided, Madrid is UTC+2 during summertime and UTC+1 during daylight savings time. 



$metadata

Add the $metadata parameter to return only the query metadata. You cannot combine this parameter with other parameters.

To add this parameter to the OData feed URI, first remove the query time information at the end of the URL, then add the parameter without including the '&' character.

Example

https://api-us.devo/odatav2/Query.svc/716ae082-4943-43b-ab3a-48940fb168ce/544dd94cfaa4e48e831f0e7e26d8fa3/query?from=2018-10-03T07:00:00&to=2018-10-04T07:10:00$metadata

The following is an example of an OData feed with four different parameters:

https://api-us.devo/odatav2/Query.svc/0c6f1165-4ac8-4ca4-87df-06bede2d1f53/e59f069b5bf113da8101372f50d90b8b/query?from=2018-10-02T09:40:18.224&to=2018-10-03T09:40:00&$select=eventdate,cid&$top=10&$skip=9&$format=json

In this case, you will only receive the data in the eventdate and cid columns, as specified in the select parameter. The top parameter indicates that only the first 10 events will be shown and the skip parameter will make the counting start after the first nine events. As a result, only 10 events from the event number 10 will be shown. Data will be retrieved in JSON format as indicated in the format parameter.

See the OData documentation for further details.

Working with relative time ranges

A relative date range is a period of time that is relative to the current date (last week, last month, etc). There are some rules to consider when using the relative date ranges in OData URI:

  • If you run a query without from, the request will use [dateTo - 1h, dateTo] as time range.
  • If you run a query without to, the request will use [dateFrom, now] as time range.
  • If you run a query without from and to, the request will use [now - 1h, now] as time range.
  • If you run a query using to  from, the request will use [from, now] as time range.
  • If you run a query using now  from, the request will use [now - 1h, now] as time range

See below the parameters you can add to your OData URI to apply relative date ranges.

From (defines the start date)

  • Relative - It retrieves the current time (day, month, hour, minutes and seconds) excluding a specified range of days/hours. The valid range dates you can use are days(d) and hours(h).

Example

Suppose the current date is 22/08/2016 15:20:00.

  • &from=1d → 21/08/2016 15:20:00
  • &from=7d → 15/08/2016 15:20:00
  • &from=24h → 21/08/2016 15:20:00
  • &from=11h → 22/08/2016 04:20:00
  • &from=26h → 21/08/2016 13:20:00
  • Absolute - The only valid range date you can use is days(d).

Example

Suppose the current date is 22/08/2016 15:20:00.

  • &from=1ad → 21/08/2016 00:00:00
  • &from=7ad → 15/08/2016 00:00:00
  • Specific - They are specific filters using the current date and hour,but the minutes and seconds are setup as 0.

Example

Suppose the current date is 22/08/2016 15:20:00.

  • the result will be 22/08/2016 00:00:00

To (defines the end date)

  • Relative - The valid range dates you can use are days(d) and hours.

Example

  • &from=2016-08-22T15:20:00&to=1d → 23/08/2016 15:20:00
  • &from=2016-08-22T15:20:00&to=7d → 29/08/2016 15:20:00
  • &from=2016-08-22T15:20:00&to=24h → 23/08/2016 15:20:00
  • &from=2016-08-22T15:20:00&to=3h → 22/08/2016 18:20:00
  • &from=2016-08-22T15:20:00&to=26h → 23/08/2016 17:20:00
  • Absolute - The only valid range dates you can use are days(d).

Example

  • &from=2016-08-22T15:20:00&to=1ad → 23/08/2016 00:00:00
  • &from=2016-08-22T15:20:00&to=7ad → 29/08/2016 00:00:00
  • Specific - Based on specific operators such as end of day, end of month, etc.
    • &to=now - it retrieves the current hour, minutes and seconds.

Example

Suppose the current date is 22/08/2016 15:20:00.

  • &from=2016-08-20T00:00:00&to=now  from 20/08/2016 00:00:00 to 22/08/2016 15:20:00
    • &to=endday - covers the range time between "from" date and the end of the day. It's the same as "&to=1ad".

Example

  • &from=2016-08-20T15:00:00&to=endday → from 20/08/2016 15:00:00 to 21/08/2016 00:00:00
    • &to=endmonth - covers the range time between the current date and the end of the month.

Example

  • &from=2016-08-20T15:00:00&to=endmonth → from 20/08/2016 15:00:00 to 01/09/2016 00:00:00