Custom Integrations
BVD expects to receive your data as HTTP post requests in JavaScript Object Notation (JSON) format.
It is recommended that your JSON input contains flat data, consisting of name-value pairs. If you need to send nested data, BVD automatically flattens the data (see also Nested JSON data). You can also send JSON data in arrays. This enables you to send multiple data objects in a single web service call (see also JSON data arrays).
Example: Sending JSON Data to BVD
Learn More

The BVD receiver URL should look something like this:
-
URL with dimensions only:
http(s)://<BVD_server>:<port>/api/submit/<API key>/dims/<dims>[,<dims=value>]
-
URL with tags only:
http(s)://<BVD_server>:<port>/api/submit/<API key>/tags/<tags>
-
URL with both dimensions and tags:
http(s)://<BVD_server>:<port>/api/submit/<API key>/dims/<dims>[,<dims=value>]/tags/<tags>
The tags can also precede the dims:
http(s)://<BVD_server>:<port>/api/submit/<API key>/tags/<tags>/dims/<dims>[,<dims=value>]
-
<BVD_server>
-
The Fully Qualified Domain Name (FQDN) of the BVD server.
-
<port>
-
The port assigned to the BVD receiver during the configuration. Default: 12224 (HTTP) or 12225 (HTTPS).
-
<API_key>
-
Identifies your BVD instance. You can find the API key in
Administration > System Settings.
-
<tags>
-
Static labels that you can attach to your data to create more specific data channels.
-
<dims>
-
The names in your JSON name-value pairs. Select and combine dimensions (dims) that uniquely identify your data.
-
<dims=value>
-
The names and values in your JSON name-value pairs. Directly assign values with names to improve data identification. Use this option, for example, if you have separate servers of the same data source for different locations and you want separate dashboards for each location. These name-value pairs do not have to be part of the JSON input. If they are, the values in the JSON input will be overwritten by the values in the URL.

You can also submit the dims and tags as HTTP parameters of the URL.
Example:
http://bvd.example.com:12224/api/submit/47a648e9065d465012e541288b5a345e?dims=viewName,ciName,kpiName,location=nyc&tags=omi,kpi

You can combine the receiver URL and HTTP parameters to send dims and tags. Define the dims and tags as part of the URL path first, then add additional dims and tags as HTTP parameters.
Example:
http://bvd.example.com:12224/api/submit/47a648e9065d465012e541288b5a345e/dims/viewName,ciName=abc/tags/omi,kpi?dims=kpiName,location=nyc&tags=bvd
However, if the same dimension or tag is specified more than once, the value of the last query parameter overwrites the values of the previous parameters. The value of the last query parameter appears multiple times as data channel.
Example:
http://bvd.example.com:12224/api/submit/47a648e9065d465012e541288b5a345e/dims/location=boston?dims=location=nyc&tags=east&dims=location=atlanta
In this example, the dim location
will have the value atlanta
. Because dimensions are accumulated, the value atlanta
appears three times as data channel.

You can submit multiple JSON objects in a single web service call by adding them to an array.
Array: |
[ { |

If the input contains nested data, BVD automatically flattens the data by renaming nested name-value pairs to include the names of the parent elements, separated by slashes (/), for example:
Nested JSON data: |
Flattened JSON data: |
{ |
{ |

BVD stores only a specific number of data records per channel. The records are only kept if they are related to a widget.