Validic Inform

Validic Inform Developer Hub

Welcome to the Validic Inform developer hub. You'll find comprehensive guides and documentation to help you start working with Validic Inform as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started

Requesting Access to Data

You just have to ask...

Before we can access user-generated data, we first must ask the individual, who we’ll call the “end user”, for access to their data.

2. Request Access to Data

How Authorization Works

If you’re familiar with the application/device API relationship, you can skip this next bit.

To gain access to user-generated data, your customers or “end users” must first grant you permission to access their data. To do this, you need a developer account for every data source we support. Sounds daunting, doesn’t it? Never fear! The Validic Implementation team will complete this task for you. By now, your Account Manager will have forwarded you a form you’ll need to complete to start this process. If you haven’t completed it, please do so now. If you have not received this document, please email them now.

This credentialing process can take several weeks to complete, so to help customers deploy faster, we provide a sandbox organization to every customer. So code away! We’ll provide updated credentials once we’re done setting up all the developer accounts.

Accessing the Marketplace

When you first provisioned a user, you’ll notice a link to the Validic Marketplace and a Marketplace token in the response. By using this marketplace URL, you can rapidly request access to the end users data. Just provide the URL, click the icon associated with the application you’d like synced, and follow the prompts as provided by the data source. Once complete, Validic will begin to retrieve, standardize and store data.

{
    "id": "59c539c0164f25000199c47d",
    "uid": "se178982",
    "marketplace": {
        "token": "55c28385e0f449d3de01ff5fd3SAMPLE54d8de5b95d6d98fa4524d5ea54b23",
        "url": "https://syncmydevice.com?token=55c28385e0f449d3de01ff5fd3SAMPLE54d8de5b95d6d98fa4524d5ea54b23"
    },
    "mobile": {
        "token": "38152fbb32SAMPLE8ebc36a6be1d3256"
    },
    "location": {
        "timezone": "America/New_York",
        "country_code": "US"
    },
    "sources": [
        {
            "type": "ihealth",
            "connected_at": "2017-09-22T16:33:26Z"
        }
    ],
    "status": "active",
    "created_at": "2017-09-22T16:26:40Z",
    "updated_at": "2017-09-22T16:26:40Z"
}

Custom Marketplace

We also offer a JSON representation of the marketplace for customers who want to provide a custom marketplace to their users. The JSON is the same data we use to build our standard marketplace so there won't be a discrepancy in how the connection process works. The JSON can be requested simply by adding "&format=json" to the end of the user's marketplace URL.

Redirect URI Required

When using the custom marketplace, customers should append a redirect_uri query parameter to the connect_url and disconnect_url to ensure users are properly redirected following the connection process, otherwise, the user will be redirected to the standard marketplace.

The following example shows the JSON representation of an end users marketplace. You can use this JSON to build your own marketplace by using the connect and disconnect URL's to guide the end user through authentication.

https://syncmydevice.com/?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d&format=json
[
    {
        "type": "omron",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/omron.png",
        "disconnect_url": "https://syncmydevice.com/auth/omron/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "tomtom",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/tomtom.png",
        "disconnect_url": "https://syncmydevice.com/auth/tomtom/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "polar",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/polar.png",
        "disconnect_url": "https://syncmydevice.com/auth/polar/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "fitbit",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/fitbit.png",
        "disconnect_url": "https://syncmydevice.com/auth/fitbit/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "garmin",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/garmin.png",
        "disconnect_url": "https://syncmydevice.com/auth/garmin/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "misfit",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/misfit.png",
        "disconnect_url": "https://syncmydevice.com/auth/misfit/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "strava",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/strava.png",
        "disconnect_url": "https://syncmydevice.com/auth/strava/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "nokia",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/nokia.png",
        "disconnect_url": "https://syncmydevice.com/auth/nokia/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "jawbone",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/jawbone.png",
        "disconnect_url": "https://syncmydevice.com/auth/jawbone/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "ihealth",
        "connected": true,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/ihealth.png",
        "disconnect_url": "https://syncmydevice.com/auth/ihealth/disconnect?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    },
    {
        "type": "suunto",
        "connected": false,
        "logo_url": "//validic-v2-assets.s3.amazonaws.com/cmapi/images/sources/suunto.png",
        "connect_url": "https://syncmydevice.com/connect/suunto?token=ae4fdfd364e42137af14b207e8efd552bcdefaae7b99e3e49361e6289701eb0d"
    }
]

What's Next

Accessing Data

Requesting Access to Data

You just have to ask...