{"_id":"56f4385b3d35720e00ba984d","body":"The growing number of digital health devices and apps presents healthcare organizations with an opportunity to use the resulting data and improve their outcomes. This requires, however, a need to build and manage integrations to acquire this data. Validic solves this challenge by providing a one-to-many connection to digital health technologies. \n\nValidic is a cloud-based technology platform that connects patient-recorded data from digital health applications, devices and wearables to key healthcare companies like hospital \nsystems, providers, pharmaceutical companies, payers, health information technology platforms, health clubs and wellness companies. With access to this information, Validic’s clients can accelerate their strategic healthcare initiatives — from patient engagement and population management to care coordination, wellness programs and more. \n\nYou can learn more [here](https://www.youtube.com/watch?v=NQqEIrLaJ5g).","link_url":"","order":0,"project":"5646482fa74cd10d00a3f014","updates":[],"version":"56f4385b3d35720e00ba9839","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"createdAt":"2015-11-13T20:29:37.382Z","excerpt":"","hidden":false,"parentDoc":null,"type":"basic","slug":"getting-started","sync_unique":"","title":"Introduction","user":"55e87bcdc5bccb2d008a9ba4","__v":0,"category":"56f4385b3d35720e00ba983a","githubsync":"","isReference":false,"link_external":false,"childrenPages":[]}

Introduction


The growing number of digital health devices and apps presents healthcare organizations with an opportunity to use the resulting data and improve their outcomes. This requires, however, a need to build and manage integrations to acquire this data. Validic solves this challenge by providing a one-to-many connection to digital health technologies.

Validic is a cloud-based technology platform that connects patient-recorded data from digital health applications, devices and wearables to key healthcare companies like hospital
systems, providers, pharmaceutical companies, payers, health information technology platforms, health clubs and wellness companies. With access to this information, Validic’s clients can accelerate their strategic healthcare initiatives — from patient engagement and population management to care coordination, wellness programs and more.

You can learn more here.

{"_id":"56f4385b3d35720e00ba984e","__v":0,"api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"githubsync":"","isReference":false,"order":1,"version":"56f4385b3d35720e00ba9839","body":"#Validic REST API Overview\n\nThe Validic API is designed to enable a simple, standardized connection between healthcare companies and mobile health and wellness apps and devices. Validic captures a user’s fitness activities and health measurements over time. Each activity and measurement contain a timestamp and a note about which integration was used to track the activity.\n\nThe Validic REST API uses token-based authentication to manage and automate the creation of user accounts. All communication with the API is performed through HTTPS, and errors are communicated through HTTP response codes. All requests return JSON data.\n\nA core aspect of the Validic API is to vastly increase the speed of integration between mHealth app developers and healthcare businesses. Additionally, Validic provides critical enterprise features needed by healthcare companies that are not usually provided as a core service by app developers. These features include:\n\n##HIPAA/Safe Harbor/PHI Compliance\nValidic eliminates concerns regarding the transfer of protected health information (PHI), as all data stored in and transferred through Validic follows the “Safe Harbor” de-identification standard and complies with all HIPAA regulations.\n\n##Standardized Endpoints\nApp developers and healthcare companies rarely speak the same language. The Validic REST API translates information to something both sides can understand.\n\n##Easy connectivity\nThe Validic health app marketplace allows for a simple, one-to-many connection for healthcare businesses and app developers alike. If your company wishes to connect with 200+ mHealth apps and devices, Validic makes it simple. Get started below, and if you have any questions, [contact us](https://validic.com/demo).​","createdAt":"2015-11-18T19:09:47.216Z","excerpt":"","link_url":"","sync_unique":"","category":"56f4385b3d35720e00ba983a","link_external":false,"parentDoc":null,"slug":"service-overview","title":"Overview","updates":["56697d2e55e4b32100935de0"],"hidden":false,"project":"5646482fa74cd10d00a3f014","type":"basic","user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

Overview


Validic REST API Overview

The Validic API is designed to enable a simple, standardized connection between healthcare companies and mobile health and wellness apps and devices. Validic captures a user’s fitness activities and health measurements over time. Each activity and measurement contain a timestamp and a note about which integration was used to track the activity.

The Validic REST API uses token-based authentication to manage and automate the creation of user accounts. All communication with the API is performed through HTTPS, and errors are communicated through HTTP response codes. All requests return JSON data.

A core aspect of the Validic API is to vastly increase the speed of integration between mHealth app developers and healthcare businesses. Additionally, Validic provides critical enterprise features needed by healthcare companies that are not usually provided as a core service by app developers. These features include:

HIPAA/Safe Harbor/PHI Compliance

Validic eliminates concerns regarding the transfer of protected health information (PHI), as all data stored in and transferred through Validic follows the “Safe Harbor” de-identification standard and complies with all HIPAA regulations.

Standardized Endpoints

App developers and healthcare companies rarely speak the same language. The Validic REST API translates information to something both sides can understand.

Easy connectivity

The Validic health app marketplace allows for a simple, one-to-many connection for healthcare businesses and app developers alike. If your company wishes to connect with 200+ mHealth apps and devices, Validic makes it simple. Get started below, and if you have any questions, contact us.​

{"_id":"56f4385b3d35720e00ba9845","project":"5646482fa74cd10d00a3f014","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","category":"56f4385b3d35720e00ba983b","githubsync":"","next":{"description":"","pages":[]},"body":"The following guide will help you understand how to best use this documentation and related features. \n\n##Suggested Use\nAfter you receive your developer credentials, we suggest you move through our getting started guide section by section. We've ordered the content in a manner which mimics how users deploy our solution. Follow this guide and you shouldn't have any issues understanding how to use our software. But if you do, please reach out to our support team at [support@validic.com](mailto:support@validic.com) \n\n##Page Layout\n### Request Examples \nYou'll see two variations of request examples on this page. While they're fairly straight forward, we'll review them here to help you understand how to use them. \n\nIn the first example, we use a colon and name value to identify fields you'll replace with your content. In the example below, you'd replace \":organization_id\" with your Validic Organization ID and replace \":user_id\" with the user's Validic ID. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"https://api.validic.com/v1/organizations/:organization_id/users/:user_id/fitness.json\",\n      \"language\": \"text\",\n      \"name\": \"Colon\"\n    }\n  ]\n}\n[/block]\nThe second example uses {braces} to identify values you will replace with your content. In this example, you'd replace \"{ORGANIZATION_ID}\" with your Validic organization ID, replace {USER_ID} with the user's Validic ID, etc. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"text\",\n      \"name\": \"Braces\"\n    }\n  ]\n}\n[/block]\n###Parameters \nDocumentation for each API request (like Fitness or Routine) includes a \"Parameters\" section that details all available parameter names for the request, along with the parameter type, description, and in some cases an example value for clarity. For example:\n\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/YUgghGaRcffOTvmn3MXw_parameters_a.png\",\n        \"parameters_a.png\",\n        \"562\",\n        \"409\",\n        \"#f0f0f0\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n##API Explorer\nAt the end of the each section which describes a specific API request, you'll find an option to test our API by selecting this icon:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/yE1hdE1Th6pPbB9iGyu3_api_exp_test_buttonA.png\",\n        \"api_exp_test_buttonA.png\",\n        \"202\",\n        \"38\",\n        \"#e4e4e4\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nBy using the API Explorer and your API credentials, you can test directly from your web browser. You can even populate any desired parameters. For example:\n \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/fhuLMPtQSGQAMuYSg31F_0wwGWV3LRJOnFaJYqUgy_311aa59e2922d953058db7adb9212fea.png\",\n        \"0wwGWV3LRJOnFaJYqUgy_311aa59e2922d953058db7adb9212fea.png\",\n        \"690\",\n        \"458\",\n        \"#a7dca3\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nSuccessful use of the API Explorer will provide the actual JSON response and the request URL. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/MjU2pbGGQlOABrbfBFxc_7zyajRCWRhSmeW28JfSW_93dfbd921d6bf451a6f47d4b485fec94.png\",\n        \"7zyajRCWRhSmeW28JfSW_93dfbd921d6bf451a6f47d4b485fec94.png\",\n        \"606\",\n        \"642\",\n        \"#8c8e90\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]","excerpt":"The official​ how-to for the how-to.","link_url":"","title":"Using This Guide","__v":2,"api":{"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"code":"{}","language":"json","status":400,"name":""}]},"settings":"","url":""},"hidden":false,"link_external":false,"parentDoc":null,"slug":"using-this-guide","sync_unique":"","type":"basic","version":"56f4385b3d35720e00ba9839","createdAt":"2015-11-20T21:07:39.341Z","isReference":true,"order":0,"childrenPages":[]}

Using This Guide

The official​ how-to for the how-to.

The following guide will help you understand how to best use this documentation and related features.

Suggested Use

After you receive your developer credentials, we suggest you move through our getting started guide section by section. We've ordered the content in a manner which mimics how users deploy our solution. Follow this guide and you shouldn't have any issues understanding how to use our software. But if you do, please reach out to our support team at support@validic.com

Page Layout

Request Examples

You'll see two variations of request examples on this page. While they're fairly straight forward, we'll review them here to help you understand how to use them.

In the first example, we use a colon and name value to identify fields you'll replace with your content. In the example below, you'd replace ":organization_id" with your Validic Organization ID and replace ":user_id" with the user's Validic ID.

https://api.validic.com/v1/organizations/:organization_id/users/:user_id/fitness.json

The second example uses {braces} to identify values you will replace with your content. In this example, you'd replace "{ORGANIZATION_ID}" with your Validic organization ID, replace {USER_ID} with the user's Validic ID, etc.

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1

Parameters

Documentation for each API request (like Fitness or Routine) includes a "Parameters" section that details all available parameter names for the request, along with the parameter type, description, and in some cases an example value for clarity. For example:

API Explorer

At the end of the each section which describes a specific API request, you'll find an option to test our API by selecting this icon:

By using the API Explorer and your API credentials, you can test directly from your web browser. You can even populate any desired parameters. For example:

Successful use of the API Explorer will provide the actual JSON response and the request URL.

{"_id":"56f4385b3d35720e00ba9846","category":"56f4385b3d35720e00ba983b","link_url":"","order":1,"project":"5646482fa74cd10d00a3f014","slug":"key-terms","title":"Key Terms","createdAt":"2015-11-18T20:49:20.368Z","githubsync":"","hidden":false,"link_external":false,"parentDoc":null,"type":"basic","user":"55e87bcdc5bccb2d008a9ba4","api":{"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"code":"{}","language":"json","status":400,"name":""}]},"settings":"","auth":"required","params":[]},"body":"Before we begin, let's review some terms you'll encounter in the following documentation. Understanding these terms and their definitions will help you understand how Validic works. \n\n##Organization\nAn \"Organization\" is a collection of Validic users. An Organization typically represents a company that delivers the Validic marketplace through its web portal or mobile application.\n\n##Organization ID (Org ID, Organization_ID)\nAn \"Organization ID\" is used to identify your organization when making requests through the API.  Your organization credentials are issued during the Validic implementation process. If you do not have an Organization ID, please contact our support team at [support@validic.com](mailto:support@validic.com).\n\n##Organization Access Token\nThe \"Organization Access Token\" is the secure token used in conjunction with your Organization ID. Your Organization Access Token is issued during the Validic implementation process. If you do not have this token, please contact our support team at [support@validic.com](mailto:support@validic.com).\n\n##User ID (User_ID)\nThe \"User ID\" is generated by Validic and used to represent a user of your system in our system. To ensure HIPPA compliance, Validic exchanges your unique User ID for a Validic User ID. The Validic User ID is then used to request data from Validic for a specific user. \n\n##User Access Token\nThis token part of an ID exchange mechanism that allows your users' data to remain de-identified, safe and secure. The \"User Access Token\" is used to tie the application marketplace to your unique users. This token is specific to a user and should not be confused with the Organization Access Token. \n\n##Marketplace\nThe \"Marketplace\", or \"Application Marketplace\", helps you connect with your users and obtain their permission to use their data. You'll guide users to this marketplace, they'll select their device and be led through the process of granting access to their data. \n\n##Expanded Data\nOur conventional request only returns standardized data, which we call standard data. Standard data fields and data types should not change without prior notice. \n\nIn addition to our standard data payload, you can expand your request to include all available fields. To do this, you'll use the expanded filter with a value of \"1\" (true). By default,​ expanded is set to \"0\" (false). \n\nFor example, the Lumo API returns \"time_in_bad_posture\" and \"time_in_good_posture\" as part of its response. These metrics are not returned by Validic by default. To access them, you would specify the following parameters in the request: \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&source=lumo&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Expanded Filter with Source\"\n    }\n  ]\n}\n[/block]\nIf you do not specify a source, we will return expanded data for every device.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Expanded Filter Without Source\"\n    }\n  ]\n}\n[/block]\nExpanded data returns non-standardized data and we cannot guarantee this data will not change.","excerpt":"Knowing is half the battle.","sync_unique":"","updates":[],"__v":0,"isReference":true,"version":"56f4385b3d35720e00ba9839","childrenPages":[]}

Key Terms

Knowing is half the battle.

Before we begin, let's review some terms you'll encounter in the following documentation. Understanding these terms and their definitions will help you understand how Validic works.

Organization

An "Organization" is a collection of Validic users. An Organization typically represents a company that delivers the Validic marketplace through its web portal or mobile application.

Organization ID (Org ID, Organization_ID)

An "Organization ID" is used to identify your organization when making requests through the API. Your organization credentials are issued during the Validic implementation process. If you do not have an Organization ID, please contact our support team at support@validic.com.

Organization Access Token

The "Organization Access Token" is the secure token used in conjunction with your Organization ID. Your Organization Access Token is issued during the Validic implementation process. If you do not have this token, please contact our support team at support@validic.com.

User ID (User_ID)

The "User ID" is generated by Validic and used to represent a user of your system in our system. To ensure HIPPA compliance, Validic exchanges your unique User ID for a Validic User ID. The Validic User ID is then used to request data from Validic for a specific user.

User Access Token

This token part of an ID exchange mechanism that allows your users' data to remain de-identified, safe and secure. The "User Access Token" is used to tie the application marketplace to your unique users. This token is specific to a user and should not be confused with the Organization Access Token.

Marketplace

The "Marketplace", or "Application Marketplace", helps you connect with your users and obtain their permission to use their data. You'll guide users to this marketplace, they'll select their device and be led through the process of granting access to their data.

Expanded Data

Our conventional request only returns standardized data, which we call standard data. Standard data fields and data types should not change without prior notice.

In addition to our standard data payload, you can expand your request to include all available fields. To do this, you'll use the expanded filter with a value of "1" (true). By default,​ expanded is set to "0" (false).

For example, the Lumo API returns "time_in_bad_posture" and "time_in_good_posture" as part of its response. These metrics are not returned by Validic by default. To access them, you would specify the following parameters in the request:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&source=lumo&expanded=1

If you do not specify a source, we will return expanded data for every device.

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1

Expanded data returns non-standardized data and we cannot guarantee this data will not change.

{"_id":"56f4385b3d35720e00ba9847","link_external":false,"order":2,"title":"Verify Your Credentials","type":"get","updates":[],"__v":0,"hidden":false,"isReference":true,"version":"56f4385b3d35720e00ba9839","body":"While this call is not required, we strongly recommend you do this as a sanity check to ensure your credentials are in working order. Once complete, you can move on to creating users. ​\n\nAn organization typically represents a company that delivers the Validic marketplace through its web portal or mobile application. \n\nAfter entering into an agreement with Validic, we will issue you Organization Credentials. Each organization has its own unique authentication credentials consisting of an Organization ID and Organization Access Token.\n\nValidic Enterprise customers have the ability to also create “Child” Organizations, which are Organizations that “belong” to the primary or “Parent” Organization. This allows for companies that deliver Validic to multiple customers through a web portal or mobile application to segment users and provide a unique branding experience.\n\nTo retrieve a summary overview of an Organization and its Child Organizations make the following call:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json?access_token={ORGANIZATION_ACCESS_TOKEN}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Values\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"name\",\n    \"1-0\": \"users\",\n    \"2-0\": \"users_provisioned\",\n    \"3-0\": \"activites\",\n    \"4-0\": \"connections\",\n    \"0-1\": \"String\",\n    \"1-1\": \"Integer\",\n    \"2-1\": \"Integer\",\n    \"3-1\": \"Integer\",\n    \"4-1\": \"Integer\",\n    \"0-2\": \"The name of the Organization. Used primarily for internal identification rather than public display.\",\n    \"1-2\": \"The number of users under an Organization with one or more apps connected. This number is aggregate for an Organization and its Child Organizations.\",\n    \"2-2\": \"The total number of users with a provisioned Validic account (including those without one or more apps connected). This number is aggregate for an Organization and its Child Organizations.\",\n    \"3-2\": \"A running total of all activities logged under an Organization. This number is aggregate for an Organization and its Child Organizations.\",\n    \"4-2\": \"The number of live connections between an Organization’s users and their apps. This number is aggregate for an Organization and its Child Organizations.\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]","user":"55e87bcdc5bccb2d008a9ba4","parentDoc":null,"project":"5646482fa74cd10d00a3f014","editedParams":true,"editedParams2":true,"excerpt":"**As part of the Implementation Process, you'll be provided an Organization ID and Access Token. If you have not spoken to our sales team, please [contact us](https://validic.com/demo) for a Validic account.**\n\n**Once you've received your Organization ID and Access Token, please proceed with this step. If this call fails, please contact our support team at [support@validic.com](mailto:support@validic.com) to ensure your credentials are active and correct.**","githubsync":"","link_url":"","slug":"verify-your-credentials","sync_unique":"","api":{"method":"get","params":[{"default":"","type":"string","name":"organization_id","in":"path","_id":"564f859ece27ba0d005bb51c","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization"},{"_id":"564f859ece27ba0d005bb51b","ref":"","required":true,"desc":"Unique access token which must be passed for authentication.","default":"","type":"string","name":"access_token","in":"query"}],"results":{"codes":[{"name":"Sample Response","code":"{  \n   \"summary\":{  \n      \"status\":200,\n      \"message\":\"Ok\",\n      \"results\":1,\n      \"start_date\":null,\n      \"end_date\":null,\n      \"offset\":0,\n      \"limit\":100,\n      \"params\":{  \n         \"start_date\":null,\n         \"end_date\":null,\n         \"offset\":null,\n         \"limit\":null\n      }\n   },\n   \"organization\":{  \n      \"_id\":\"55f6dd49376531SAMPLE0088\",\n      \"name\":\"Validic Demo 2015\",\n      \"users\":4,\n      \"users_provisioned\":27,\n      \"activities\":1365,\n      \"connections\":9,\n      \"organizations\":[  \n\n      ]\n   }\n}","language":"json","status":200},{"status":401,"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"json"}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id.json","auth":"required","examples":{"codes":[{"name":"Sample Request","code":"https://api.validic.com/v1/organizations/55f6dd493765SAMPLE88.json?access_token=a86540dfb5d7817166397ba13d3bSAMPLEdda28eb6ef771bfff06d9","language":"html"}]}},"category":"56f4385b3d35720e00ba983b","createdAt":"2015-11-20T20:42:06.428Z","childrenPages":[]}

getVerify Your Credentials

**As part of the Implementation Process, you'll be provided an Organization ID and Access Token. If you have not spoken to our sales team, please [contact us](https://validic.com/demo) for a Validic account.** **Once you've received your Organization ID and Access Token, please proceed with this step. If this call fails, please contact our support team at [support@validic.com](mailto:support@validic.com) to ensure your credentials are active and correct.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization

Query Params

access_token:
required
string
Unique access token which must be passed for authentication.

While this call is not required, we strongly recommend you do this as a sanity check to ensure your credentials are in working order. Once complete, you can move on to creating users. ​

An organization typically represents a company that delivers the Validic marketplace through its web portal or mobile application.

After entering into an agreement with Validic, we will issue you Organization Credentials. Each organization has its own unique authentication credentials consisting of an Organization ID and Organization Access Token.

Validic Enterprise customers have the ability to also create “Child” Organizations, which are Organizations that “belong” to the primary or “Parent” Organization. This allows for companies that deliver Validic to multiple customers through a web portal or mobile application to segment users and provide a unique branding experience.

To retrieve a summary overview of an Organization and its Child Organizations make the following call:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json?access_token={ORGANIZATION_ACCESS_TOKEN}
Return Values
Type
Description

name

String

The name of the Organization. Used primarily for internal identification rather than public display.

users

Integer

The number of users under an Organization with one or more apps connected. This number is aggregate for an Organization and its Child Organizations.

users_provisioned

Integer

The total number of users with a provisioned Validic account (including those without one or more apps connected). This number is aggregate for an Organization and its Child Organizations.

activites

Integer

A running total of all activities logged under an Organization. This number is aggregate for an Organization and its Child Organizations.

connections

Integer

The number of live connections between an Organization’s users and their apps. This number is aggregate for an Organization and its Child Organizations.


User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

https://api.validic.com/v1/organizations/55f6dd493765SAMPLE88.json?access_token=a86540dfb5d7817166397ba13d3bSAMPLEdda28eb6ef771bfff06d9

Result Format

{  
   "summary":{  
      "status":200,
      "message":"Ok",
      "results":1,
      "start_date":null,
      "end_date":null,
      "offset":0,
      "limit":100,
      "params":{  
         "start_date":null,
         "end_date":null,
         "offset":null,
         "limit":null
      }
   },
   "organization":{  
      "_id":"55f6dd49376531SAMPLE0088",
      "name":"Validic Demo 2015",
      "users":4,
      "users_provisioned":27,
      "activities":1365,
      "connections":9,
      "organizations":[  

      ]
   }
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba9848","version":"56f4385b3d35720e00ba9839","body":"[block:textarea]\n{\n  \"text\": \"## Request\",\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"name\": \"Example Request\",\n      \"code\": \"POST https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json\\n{\\n   \\\"user\\\": {\\n     \\\"uid\\\": \\\":uid\\\"\\n   },\\n \\\"access_token\\\": \\\":access_token\\\"\\n }\",\n      \"language\": \"http\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:textarea]\n{\n  \"text\": \"## Results\",\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"name\": 201,\n      \"code\": \" {\\n   \\\"code\\\": 201,\\n   \\\"message\\\": \\\"Ok\\\",\\n   \\\"user\\\": {\\n     \\\"_id\\\": \\\"{USER_ID}\\\",\\n     \\\"access_token\\\": \\\"{USER_ACCESS_TOKEN}\\\"\\n   }\\n }\",\n      \"language\": \"json\",\n      \"status\": 201\n    },\n    {\n      \"name\": 400,\n      \"code\": \"{}\",\n      \"language\": \"json\",\n      \"status\": 400\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Concept: What is a User?\",\n  \"body\": \"A \\\"user\\\" represents one of your end users. For example, if Jane Smith is using your wellness application, you'll need to create a user inside Validic to represent Jane. You may refer to your users as a participant, program member, patient, or subject. In our examples, we'll simply call them users or end users. \\n​\\nRegardless of the name, it's important to remember that in order to prevent violating HIPPA guidelines, you must not send identifying information like name, social security number, date of birth, etc.\"\n}\n[/block]\nThere are two steps to connect your user population to Validic. \n1. Create the user\n2. Ask permission to use their data.\n\nIn this section, we'll focus on creating a representation of your user. This is also known as provisioning or registering users.  \n\n## Provisioning Users \nProvisioning users is an ID exchange process which allows user data to remain de-identified, safe and secure. Essentially, this process creates a user profile in our system and provides a unique ID to represent that user.\n\nIn the Concept shown above, we talked about an example user named Jane. To create a representation of Jane in Validic, you'd send the following: \n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST https://api.validic.com/v1/organizations/55f6dd49SAMPLE00088/users.json\\n{\\n   \\\"user\\\": {\\n     \\\"uid\\\": \\\"03-K64-F\\\"  \\n   },\\n \\\"access_token\\\": \\\"a86540dfb5d7817166397ba13d3b9SAMPLEdda28eb6efSAMPLE06d9\\\"\\n }\",\n      \"language\": \"http\",\n      \"name\": \"Sample Request\"\n    }\n  ]\n}\n[/block]\nIn this example, \"uid\": \"03-K64-F\" is the unique identifier that represents Jane in your system. \n\n**To successfully make this request:**\n* You must set HTTP headers to “Content-Type: application/json”.\n* You must include the \"uid\" field that represents the user ID used in your own systems. We require using non-identifiable IDs instead of emails or names in order to remain compliant with HIPAA/PHI de-identification standards.\n* You must include the Organization Access Token provided by our Integration Support team.\n\nValidic would respond:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"code\\\":201,\\n   \\\"message\\\":\\\"Ok\\\",\\n   \\\"user\\\":{  \\n      \\\"_id\\\":\\\"565c8821SAMPLE7000031\\\",\\n      \\\"uid\\\":\\\"03-K64-F\\\",\\n      \\\"access_token\\\":\\\"7sJ7fjFZYSamplezBcs\\\",\\n      \\\"profile\\\":null\\n   }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Sample Response\"\n    }\n  ]\n}\n[/block]\nOnce this POST is made, you've exchanged Jane's ID from your system (\"uid\": \"03-K64-F\") for a unique Validic User ID. Moving forward, when you want to ask us about Jane, you'll use that unique Validic User ID (565c8821SAMPLE7000031). \nFor example: \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/55f6dd49SAMPLE00088/users/565c8821SAMPLE7000031/fitness/latest.json?access_tokena86540dfb5d7817166397ba13d3b9SAMPLEdda28eb6efSAMPLE06d9&start_date={START_DATE}&end_date={END_DATE}\",\n      \"language\": \"http\",\n      \"name\": \"users/565c8821SAMPLE7000031\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Tip: Store Response Fields\",\n  \"body\": \"It is important to store the following values from the response:\\n  * \\\"_id\\\"\\n  * \\\"access_token\\\"\\n\\nThese fields will be used to communicate with Validic in the future.\"\n}\n[/block]","category":"56f4385b3d35720e00ba983b","editedParams2":true,"parentDoc":null,"updates":[],"title":"Create Users","user":"55e87bcdc5bccb2d008a9ba4","createdAt":"2015-11-19T19:50:55.285Z","githubsync":"","isReference":true,"order":3,"slug":"create-users","link_url":"","next":{"pages":[],"description":""},"project":"5646482fa74cd10d00a3f014","api":{"auth":"required","params":[{"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id","in":"path","_id":"564f83797227ea35008f4e02","ref":"","required":true},{"ref":"","required":true,"desc":"The UID, or User_ID  is your user’s identifier in **your application**, typically a user ID. **We require using non-identifiable IDs** instead of emails or names in order to remain compliant with HIPAA/PHI deidentification standards.","default":"","type":"string","name":"uid","in":"body","_id":"564f83797227ea35008f4e01"},{"required":true,"desc":"Unique access token which must be passed for authentication.","default":"","type":"string","name":"access_token","in":"body","_id":"564f83797227ea35008f4e00","ref":""}],"url":"/organizations/:organization_id/users.json","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":""},"editedParams":true,"excerpt":"Now that we've verified your credentials are working, we'll focus on connecting your users to Validic.","hidden":false,"link_external":false,"__v":1,"sync_unique":"","type":"basic","childrenPages":[]}

Create Users

Now that we've verified your credentials are working, we'll focus on connecting your users to Validic.

Concept: What is a User?

A "user" represents one of your end users. For example, if Jane Smith is using your wellness application, you'll need to create a user inside Validic to represent Jane. You may refer to your users as a participant, program member, patient, or subject. In our examples, we'll simply call them users or end users.

Regardless of the name, it's important to remember that in order to prevent violating HIPPA guidelines, you must not send identifying information like name, social security number, date of birth, etc.

There are two steps to connect your user population to Validic.

  1. Create the user
  2. Ask permission to use their data.

In this section, we'll focus on creating a representation of your user. This is also known as provisioning or registering users.

Provisioning Users

Provisioning users is an ID exchange process which allows user data to remain de-identified, safe and secure. Essentially, this process creates a user profile in our system and provides a unique ID to represent that user.

In the Concept shown above, we talked about an example user named Jane. To create a representation of Jane in Validic, you'd send the following:

POST https://api.validic.com/v1/organizations/55f6dd49SAMPLE00088/users.json
{
   "user": {
     "uid": "03-K64-F"  
   },
 "access_token": "a86540dfb5d7817166397ba13d3b9SAMPLEdda28eb6efSAMPLE06d9"
 }

In this example, "uid": "03-K64-F" is the unique identifier that represents Jane in your system.

To successfully make this request:

  • You must set HTTP headers to “Content-Type: application/json”.
  • You must include the "uid" field that represents the user ID used in your own systems. We require using non-identifiable IDs instead of emails or names in order to remain compliant with HIPAA/PHI de-identification standards.
  • You must include the Organization Access Token provided by our Integration Support team.

Validic would respond:

{  
   "code":201,
   "message":"Ok",
   "user":{  
      "_id":"565c8821SAMPLE7000031",
      "uid":"03-K64-F",
      "access_token":"7sJ7fjFZYSamplezBcs",
      "profile":null
   }
}

Once this POST is made, you've exchanged Jane's ID from your system ("uid": "03-K64-F") for a unique Validic User ID. Moving forward, when you want to ask us about Jane, you'll use that unique Validic User ID (565c8821SAMPLE7000031).
For example:

GET https://api.validic.com/v1/organizations/55f6dd49SAMPLE00088/users/565c8821SAMPLE7000031/fitness/latest.json?access_tokena86540dfb5d7817166397ba13d3b9SAMPLEdda28eb6efSAMPLE06d9&start_date={START_DATE}&end_date={END_DATE}

Tip: Store Response Fields

It is important to store the following values from the response:

  • "_id"
  • "access_token"

These fields will be used to communicate with Validic in the future.

Request

POST https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json
{
   "user": {
     "uid": ":uid"
   },
 "access_token": ":access_token"
 }

Results

 {
   "code": 201,
   "message": "Ok",
   "user": {
     "_id": "{USER_ID}",
     "access_token": "{USER_ACCESS_TOKEN}"
   }
 }
{}
{"_id":"56f4385b3d35720e00ba9849","parentDoc":null,"project":"5646482fa74cd10d00a3f014","version":"56f4385b3d35720e00ba9839","__v":2,"api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"category":"56f4385b3d35720e00ba983b","githubsync":"","isReference":true,"updates":["58c1b8f735167a390083c5d5"],"user":"55e87bcdc5bccb2d008a9ba4","type":"basic","hidden":false,"link_url":"","order":4,"sync_unique":"","link_external":false,"next":{"description":"","pages":[]},"slug":"marketplace","title":"Request Access","body":"A user without data is not very helpful, but before we can obtain their data, we must ask their permission. To do this, we present the user with an application marketplace and guide them through the authentication process. This section will explain the process of configuring and deploying our marketplace.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Concept: What is a Marketplace?\",\n  \"body\": \"At Validic, the term \\\"marketplace\\\" is mostly symbolic. Instead of currency being exchanged, customers are granting permission to access their data. They access a marketplace, browse available devices and select one to connect to your solution.   \\n\\nFor example, Jane Smith would like to use her Fitbit to participate in your wellness program. She'll access your Marketplace, select Fitbit and authorize the sharing of data.\"\n}\n[/block]\nThe simplest way to integrate the Validic Marketplace is to use the Validic Standard HTML5 Marketplace. The Validic Marketplace handles all API app connections and callbacks.\n\nTo render the Validic Standard Marketplace to your users, you will use your Organization ID and the User Access Token created when you provisioned the user. You will create a button or link in your system that looks like this:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/EPAxCklRiqJGXltqNmzj_connect%20button_a.png\",\n        \"connect button_a.png\",\n        \"212\",\n        \"30\",\n        \"#04acd4\",\n        \"\"\n      ],\n      \"caption\": \"\"\n    }\n  ]\n}\n[/block]\nWhen users select \"Connect Your Device\" they should be directed to:\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://app.validic.com/{ORGANIZATION_ID}/{USER_ACCESS_TOKEN}\",\n      \"language\": \"http\",\n      \"name\": \" \"\n    }\n  ]\n}\n[/block]\n**To successfully make this request:**\n  * You must include the \"organization_ID\" credentials provided by Validic \n  * You must include the \"user_access_token\" provided in the response when you [provisioned](https://validic.readme.io/docs/create-users#section-provisioning-users) your user\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"FInding the User Access Token\",\n  \"body\": \"The User Access Token is provided in the response when you [provisioned](https://validic.readme.io/docs/create-users#section-provisioning-users) your user. In the response, it is called an access_token. In our support documents, we refer to this as \\\"user_access_token\\\" so you do not confuse this with your organization access token. Confusing, we know. We'll likely change this in future versions of our API. \\n\\n  \\\"user\\\": {\\n    \\\"_id\\\": \\\"565c8821SAMPLE7000031\\\",\\n    \\\"uid\\\": \\\"2039328aw38s\\\",\\n    \\\"access_token\\\": \\\"rR8MThSAMPLEpVzkwdLv\\\",\\n    \\\"profile\\\": null\"\n}\n[/block]\nTo **preview our sample Validic Standard Marketplace**, please click the button below:\n<br><div style=\"text-align:center\"><a href=\"https://app.validic.com/55f6dd493765310014000088/gjwevpzT73rMtkTCsiRG\" target=\"_blank\"><img class=\"aligncenter\" src=\"https://files.readme.io/EPAxCklRiqJGXltqNmzj_connect%20button_a.png\" alt=\"\" width=\"212\" height=\"30\" /></a></div></br>\n\n##Custom App Marketplace Deployment\n\nOur Enterprise customers may create a custom implementation of the Marketplace. To authenticate users, you will need your Organization’s ID, your Organization’s Access Token, and the User Access Token created when you [provisioned](https://validic.readme.io/docs/create-users#section-provisioning-users) the user. \n\nValidic provides our Enterprise customers with one simple API call to access all of the appropriate URL’s and information needed to build the custom App Marketplace native to your platform leveraging your existing look and feel enabling you to create a consistent, cohesive user experience.\n\nPlease view our [Custom Marketplace Tutorial](https://validic.readme.io/docs/custom-marketplace) for further information on how to deploy the App Marketplace including example calls and a live demo of the Validic Standard HTML5 App Marketplace.","createdAt":"2015-11-30T18:36:58.948Z","excerpt":"If you build it, they will come","childrenPages":[]}

Request Access

If you build it, they will come

A user without data is not very helpful, but before we can obtain their data, we must ask their permission. To do this, we present the user with an application marketplace and guide them through the authentication process. This section will explain the process of configuring and deploying our marketplace.

Concept: What is a Marketplace?

At Validic, the term "marketplace" is mostly symbolic. Instead of currency being exchanged, customers are granting permission to access their data. They access a marketplace, browse available devices and select one to connect to your solution.

For example, Jane Smith would like to use her Fitbit to participate in your wellness program. She'll access your Marketplace, select Fitbit and authorize the sharing of data.

The simplest way to integrate the Validic Marketplace is to use the Validic Standard HTML5 Marketplace. The Validic Marketplace handles all API app connections and callbacks.

To render the Validic Standard Marketplace to your users, you will use your Organization ID and the User Access Token created when you provisioned the user. You will create a button or link in your system that looks like this:

When users select "Connect Your Device" they should be directed to:

GET https://app.validic.com/{ORGANIZATION_ID}/{USER_ACCESS_TOKEN}

To successfully make this request:

  • You must include the "organization_ID" credentials provided by Validic
  • You must include the "user_access_token" provided in the response when you provisioned your user

FInding the User Access Token

The User Access Token is provided in the response when you provisioned your user. In the response, it is called an access_token. In our support documents, we refer to this as "user_access_token" so you do not confuse this with your organization access token. Confusing, we know. We'll likely change this in future versions of our API.

"user": {
"_id": "565c8821SAMPLE7000031",
"uid": "2039328aw38s",
"access_token": "rR8MThSAMPLEpVzkwdLv",
"profile": null

To preview our sample Validic Standard Marketplace, please click the button below:


Custom App Marketplace Deployment

Our Enterprise customers may create a custom implementation of the Marketplace. To authenticate users, you will need your Organization’s ID, your Organization’s Access Token, and the User Access Token created when you provisioned the user.

Validic provides our Enterprise customers with one simple API call to access all of the appropriate URL’s and information needed to build the custom App Marketplace native to your platform leveraging your existing look and feel enabling you to create a consistent, cohesive user experience.

Please view our Custom Marketplace Tutorial for further information on how to deploy the App Marketplace including example calls and a live demo of the Validic Standard HTML5 App Marketplace.

{"_id":"56f4385b3d35720e00ba984a","parentDoc":null,"body":"Now that you've created your users and deployed the marketplace we'll discuss how to retrieve data from Validic. \n\n##About our API\nBefore we get into the suggested use of our API, let's have a wonderfully short summary of design and data objects. \n\n###Data Objects\nWe separate data into several objects that each contain related data. For example, the Fitness object returns data for activities that are undertaken with the express purpose of exercising. These activities have a defined duration (time, distance, elevation, etc). \n\nBelow is a full list of Validic API objects:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Object Name\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"Fitness\",\n    \"0-1\": \"Activities that are undertaken with the express purpose of exercising. These activities have a defined duration (time, distance, elevation, etc). These records are typically discrete/distinct events.\",\n    \"1-0\": \"Routine\",\n    \"1-1\": \"Activities that occur regularly throughout the day, without the specific goal of exercise, for example, total calories burned and consumed, steps taken, stairs climbed. These activities are aggregated throughout the day.  These records are typically an aggregate of discrete/distinct events.\",\n    \"2-0\": \"Nutrition\",\n    \"2-1\": \"Measurements related to calorie intake and consumption and nutritional information (such as fat, protein, carbohydrates, sodium, etc.).  These records are typically discrete/distinct events.\",\n    \"3-0\": \"Sleep\",\n    \"3-1\": \"Measurements related to the length of time spent in various sleep cycles, as well as the number of times woken during the night.  These records are typically discrete/distinct events.\",\n    \"4-0\": \"Weight\",\n    \"4-1\": \"Measurements associated with a user’s weight and body mass. These records are typically discrete/distinct events.\",\n    \"5-0\": \"Diabetes\",\n    \"5-1\": \"Measurements associated with a user’s blood glucose and hormone levels related to diabetes treatment and management. These records are typically discrete/distinct events.\",\n    \"6-0\": \"Biometrics\",\n    \"6-1\": \"Measurements associated with a user’s biometric health such as blood pressure, cholesterol, heart rate, and blood and hormone levels.  These records are typically discrete/distinct events.\"\n  },\n  \"cols\": 2,\n  \"rows\": 7\n}\n[/block]\n###Data Levels\nData is returned at one of two levels: \n* **User**: Requests are specific to a user. \n* **Organization**: Requests generally return data for all your users \n\n##Requesting Data\n\n###The Anatomy of a Request​​\nTo retrieve​ data, you'll make a request similar to this:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/540e1c9b965feSAMPLEfb/users/54eb9d3a9fa63eSAMPLE78/nutrition.json?access_token=8f6c2c262ddf8SAMPLE6a92625e04676013eSAMPLE960bc25d5bc&start_date=2015-02-14T00:00:00+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Sample Request\"\n    }\n  ]\n}\n[/block]\nHere is the breakdown of the basics of this request: \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parameter\",\n    \"h-1\": \"Example\",\n    \"h-2\": \"Description/Source\",\n    \"0-0\": \"organizations\",\n    \"0-1\": \"540e1c9b965feSAMPLEfb\",\n    \"0-2\": \"This is the Organization ID provided by the integration team.\",\n    \"1-0\": \"users\",\n    \"1-1\": \"54eb9d3a9fa63eSAMPLE78\",\n    \"1-2\": \"This is the User ID that appeared in the \\\" uid\\\" field when you provisioned the user.\",\n    \"2-0\": \"access_token\",\n    \"2-1\": \"8f6c2c262ddf8SAMPLE6a9262013eSAMPLE960bc25d5bc5\",\n    \"2-2\": \"This is your Access Token provided by the integration team.\",\n    \"3-0\": \"object\",\n    \"3-2\": \"This defines the data object you'd like returned.\",\n    \"3-1\": \"nutrition.json\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\nThe other values are [optional parameters](https://validic.readme.io/docs/data-retrieval#section-optional-query-parameters) that we'll discuss in the next section. \n\n##Composition of a Response\nThe following guide will help you understand how to work with the data we return. \n\n###Summary \n\nEach response contains a summary object which displays important information about your request. While these fields are self-explanatory, it's important to note one significant function and that is Pagination. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"summary\\\": {\\n    \\\"status\\\": 200,\\n    \\\"message\\\": \\\"Ok\\\",\\n    \\\"results\\\": 288,\\n    \\\"start_date\\\": \\\"2015-02-14T00:00:00+00:00\\\",\\n    \\\"end_date\\\": \\\"2015-12-03T23:59:59+00:00\\\",\\n    \\\"offset\\\": 0,\\n    \\\"limit\\\": 100,\\n    \\\"previous\\\": null,\\n    \\\"next\\\": \\\"https://api.validic.com/v1/organizations/540e1c9b965fe22SAMPLEfb/users/54eb9d3a9fa6SAMPLE78/routine?access_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&expanded=1&page=2&start_date=2015-02-14T00%3A00%3A00+00%3A00\\\",\\n    \\\"params\\\": {\\n      \\\"start_date\\\": \\\"2015-02-14T00:00:00+00:00\\\",\\n      \\\"end_date\\\": null,\\n      \\\"expanded\\\": true,\\n      \\\"offset\\\": 0,\\n      \\\"limit\\\": 0\\n    }\",\n      \"language\": \"json\",\n      \"name\": \"Summary Object\"\n    }\n  ]\n}\n[/block]\n###Pagination\nWhen making API calls, within a given scope (“start_date” and “end_date” of an API call) you may receive a large number of records. To make this easier to manage, 100 records per page are included in the response by default. You can receive up to 1000 records per page by adding a “limit” parameter to your request. If you experience timeouts, we suggest limiting your requests to 300-500 records. \n\nEach response will contain a Next URI which directs you to the next page of records. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"next\\\": \\\"https://api.validic.com/v1/organizations/540e1c9b965fe22SAMPLEfb/users/54eb9d3a9fa6SAMPLE78/routine?access_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&expanded=1&page=2&start_date=2015-02-14T00%3A00%3A00+00%3A00\\\",\",\n      \"language\": \"json\",\n      \"name\": \"Next URI\"\n    }\n  ]\n}\n[/block]\nOnce the final page of results is reached, the Next URI will direct you to the first page again. \n\n***Paging Parameters***\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parameter\",\n    \"h-1\": \"Default\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"offset=n\",\n    \"0-2\": \"Sets the number of records to skip when returning the results\",\n    \"1-0\": \"limit=n\",\n    \"1-1\": \"100\",\n    \"1-2\": \"Limits the number of results per request. The maximum value is 1000. Any value higher will be reduced to 1000.\",\n    \"2-0\": \"page=n\",\n    \"2-1\": \"1\",\n    \"2-2\": \"Sets the page number to return\",\n    \"0-1\": \"0\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n###Standard vs. Expanded\nIn addition to our standard data payload, you can expand your request to include all available fields. We refer to this as [expanded data](https://validic.readme.io/docs/key-terms#section-expanded-data).\n\nOur conventional request only returns standardized data and the values should not change without prior notice. Expanded data returns non-standardized data and we cannot guarantee this data will not change. Here is an example of Standard vs. Expanded responses. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"nutrition\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"5660012868SAMPLE066f39\\\",\\n         \\\"calories\\\":567.0,\\n         \\\"carbohydrates\\\":44.7,\\n         \\\"fat\\\":30.7,\\n         \\\"fiber\\\":4.7,\\n         \\\"last_updated\\\":\\\"2015-12-03T08:45:28+00:00\\\",\\n         \\\"meal\\\":\\\"Burrito\\\",\\n         \\\"protein\\\":32.7,\\n         \\\"sodium\\\":1507.4,\\n         \\\"source\\\":\\\"fitbit\\\",\\n         \\\"source_name\\\":\\\"Fitbit\\\",\\n         \\\"timestamp\\\":\\\"2015-12-01T08:00:00+00:00\\\",\\n         \\\"user_id\\\":\\\"53bb087184626bSAMPLE0013\\\",\\n         \\\"utc_offset\\\":\\\"-08:00\\\",\\n         \\\"validated\\\":false,\\n         \\\"water\\\":null\\n      },\",\n      \"language\": \"json\",\n      \"name\": \"Standard\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \" \\\"nutrition\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"5660012868d4SAMPLE066f39\\\",\\n         \\\"activity_id\\\":\\\"5699887240\\\",\\n         \\\"calories\\\":567.0,\\n         \\\"carbohydrates\\\":44.7,\\n         \\\"expanded\\\":{  \\n            \\\"access_level\\\":\\\"PRIVATE\\\",\\n            \\\"amount\\\":1,\\n            \\\"brand\\\":\\\"Lose It!\\\",\\n            \\\"carbs\\\":44.7,\\n            \\\"food_id\\\":0,\\n            \\\"is_favorite\\\":false,\\n            \\\"locale\\\":null,\\n            \\\"log_date\\\":\\\"2015-12-01\\\",\\n            \\\"log_id\\\":\\\"5699887240\\\",\\n            \\\"meal_type_id\\\":5,\\n            \\\"name\\\":\\\"Burrito\\\"\\n         },\\n         \\\"fat\\\":30.7,\\n         \\\"fiber\\\":4.7,\\n         \\\"last_updated\\\":\\\"2015-12-03T08:45:28+00:00\\\",\\n         \\\"meal\\\":\\\"Burrito\\\",\\n         \\\"protein\\\":32.7,\\n         \\\"sodium\\\":1507.4,\\n         \\\"source\\\":\\\"fitbit\\\",\\n         \\\"source_name\\\":\\\"Fitbit\\\",\\n         \\\"timestamp\\\":\\\"2015-12-01T08:00:00+00:00\\\",\\n         \\\"user_id\\\":\\\"53bb087184626bSAMPLE0013\\\",\\n         \\\"utc_offset\\\":\\\"-08:00\\\",\\n         \\\"validated\\\":false,\\n         \\\"water\\\":null\\n      },\",\n      \"language\": \"json\",\n      \"name\": \"Expanded\"\n    }\n  ]\n}\n[/block]\nYou can receive expanded data by using the [expanded filter](https://validic.readme.io/docs/key-terms#section-expanded-data) such as:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/540e1c9b965fe22SAMPLEfb/users/565c8821SAMPLE7000031/routine.json?access_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&start_date=2015-02-14T00:00:00+00:00&expanded=1\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n###Source\nThe source filter allows for retrieving datasets specific to a particular source (e.g., Fitbit, BodyMedia, etc.). Please review our support site for a [list of supported sources](https://support.validic.com/customer/en/portal/articles/1649347-app-source-and-source-name-list).\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/fitness.json?authentication_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&source=fitbit\\n\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\nYou can also request data from multiple sources by using comma separated source values. For example:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/55f6dd4937653SAMPLE0088/users/55f6ea9b7c4d318SAMPLE0002/nutrition.json?access_token=a86540dfbSAMPLE166397ba13d3b99476eb073f1e8adSAMPLE6ef771bfff06d9&source=fatsecret,jawbone_up&start_date=2015-12-01T00:00:00.000Z&end_date=2015-12-01T23:59:59.999Z\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"summary\\\":{  \\n      \\\"status\\\":200,\\n      \\\"message\\\":\\\"Ok\\\",\\n      \\\"results\\\":3,\\n      \\\"start_date\\\":\\\"2016-02-28T00:00:00+00:00\\\",\\n      \\\"end_date\\\":\\\"2016-03-01T23:59:59+00:00\\\",\\n      \\\"offset\\\":0,\\n      \\\"limit\\\":100,\\n      \\\"previous\\\":null,\\n      \\\"next\\\":null,\\n      \\\"params\\\":{  \\n         \\\"start_date\\\":\\\"2016-02-28T00:00:00+00:00\\\",\\n         \\\"end_date\\\":\\\"2016-03-01T23:59:59+00:00\\\",\\n         \\\"expanded\\\":true,\\n         \\\"offset\\\":0,\\n         \\\"limit\\\":0\\n      }\\n   },\\n   \\\"routine\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"55f6ea9b7c4d318SAMPLE0002\\\",\\n         \\\"activity_id\\\":\\\"q57i7r-gHDi7KrdSAMPLEFu6X4VlL\\\",\\n         \\\"calories_burned\\\":222.50562777,\\n         \\\"distance\\\":5301.0,\\n         \\\"elevation\\\":null,\\n         \\\"expanded\\\":{  \\n            \\\"active_time\\\":4080,\\n            \\\"bmr\\\":1503.26060737,\\n            \\\"bmr_day\\\":1503.26060737,\\n            \\\"calories\\\":222.50562777,\\n            \\\"inactive_time\\\":28735,\\n            \\\"km\\\":5.301,\\n            \\\"longest_active\\\":672,\\n            \\\"longest_idle\\\":5664,\\n            \\\"time_completed\\\":\\\"1456894192\\\",\\n            \\\"time_created\\\":\\\"1456810060\\\",\\n            \\\"tz\\\":\\\"America/New_York\\\",\\n            \\\"utc_offset\\\":\\\"-05:00\\\",\\n            \\\"wo_active_time\\\":0,\\n            \\\"wo_calories\\\":0,\\n            \\\"wo_count\\\":0,\\n            \\\"wo_longest\\\":0,\\n            \\\"wo_time\\\":0,\\n            \\\"xid\\\":\\\"q57i7r-gHDi7KrSAMPLEXFu6X4VlL\\\"\\n         },\\n         \\\"floors\\\":null,\\n         \\\"last_updated\\\":\\\"2016-03-02T09:50:19+00:00\\\",\\n         \\\"source\\\":\\\"jawbone_up\\\",\\n         \\\"source_name\\\":\\\"Jawbone Up\\\",\\n         \\\"steps\\\":7058.0,\\n         \\\"timestamp\\\":\\\"2016-03-01T05:27:40+00:00\\\",\\n         \\\"utc_offset\\\":\\\"-05:00\\\",\\n         \\\"validated\\\":false,\\n         \\\"water\\\":null\\n      }\\n   ]\\n}\",\n      \"language\": \"text\"\n    }\n  ]\n}\n[/block]\n###Optional Query Parameters\n\nThe following optional parameters can be used to request data.\n\n***Standard Data Objects*** \n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"start_date=YYYY-MM-DDTHH:MM:SS\",\n    \"0-1\": \"(time.Now - 1.Day)\",\n    \"0-2\": \"Scopes the results starting the date provided\",\n    \"h-0\": \"Parameter\",\n    \"h-1\": \"Default\",\n    \"h-2\": \"Description\",\n    \"1-0\": \"end_date=YYYY-MM-DDTHH:MM:SS\",\n    \"2-0\": \"expanded=1\",\n    \"3-0\": \"show_validated=1\",\n    \"1-1\": \"time.Now\",\n    \"2-1\": \"0\",\n    \"3-1\": \"0\",\n    \"1-2\": \"Scopes the results ending the date provided\",\n    \"2-2\": \"Response json includes the expanded data for the object based on the source. Also includes activity_id & extras\",\n    \"3-2\": \"(DEPRICATED ON 12/8/2015) All responses now include the validated property by default\",\n    \"4-0\": \"source=:source name\",\n    \"4-1\": \"0\",\n    \"4-2\": \"Response json contains only records for named source\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\n***Request Date Formats***\nThe date formats used in query parameters must be one of the following formats.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Format\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"YYYY-MM-DDThh:mm:ss.ms-hh:mm\",\n    \"1-0\": \"YYYY-MM-DDThh:mm:ssZ\",\n    \"0-1\": \"Date Time with milliseconds & offset\",\n    \"1-1\": \"Zulu - Date Time & offset\"\n  },\n  \"cols\": 2,\n  \"rows\": 2\n}\n[/block]","createdAt":"2015-11-30T18:37:16.011Z","excerpt":"Data, glorious data. ​","hidden":false,"link_external":false,"link_url":"","slug":"data-retrieval","__v":3,"isReference":true,"order":5,"version":"56f4385b3d35720e00ba9839","api":{"settings":"","url":"","auth":"required","params":[],"results":{"codes":[{"language":"json","status":200,"name":"","code":"{}"},{"status":400,"name":"","code":"{}","language":"json"}]}},"category":"56f4385b3d35720e00ba983b","project":"5646482fa74cd10d00a3f014","sync_unique":"","updates":["5669a063c3de130d004417d0","576c224948ce05190010b8c9"],"githubsync":"","title":"Data Retrieval","type":"basic","user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

Data Retrieval

Data, glorious data. ​

Now that you've created your users and deployed the marketplace we'll discuss how to retrieve data from Validic.

About our API

Before we get into the suggested use of our API, let's have a wonderfully short summary of design and data objects.

Data Objects

We separate data into several objects that each contain related data. For example, the Fitness object returns data for activities that are undertaken with the express purpose of exercising. These activities have a defined duration (time, distance, elevation, etc).

Below is a full list of Validic API objects:

Object Name
Description

Fitness

Activities that are undertaken with the express purpose of exercising. These activities have a defined duration (time, distance, elevation, etc). These records are typically discrete/distinct events.

Routine

Activities that occur regularly throughout the day, without the specific goal of exercise, for example, total calories burned and consumed, steps taken, stairs climbed. These activities are aggregated throughout the day. These records are typically an aggregate of discrete/distinct events.

Nutrition

Measurements related to calorie intake and consumption and nutritional information (such as fat, protein, carbohydrates, sodium, etc.). These records are typically discrete/distinct events.

Sleep

Measurements related to the length of time spent in various sleep cycles, as well as the number of times woken during the night. These records are typically discrete/distinct events.

Weight

Measurements associated with a user’s weight and body mass. These records are typically discrete/distinct events.

Diabetes

Measurements associated with a user’s blood glucose and hormone levels related to diabetes treatment and management. These records are typically discrete/distinct events.

Biometrics

Measurements associated with a user’s biometric health such as blood pressure, cholesterol, heart rate, and blood and hormone levels. These records are typically discrete/distinct events.

Data Levels

Data is returned at one of two levels:

  • User: Requests are specific to a user.
  • Organization: Requests generally return data for all your users

Requesting Data

The Anatomy of a Request​​

To retrieve​ data, you'll make a request similar to this:

GET https://api.validic.com/v1/organizations/540e1c9b965feSAMPLEfb/users/54eb9d3a9fa63eSAMPLE78/nutrition.json?access_token=8f6c2c262ddf8SAMPLE6a92625e04676013eSAMPLE960bc25d5bc&start_date=2015-02-14T00:00:00+00:00&expanded=1

Here is the breakdown of the basics of this request:

Parameter
Example
Description/Source

organizations

540e1c9b965feSAMPLEfb

This is the Organization ID provided by the integration team.

users

54eb9d3a9fa63eSAMPLE78

This is the User ID that appeared in the " uid" field when you provisioned the user.

access_token

8f6c2c262ddf8SAMPLE6a9262013eSAMPLE960bc25d5bc5

This is your Access Token provided by the integration team.

object

nutrition.json

This defines the data object you'd like returned.

The other values are optional parameters that we'll discuss in the next section.

Composition of a Response

The following guide will help you understand how to work with the data we return.

Summary

Each response contains a summary object which displays important information about your request. While these fields are self-explanatory, it's important to note one significant function and that is Pagination.

{
  "summary": {
    "status": 200,
    "message": "Ok",
    "results": 288,
    "start_date": "2015-02-14T00:00:00+00:00",
    "end_date": "2015-12-03T23:59:59+00:00",
    "offset": 0,
    "limit": 100,
    "previous": null,
    "next": "https://api.validic.com/v1/organizations/540e1c9b965fe22SAMPLEfb/users/54eb9d3a9fa6SAMPLE78/routine?access_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&expanded=1&page=2&start_date=2015-02-14T00%3A00%3A00+00%3A00",
    "params": {
      "start_date": "2015-02-14T00:00:00+00:00",
      "end_date": null,
      "expanded": true,
      "offset": 0,
      "limit": 0
    }

Pagination

When making API calls, within a given scope (“start_date” and “end_date” of an API call) you may receive a large number of records. To make this easier to manage, 100 records per page are included in the response by default. You can receive up to 1000 records per page by adding a “limit” parameter to your request. If you experience timeouts, we suggest limiting your requests to 300-500 records.

Each response will contain a Next URI which directs you to the next page of records.

"next": "https://api.validic.com/v1/organizations/540e1c9b965fe22SAMPLEfb/users/54eb9d3a9fa6SAMPLE78/routine?access_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&expanded=1&page=2&start_date=2015-02-14T00%3A00%3A00+00%3A00",

Once the final page of results is reached, the Next URI will direct you to the first page again.

Paging Parameters

Parameter
Default
Description

offset=n

0

Sets the number of records to skip when returning the results

limit=n

100

Limits the number of results per request. The maximum value is 1000. Any value higher will be reduced to 1000.

page=n

1

Sets the page number to return

Standard vs. Expanded

In addition to our standard data payload, you can expand your request to include all available fields. We refer to this as expanded data.

Our conventional request only returns standardized data and the values should not change without prior notice. Expanded data returns non-standardized data and we cannot guarantee this data will not change. Here is an example of Standard vs. Expanded responses.

"nutrition":[  
      {  
         "_id":"5660012868SAMPLE066f39",
         "calories":567.0,
         "carbohydrates":44.7,
         "fat":30.7,
         "fiber":4.7,
         "last_updated":"2015-12-03T08:45:28+00:00",
         "meal":"Burrito",
         "protein":32.7,
         "sodium":1507.4,
         "source":"fitbit",
         "source_name":"Fitbit",
         "timestamp":"2015-12-01T08:00:00+00:00",
         "user_id":"53bb087184626bSAMPLE0013",
         "utc_offset":"-08:00",
         "validated":false,
         "water":null
      },
 "nutrition":[  
      {  
         "_id":"5660012868d4SAMPLE066f39",
         "activity_id":"5699887240",
         "calories":567.0,
         "carbohydrates":44.7,
         "expanded":{  
            "access_level":"PRIVATE",
            "amount":1,
            "brand":"Lose It!",
            "carbs":44.7,
            "food_id":0,
            "is_favorite":false,
            "locale":null,
            "log_date":"2015-12-01",
            "log_id":"5699887240",
            "meal_type_id":5,
            "name":"Burrito"
         },
         "fat":30.7,
         "fiber":4.7,
         "last_updated":"2015-12-03T08:45:28+00:00",
         "meal":"Burrito",
         "protein":32.7,
         "sodium":1507.4,
         "source":"fitbit",
         "source_name":"Fitbit",
         "timestamp":"2015-12-01T08:00:00+00:00",
         "user_id":"53bb087184626bSAMPLE0013",
         "utc_offset":"-08:00",
         "validated":false,
         "water":null
      },

You can receive expanded data by using the expanded filter such as:

GET https://api.validic.com/v1/organizations/540e1c9b965fe22SAMPLEfb/users/565c8821SAMPLE7000031/routine.json?access_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&start_date=2015-02-14T00:00:00+00:00&expanded=1

Source

The source filter allows for retrieving datasets specific to a particular source (e.g., Fitbit, BodyMedia, etc.). Please review our support site for a list of supported sources.

GET https://api.validic.com/v1/fitness.json?authentication_token=8f6c2c262ddf8SAMPLEce6a92625e04676013e08a04SAMPLEbc25d5bc5&source=fitbit

You can also request data from multiple sources by using comma separated source values. For example:

GET https://api.validic.com/v1/organizations/55f6dd4937653SAMPLE0088/users/55f6ea9b7c4d318SAMPLE0002/nutrition.json?access_token=a86540dfbSAMPLE166397ba13d3b99476eb073f1e8adSAMPLE6ef771bfff06d9&source=fatsecret,jawbone_up&start_date=2015-12-01T00:00:00.000Z&end_date=2015-12-01T23:59:59.999Z
{  
   "summary":{  
      "status":200,
      "message":"Ok",
      "results":3,
      "start_date":"2016-02-28T00:00:00+00:00",
      "end_date":"2016-03-01T23:59:59+00:00",
      "offset":0,
      "limit":100,
      "previous":null,
      "next":null,
      "params":{  
         "start_date":"2016-02-28T00:00:00+00:00",
         "end_date":"2016-03-01T23:59:59+00:00",
         "expanded":true,
         "offset":0,
         "limit":0
      }
   },
   "routine":[  
      {  
         "_id":"55f6ea9b7c4d318SAMPLE0002",
         "activity_id":"q57i7r-gHDi7KrdSAMPLEFu6X4VlL",
         "calories_burned":222.50562777,
         "distance":5301.0,
         "elevation":null,
         "expanded":{  
            "active_time":4080,
            "bmr":1503.26060737,
            "bmr_day":1503.26060737,
            "calories":222.50562777,
            "inactive_time":28735,
            "km":5.301,
            "longest_active":672,
            "longest_idle":5664,
            "time_completed":"1456894192",
            "time_created":"1456810060",
            "tz":"America/New_York",
            "utc_offset":"-05:00",
            "wo_active_time":0,
            "wo_calories":0,
            "wo_count":0,
            "wo_longest":0,
            "wo_time":0,
            "xid":"q57i7r-gHDi7KrSAMPLEXFu6X4VlL"
         },
         "floors":null,
         "last_updated":"2016-03-02T09:50:19+00:00",
         "source":"jawbone_up",
         "source_name":"Jawbone Up",
         "steps":7058.0,
         "timestamp":"2016-03-01T05:27:40+00:00",
         "utc_offset":"-05:00",
         "validated":false,
         "water":null
      }
   ]
}

Optional Query Parameters

The following optional parameters can be used to request data.

Standard Data Objects

Parameter
Default
Description

start_date=YYYY-MM-DDTHH:mm:SS

(time.Now - 1.Day)

Scopes the results starting the date provided

end_date=YYYY-MM-DDTHH:mm:SS

time.Now

Scopes the results ending the date provided

expanded=1

0

Response json includes the expanded data for the object based on the source. Also includes activity_id & extras

show_validated=1

0

(DEPRICATED ON 12/8/2015) All responses now include the validated property by default

source=:source name

0

Response json contains only records for named source

Request Date Formats
The date formats used in query parameters must be one of the following formats.

Format
Description

YYYY-MM-DDThh:mm:ss.ms-hh:mm

Date Time with milliseconds & offset

YYYY-MM-DDThh:mm:ssZ

Zulu - Date Time & offset

{"_id":"56f4385b3d35720e00ba984b","parentDoc":null,"title":"Updating User Records","updates":[],"link_external":false,"project":"5646482fa74cd10d00a3f014","type":"basic","user":"55e87bcdc5bccb2d008a9ba4","body":"The two most common methods of keeping your users' records current are push notifications and the Latest endpoint. The following guide will explain each option and present our suggested use case for handling updates. \n\n###Push Notifications vs Latest Endpoint\n\nThe primary difference between push notifications and Latest is:\n* Push notifications are intended for near real-time, individual user-level data delivery\n* Latest.json endpoint is intended for near real-time, bulk population-level data delivery. \n\nFor large population sets, push notifications don’t always make sense, as your system could end up receiving thousands of push notifications per minute. Additionally, relying on push notifications alone is not recommended for a large scale, high availability setup.  The latest.json endpoint is a much more stable way to access data for a large population set. \n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Push notifications are only available for Enterprise customers. If you're unsure if you have access to Push Notifications, please contact your Account Manager.\",\n  \"title\": \"Enterprise Feature\"\n}\n[/block]\n###Latest\nWhen using the Latest endpoint, requests return the most recently recorded and/or updated activities for all users of an Organization which were recorded or updated between the specified start_date and end_date.​\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/53067e63e5afSAMPLE0008/biometrics/latest.json?access_token=93a7d46SAMPLEe08b5fa2f5748d16beSAMPLE97e87e8e047f5146da9e46d&start_date=2015-09-01T08:44:29Z&end_date=2015-12-03T08:54:27Z\",\n      \"language\": \"http\",\n      \"name\": \"Latest Example\"\n    }\n  ]\n}\n[/block]\nBy default, bulk data calls are ordered by the timestamp of an individual activity. The challenge here is that if an individual was on vacation for a week and syncs a device upon returning, how will you know about data that occurred a week ago but only just made it into the Validic system?\n\n​The latest endpoint gives you the latest data recorded and/or updated in Validic, regardless of when the activity occurred, based on the last_updated field. \n\nFor example, if you pulled and processed Validic data at 4:00 a.m., and then you want to update your system again at 8:00 a.m., you can specify to only receive new and updated data that was added to our system between 4 a.m. and 8 a.m. by appending a timestamp with the start_date and end_date.\n\nA best practice implementation of /routine/latest.json calls would look something like this:\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"/routine/latest.json?start_date=2014-03-09T10:00:00Z&end_date=2014-03-09T10:05:00Z\\n/routine/latest.json?start_date=2014-03-09T10:05:00Z&end_date=2014-03-09T10:10:00Z\\n/routine/latest.json?start_date=2014-03-09T10:10:00Z&end_date=2014-03-09T10:15:00Z\\n/routine/latest.json?start_date=2014-03-09T10:15:00Z&end_date=2014-03-09T10:20:00Z\\n/routine/latest.json?start_date=2014-03-09T10:20:00Z&end_date=2014-03-09T10:25:00Z\\n/routine/latest.json?start_date=2014-03-09T10:25:00Z&end_date=2014-03-09T10:30:00Z\\n/routine/latest.json?start_date=2014-03-09T10:30:00Z&end_date=2014-03-09T10:35:00Z\\n/routine/latest.json?start_date=2014-03-09T10:35:00Z&end_date=2014-03-09T10:40:00Z\\n/routine/latest.json?start_date=2014-03-09T10:40:00Z&end_date=2014-03-09T10:45:00Z\\n/routine/latest.json?start_date=2014-03-09T10:45:00Z&end_date=2014-03-09T10:50:00Z\",\n      \"language\": \"json\",\n      \"name\": \"Latest.json Example\"\n    }\n  ]\n}\n[/block]\nThe benefit of this series of calls is that you ping Validic every five minutes (could be every 2 minutes, every 10 minutes, etc.) and you receive any updates that have been made for your organization in the specified time range. So for example, if a user doesn’t sync her Fitbit for 5 days and then syncs it on 2014-03- 09T10:47:39Z, Validic will return all of her Fitbit activities from the last 5 days in the last call in the series above.\n\n\n###Push Notifications\nValidic provides our Enterprise customers with the ability to register for Push Notification service for near-real-time data update notifications and optimal resource use. Enterprise customers may have one or more Push Notification URLs set. To do so, contact us at [support@validic.com](mailto:support@validic.com) for setting up Push Notification service for your account.\n\nEach Push Notification sent out may include multiple items corresponding to activities that are now available for retrieval from the Validic API. Each item inside a Push Notification includes the necessary elements for you to construct an API call to retrieve a particular piece of activity data.\n\nOnce set, Validic will begin pushing data to your Push Notification URL via a POST request:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST http://{YOUR_PUSH_NOTICATION_URL}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"data\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"51552cd7fdoSAMPLE00017\\\",\\n         \\\"activity_type\\\":\\\"fitness\\\",\\n         \\\"activity_date\\\":\\\"2015-12-03T19:07:01+00:00\\\",\\n         \\\"source\\\":\\\"jawbone_up\\\"\\n      },\\n      ...\\n   ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"_id\",\n    \"1-0\": \"activity_type\",\n    \"2-0\": \"activity_date\",\n    \"3-0\": \"source\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"0-2\": \"Validic ID of the user\",\n    \"1-2\": \"Type of activity data corresponding to one Validic API endpoint\",\n    \"2-2\": \"Timestamp for the measurement set\",\n    \"3-2\": \"The short name of the application that recorded the activity\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\nUpon receipt of a Push Notification, you may begin fetching new data from the API through a GET Request using the data parameters from the Push Notification:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/{ACTIVITY_TYPE}.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date={ACTIVITY_DATE}&end_date={ACTIVITY_DATE}&source={SOURCE}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"summary\\\":....\\n  },\\n  \\\"fitness\\\": [\\n    {\\n      \\\"_id\\\": \\\"5176903bSAMPLE9c000001\\\",\\n      \\\"activity_category\\\": \\\"Running\\\",\\n      \\\"calories\\\": 522.5881788394,\\n      \\\"distance\\\": 354,\\n      \\\"duration\\\": 3540,\\n      \\\"intensity\\\": \\\"1.0\\\",\\n      \\\"last_updated\\\": \\\"2015-12-03T08:28:09+00:00\\\",\\n      \\\"source\\\": \\\"jawbone_up\\\",\\n      \\\"source_name\\\": \\\"Jawbone Up\\\",\\n      \\\"start_time\\\": \\\"2015-12-03T12:56:45+05:30\\\",\\n      \\\"timestamp\\\": \\\"2015-12-03T07:26:45+00:00\\\",\\n      \\\"type\\\": \\\"Run\\\",\\n      \\\"user_id\\\": \\\"565ff84336SAMPLE000ed\\\",\\n      \\\"utc_offset\\\": \\\"+05:30\\\",\\n      \\\"validated\\\": false\\n      }\\n  ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nYou can learn more about push notifications [here](https://validic.readme.io/docs/push-notification-service).","createdAt":"2015-12-04T19:18:46.131Z","excerpt":"","isReference":true,"link_url":"","order":6,"slug":"updating-user-records","__v":1,"api":{"url":"","auth":"required","params":[],"results":{"codes":[{"code":"{}","language":"json","status":200,"name":""},{"language":"json","status":400,"name":"","code":"{}"}]},"settings":""},"category":"56f4385b3d35720e00ba983b","githubsync":"","hidden":false,"sync_unique":"","version":"56f4385b3d35720e00ba9839","childrenPages":[]}

Updating User Records


The two most common methods of keeping your users' records current are push notifications and the Latest endpoint. The following guide will explain each option and present our suggested use case for handling updates.

Push Notifications vs Latest Endpoint

The primary difference between push notifications and Latest is:

  • Push notifications are intended for near real-time, individual user-level data delivery
  • Latest.json endpoint is intended for near real-time, bulk population-level data delivery.

For large population sets, push notifications don’t always make sense, as your system could end up receiving thousands of push notifications per minute. Additionally, relying on push notifications alone is not recommended for a large scale, high availability setup. The latest.json endpoint is a much more stable way to access data for a large population set.

Enterprise Feature

Push notifications are only available for Enterprise customers. If you're unsure if you have access to Push Notifications, please contact your Account Manager.

Latest

When using the Latest endpoint, requests return the most recently recorded and/or updated activities for all users of an Organization which were recorded or updated between the specified start_date and end_date.​

GET https://api.validic.com/v1/organizations/53067e63e5afSAMPLE0008/biometrics/latest.json?access_token=93a7d46SAMPLEe08b5fa2f5748d16beSAMPLE97e87e8e047f5146da9e46d&start_date=2015-09-01T08:44:29Z&end_date=2015-12-03T08:54:27Z

By default, bulk data calls are ordered by the timestamp of an individual activity. The challenge here is that if an individual was on vacation for a week and syncs a device upon returning, how will you know about data that occurred a week ago but only just made it into the Validic system?

​The latest endpoint gives you the latest data recorded and/or updated in Validic, regardless of when the activity occurred, based on the last_updated field.

For example, if you pulled and processed Validic data at 4:00 a.m., and then you want to update your system again at 8:00 a.m., you can specify to only receive new and updated data that was added to our system between 4 a.m. and 8 a.m. by appending a timestamp with the start_date and end_date.

A best practice implementation of /routine/latest.json calls would look something like this:

/routine/latest.json?start_date=2014-03-09T10:00:00Z&end_date=2014-03-09T10:05:00Z
/routine/latest.json?start_date=2014-03-09T10:05:00Z&end_date=2014-03-09T10:10:00Z
/routine/latest.json?start_date=2014-03-09T10:10:00Z&end_date=2014-03-09T10:15:00Z
/routine/latest.json?start_date=2014-03-09T10:15:00Z&end_date=2014-03-09T10:20:00Z
/routine/latest.json?start_date=2014-03-09T10:20:00Z&end_date=2014-03-09T10:25:00Z
/routine/latest.json?start_date=2014-03-09T10:25:00Z&end_date=2014-03-09T10:30:00Z
/routine/latest.json?start_date=2014-03-09T10:30:00Z&end_date=2014-03-09T10:35:00Z
/routine/latest.json?start_date=2014-03-09T10:35:00Z&end_date=2014-03-09T10:40:00Z
/routine/latest.json?start_date=2014-03-09T10:40:00Z&end_date=2014-03-09T10:45:00Z
/routine/latest.json?start_date=2014-03-09T10:45:00Z&end_date=2014-03-09T10:50:00Z

The benefit of this series of calls is that you ping Validic every five minutes (could be every 2 minutes, every 10 minutes, etc.) and you receive any updates that have been made for your organization in the specified time range. So for example, if a user doesn’t sync her Fitbit for 5 days and then syncs it on 2014-03- 09T10:47:39Z, Validic will return all of her Fitbit activities from the last 5 days in the last call in the series above.

Push Notifications

Validic provides our Enterprise customers with the ability to register for Push Notification service for near-real-time data update notifications and optimal resource use. Enterprise customers may have one or more Push Notification URLs set. To do so, contact us at support@validic.com for setting up Push Notification service for your account.

Each Push Notification sent out may include multiple items corresponding to activities that are now available for retrieval from the Validic API. Each item inside a Push Notification includes the necessary elements for you to construct an API call to retrieve a particular piece of activity data.

Once set, Validic will begin pushing data to your Push Notification URL via a POST request:

POST http://{YOUR_PUSH_NOTICATION_URL}
{  
   "data":[  
      {  
         "_id":"51552cd7fdoSAMPLE00017",
         "activity_type":"fitness",
         "activity_date":"2015-12-03T19:07:01+00:00",
         "source":"jawbone_up"
      },
      ...
   ]
}
Return Value
Type
Description

_id

String

Validic ID of the user

activity_type

String

Type of activity data corresponding to one Validic API endpoint

activity_date

String

Timestamp for the measurement set

source

String

The short name of the application that recorded the activity

Upon receipt of a Push Notification, you may begin fetching new data from the API through a GET Request using the data parameters from the Push Notification:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/{ACTIVITY_TYPE}.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date={ACTIVITY_DATE}&end_date={ACTIVITY_DATE}&source={SOURCE}
{
  "summary":....
  },
  "fitness": [
    {
      "_id": "5176903bSAMPLE9c000001",
      "activity_category": "Running",
      "calories": 522.5881788394,
      "distance": 354,
      "duration": 3540,
      "intensity": "1.0",
      "last_updated": "2015-12-03T08:28:09+00:00",
      "source": "jawbone_up",
      "source_name": "Jawbone Up",
      "start_time": "2015-12-03T12:56:45+05:30",
      "timestamp": "2015-12-03T07:26:45+00:00",
      "type": "Run",
      "user_id": "565ff84336SAMPLE000ed",
      "utc_offset": "+05:30",
      "validated": false
      }
  ]
}

You can learn more about push notifications here.

{"_id":"56f4385b3d35720e00ba984c","category":"56f4385b3d35720e00ba983b","excerpt":"How to prepare for change and manage your version.","githubsync":"","link_external":false,"link_url":"","order":7,"__v":1,"body":"In order to enhance the Validic API without impacting existing customer implementations, Validic maintains multiple versions of the API.  This system allows the customer to manage which version they are using and change at their own pace.  Versions are managed in the API request and response headers. \n\nAny changes made to the API that are deemed backwards-incompatible will be made in a new minor version, designated by the approximate date of that update. You can verify the version used in your request by reviewing \"Validic-Version\" in the response header. \n\nYou can always review previous versions and changes in our Change Log. \n\n###Backwards-compatible (Non-Breaking) Changes\nThe following list of changes is considered compatible with existing integrations and will **not** require an updated version of our API as they should not disrupt your current integration. Your system should be configured to accept, or ignore, these types of changes as they arise:  \n  * Adding a new resource (e.g. a new data object)\n  * Adding a new optional request parameter to an existing method\n  * Adding new property to a response\n  * Changing the order of properties in an existing response\n\nBelow is an example of a backwards-compatible change:\nAdding new properties and changing the order of properties in Apps.Json:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n          \\\"name\\\": \\\"Withings Pulse Activity Tracker\\\",\\n          \\\"type\\\": \\\"Wearable\\\",\\n          \\\"description\\\": \\\"An 8-gram smart tracker to monitor your activity 24/7, measure your heart rate and improve your health. The Withings Pulse can help us all be more active. It captures steps, burned calories, elevation climbed and distance traveled. \\\",\\n          \\\"excerpt\\\": \\\"8-gram smart tracker to monitor your activity.\\\",\\n          \\\"resource_url\\\": \\\"http://www.withings.com/en/pulse\\\",\\n          \\\"data_objects\\\": [\\n            \\\"fitness\\\",\\n            \\\"sleep\\\",\\n            \\\"biometrics\\\"\\n          ],\\n          \\\"kind\\\": [\\n            \\\"Routine\\\",\\n            \\\"Sleep\\\",\\n            \\\"Biometrics\\\"\\n          ],\\n          \\\"image_url\\\": \\\"https://s3.amazonaws.com/assets.validic.com/assets/Withings_Pulse_Activity_Tracker.png\\\",\\n          \\\"discontinued\\\": false\\n        },\",\n      \"language\": \"json\",\n      \"name\": \"Before\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"    {\\n          \\\"data_objects\\\": [\\n            \\\"fitness\\\",\\n            \\\"sleep\\\",\\n            \\\"biometrics\\\"\\n          ],\\n          \\\"description\\\": \\\"An 8-gram smart tracker to monitor your activity 24/7, measure your heart rate and improve your health. The Withings Pulse can help us all be more active. It captures steps, burned calories, elevation climbed and distance traveled. \\\",\\n          \\\"discontinued\\\": false,\\n          \\\"excerpt\\\": \\\"8-gram smart tracker to monitor your activity.\\\",\\n          \\\"image_url\\\": \\\"https://s3.amazonaws.com/assets.validic.com/assets/Withings_Pulse_Activity_Tracker.png\\\",\\n          \\\"kind\\\": [\\n            \\\"Routine\\\",\\n            \\\"Sleep\\\",\\n            \\\"Biometrics\\\"\\n          ],\\n          \\\"name\\\": \\\"Withings Pulse Activity Tracker\\\",\\n          \\\"resource_url\\\": \\\"http://www.withings.com/en/pulse\\\",\\n          \\\"supported_activity_types\\\": [],\\n          \\\"type\\\": \\\"Wearable\\\"\\n        },\",\n      \"language\": \"json\",\n      \"name\": \"After\"\n    }\n  ]\n}\n[/block]\n###Backwards-incompatible Changes (Breaking Changes)\nThe following list of changes are considered breaking changes and will only be released in a new version of our API. Your system will not be required to immediately change to the new version, however, you should anticipate that we will eventually deprecate or eliminate support for older versions. \n  * Renaming a property in a response\n  * Adding a new required request parameters to an existing method\n  * Changes to HTTP status code responses\n  * A new error condition in response to a request parameter value\n  * Any change which disrupts the reasonable and expected use of REST API's\n\n\n##Versions\nValidic uses a major/minor versioning system to manage changes to our API. These versions will allow a user to control which version they access and prevent disruptions to their service. The following sections will review major and minor versions and explain how they will impact you. \n\n###Major Version\nThe major version represents our API as a whole. Think of this as the entire product. This version is not impacted by product improvements and corrections. The major version will only change if a new  ​interpretation of our API is released. **Our current major version is V1**. This is visible in the API request URI.  For example:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/fitness/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de973879SAMPLEddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200\\n\",\n      \"language\": \"text\",\n      \"name\": \"V1\"\n    }\n  ]\n}\n[/block]\nUpdates to major versions are uncommon and should not impact day-to-day operations. \n\n###Minor Version\n\nThe minor version indicates which version of the API you're using to access Validic. The version is represented by the date the version was released, such as \"2016-01-01\".  Developers can control their version by adding \"Validic-Version: <version date>\" to their header.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET /v1/apps.json?access_token=1142837SAMPLE497b65d86acfSAMPLEac35e8915cbcd492eced05e&authentication_token=PSerYSAMPLEtcrw6r&expanded=1 HTTP/1.1\\nContent-Type: application/json\\nValidic-Version: 2016-01-01\\n\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n###Version Control\nWhen you first create your Validic organization, Validic assigns your organization to the current version of our API. Thus, if you do not provide a version in the request header, your requests will use your assigned, or default, version number.  This default version number will stay the same until that API version is deprecated. If your default API version is deprecated your default version will be moved to the next closest API version.  For instance, if API Version '2015-01-01' is deprecated and the next closest version is '2015-04-01', we would move you to this version - and not to the most current version. By adjusting your default version as little as possible, we dramatically decrease the chances of disrupting your service. Please read more about this process and the deprecating of API versions in the API Deprecation section.\n[block:callout]\n{\n  \"type\": \"success\",\n  \"body\": \"When creating a new organization, please review the version in your header to ensure it matches your existing integrations. New organizations are pinned to the current version when they are created.\",\n  \"title\": \"Creating New Organizations\"\n}\n[/block]\n## Depreciation and Release Schedule \nTypically Validic will release 4 per year, however, additional releases may occur from time to time. Once a new minor version is released, the previous version will be supported for one year. After one year, the release will remain active, yet unsupported for one year. Two years after release the version will be deprecated and any users still utilizing this version will be moved to the next available version. \n\nFor instance:\n  * An organization is assigned a default Validic-Version = '2016-01-01'\n  * Validic-Version: 2016-04-01 is released. A notification is sent to all users currently using Validic-Version: '2016-01-01' notifying them that a new version is available and that their current version will be supported until 2017-04-01. \n  * On 2017-04-01 notification is sent to all users of Validic-Version: '2016-01-01' notifying them their version is no longer supported however will remain active, albeit unsupported, until 2017-04-01.  \n  * On 2017-04-01, version Validic-Version: '2016-01-01' is fully deprecated. Any users still using this version are automatically moved to the version closest to their deprecated version.  In this case, ​they'd be moved to Validic-Version: '2016-04-01'. \n  * This process will continue as each version is deprecated.\n\n###Supported vs Unsupported\nWhen planning your update schedule, it is essential to understand the difference between supported and unsupported versions. While a version is supported, it will continue to receives backward compatible updates and full technical support. Once a version is unsupported, while it can still be accessed, it will no longer receive any updates, including bug fixes, and technical support may not be provided. It is therefore possible, albeit unlikely, that an unsupported version of the API will stop working based on updates made to the Validic system.  Additionally, if you wish to take advantage of new features, fixes, and updates, you must upgrade to a newer version of the API.\n\nIf you have any questions regarding versioning, please contact our support@validic.com.","title":"Managing Change","user":"55e87bcdc5bccb2d008a9ba4","parentDoc":null,"slug":"managing-change","next":{"pages":[],"description":""},"project":"5646482fa74cd10d00a3f014","sync_unique":"","type":"basic","api":{"results":{"codes":[{"status":200,"name":"","code":"{}","language":"json"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"version":"56f4385b3d35720e00ba9839","createdAt":"2015-12-04T23:57:54.036Z","hidden":false,"updates":[],"childrenPages":[]}

Managing Change

How to prepare for change and manage your version.

In order to enhance the Validic API without impacting existing customer implementations, Validic maintains multiple versions of the API. This system allows the customer to manage which version they are using and change at their own pace. Versions are managed in the API request and response headers.

Any changes made to the API that are deemed backwards-incompatible will be made in a new minor version, designated by the approximate date of that update. You can verify the version used in your request by reviewing "Validic-Version" in the response header.

You can always review previous versions and changes in our Change Log.

Backwards-compatible (Non-Breaking) Changes

The following list of changes is considered compatible with existing integrations and will not require an updated version of our API as they should not disrupt your current integration. Your system should be configured to accept, or ignore, these types of changes as they arise:

  • Adding a new resource (e.g. a new data object)
  • Adding a new optional request parameter to an existing method
  • Adding new property to a response
  • Changing the order of properties in an existing response

Below is an example of a backwards-compatible change:
Adding new properties and changing the order of properties in Apps.Json:

{
          "name": "Withings Pulse Activity Tracker",
          "type": "Wearable",
          "description": "An 8-gram smart tracker to monitor your activity 24/7, measure your heart rate and improve your health. The Withings Pulse can help us all be more active. It captures steps, burned calories, elevation climbed and distance traveled. ",
          "excerpt": "8-gram smart tracker to monitor your activity.",
          "resource_url": "http://www.withings.com/en/pulse",
          "data_objects": [
            "fitness",
            "sleep",
            "biometrics"
          ],
          "kind": [
            "Routine",
            "Sleep",
            "Biometrics"
          ],
          "image_url": "https://s3.amazonaws.com/assets.validic.com/assets/Withings_Pulse_Activity_Tracker.png",
          "discontinued": false
        },
    {
          "data_objects": [
            "fitness",
            "sleep",
            "biometrics"
          ],
          "description": "An 8-gram smart tracker to monitor your activity 24/7, measure your heart rate and improve your health. The Withings Pulse can help us all be more active. It captures steps, burned calories, elevation climbed and distance traveled. ",
          "discontinued": false,
          "excerpt": "8-gram smart tracker to monitor your activity.",
          "image_url": "https://s3.amazonaws.com/assets.validic.com/assets/Withings_Pulse_Activity_Tracker.png",
          "kind": [
            "Routine",
            "Sleep",
            "Biometrics"
          ],
          "name": "Withings Pulse Activity Tracker",
          "resource_url": "http://www.withings.com/en/pulse",
          "supported_activity_types": [],
          "type": "Wearable"
        },

Backwards-incompatible Changes (Breaking Changes)

The following list of changes are considered breaking changes and will only be released in a new version of our API. Your system will not be required to immediately change to the new version, however, you should anticipate that we will eventually deprecate or eliminate support for older versions.

  • Renaming a property in a response
  • Adding a new required request parameters to an existing method
  • Changes to HTTP status code responses
  • A new error condition in response to a request parameter value
  • Any change which disrupts the reasonable and expected use of REST API's

Versions

Validic uses a major/minor versioning system to manage changes to our API. These versions will allow a user to control which version they access and prevent disruptions to their service. The following sections will review major and minor versions and explain how they will impact you.

Major Version

The major version represents our API as a whole. Think of this as the entire product. This version is not impacted by product improvements and corrections. The major version will only change if a new ​interpretation of our API is released. Our current major version is V1. This is visible in the API request URI. For example:

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/fitness/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de973879SAMPLEddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Updates to major versions are uncommon and should not impact day-to-day operations.

Minor Version

The minor version indicates which version of the API you're using to access Validic. The version is represented by the date the version was released, such as "2016-01-01". Developers can control their version by adding "Validic-Version: <version date>" to their header.

GET /v1/apps.json?access_token=1142837SAMPLE497b65d86acfSAMPLEac35e8915cbcd492eced05e&authentication_token=PSerYSAMPLEtcrw6r&expanded=1 HTTP/1.1
Content-Type: application/json
Validic-Version: 2016-01-01

Version Control

When you first create your Validic organization, Validic assigns your organization to the current version of our API. Thus, if you do not provide a version in the request header, your requests will use your assigned, or default, version number. This default version number will stay the same until that API version is deprecated. If your default API version is deprecated your default version will be moved to the next closest API version. For instance, if API Version '2015-01-01' is deprecated and the next closest version is '2015-04-01', we would move you to this version - and not to the most current version. By adjusting your default version as little as possible, we dramatically decrease the chances of disrupting your service. Please read more about this process and the deprecating of API versions in the API Deprecation section.

Creating New Organizations

When creating a new organization, please review the version in your header to ensure it matches your existing integrations. New organizations are pinned to the current version when they are created.

Depreciation and Release Schedule

Typically Validic will release 4 per year, however, additional releases may occur from time to time. Once a new minor version is released, the previous version will be supported for one year. After one year, the release will remain active, yet unsupported for one year. Two years after release the version will be deprecated and any users still utilizing this version will be moved to the next available version.

For instance:

  • An organization is assigned a default Validic-Version = '2016-01-01'
  • Validic-Version: 2016-04-01 is released. A notification is sent to all users currently using Validic-Version: '2016-01-01' notifying them that a new version is available and that their current version will be supported until 2017-04-01.
  • On 2017-04-01 notification is sent to all users of Validic-Version: '2016-01-01' notifying them their version is no longer supported however will remain active, albeit unsupported, until 2017-04-01.
  • On 2017-04-01, version Validic-Version: '2016-01-01' is fully deprecated. Any users still using this version are automatically moved to the version closest to their deprecated version. In this case, ​they'd be moved to Validic-Version: '2016-04-01'.
  • This process will continue as each version is deprecated.

Supported vs Unsupported

When planning your update schedule, it is essential to understand the difference between supported and unsupported versions. While a version is supported, it will continue to receives backward compatible updates and full technical support. Once a version is unsupported, while it can still be accessed, it will no longer receive any updates, including bug fixes, and technical support may not be provided. It is therefore possible, albeit unlikely, that an unsupported version of the API will stop working based on updates made to the Validic system. Additionally, if you wish to take advantage of new features, fixes, and updates, you must upgrade to a newer version of the API.

If you have any questions regarding versioning, please contact our support@validic.com.

{"_id":"56f4385b3d35720e00ba9862","hidden":false,"isReference":true,"link_url":"","project":"5646482fa74cd10d00a3f014","slug":"request-parameters","version":"56f4385b3d35720e00ba9839","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"title":"Request Parameters","type":"basic","sync_unique":"","createdAt":"2015-12-09T21:22:30.443Z","order":0,"user":"55e87bcdc5bccb2d008a9ba4","__v":0,"body":"The following optional parameters can be used to request data.\n\n***Standard Data Objects*** \n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"start_date=YYYY-MM-DDTHH:MM:SS\",\n    \"0-1\": \"(time.Now - 1.Day)\",\n    \"0-2\": \"Scopes the results starting the date provided\",\n    \"h-0\": \"Parameter\",\n    \"h-1\": \"Default\",\n    \"h-2\": \"Description\",\n    \"1-0\": \"end_date=YYYY-MM-DDTHH:MM:SS\",\n    \"2-0\": \"expanded=1\",\n    \"3-0\": \"show_validated=1\",\n    \"1-1\": \"time.Now\",\n    \"2-1\": \"0\",\n    \"3-1\": \"0\",\n    \"1-2\": \"Scopes the results ending the date provided\",\n    \"2-2\": \"Response json includes the expanded data for the object based on the source. Also includes activity_id & extras\",\n    \"3-2\": \"(DEPRICATED ON 12/8/2015) All responses now include the validated property by default\",\n    \"4-0\": \"source=:source name\",\n    \"4-1\": \"0\",\n    \"4-2\": \"Response json contains only records for named source. You can request multiple sources by using comma separated source values \\\"=fatsecret,jawbone_up\\\"\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\n***Request Date Formats***\nThe date formats used in query parameters must be one of the following formats.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Format\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"YYYY-MM-DDThh:mm:ss.ms-hh:mm\",\n    \"1-0\": \"YYYY-MM-DDThh:mm:ssZ\",\n    \"0-1\": \"Date Time with milliseconds & offset\",\n    \"1-1\": \"Zulu - Date Time & offset\"\n  },\n  \"cols\": 2,\n  \"rows\": 2\n}\n[/block]","category":"56f4385b3d35720e00ba983c","excerpt":"","githubsync":"","link_external":false,"parentDoc":null,"updates":[],"childrenPages":[]}

Request Parameters


The following optional parameters can be used to request data.

Standard Data Objects

Parameter
Default
Description

start_date=YYYY-MM-DDTHH:mm:SS

(time.Now - 1.Day)

Scopes the results starting the date provided

end_date=YYYY-MM-DDTHH:mm:SS

time.Now

Scopes the results ending the date provided

expanded=1

0

Response json includes the expanded data for the object based on the source. Also includes activity_id & extras

show_validated=1

0

(DEPRICATED ON 12/8/2015) All responses now include the validated property by default

source=:source name

0

Response json contains only records for named source. You can request multiple sources by using comma separated source values "=fatsecret,jawbone_up"

Request Date Formats
The date formats used in query parameters must be one of the following formats.

Format
Description

YYYY-MM-DDThh:mm:ss.ms-hh:mm

Date Time with milliseconds & offset

YYYY-MM-DDThh:mm:ssZ

Zulu - Date Time & offset

{"_id":"56f4385b3d35720e00ba9863","sync_unique":"","excerpt":"","githubsync":"","link_external":false,"user":"55e87bcdc5bccb2d008a9ba4","body":"Each response contains a summary object which displays important information about your request. While these fields are self-explanatory, it's important to note one significant function and that is Pagination.\n\nPagination\nWhen making API calls, within a given scope (“start_date” and “end_date” of an API call) you may receive a large number of records. To make this easier to manage, only 100 records per page will be included in the response by default. You can receive up to a maximum of 200 records per page by adding a “limit” parameter.\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"next\\\":\\\"https://api.validic.com/v1/organizations/51adfcfd6dedSAMPLE0001/sleep/latest?access_token=b193142c7a907738ac762cbc70edd4780SAMPLE43e26232d0a3d080dSAMPLE4&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z\\\",\",\n      \"language\": \"json\",\n      \"name\": \"Next URI\"\n    }\n  ]\n}\n[/block]\nEach response will contain a Next URI which directs to the next page of records. Once the final page is reached, the Next URI will be null.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"summary\\\":{  \\n      \\\"status\\\":200,\\n      \\\"message\\\":\\\"Ok\\\",\\n      \\\"results\\\":15567,\\n      \\\"start_date\\\":\\\"2015-12-01T08:44:29+00:00\\\",\\n      \\\"end_date\\\":\\\"2015-12-03T08:54:27+00:00\\\",\\n      \\\"offset\\\":0,\\n      \\\"limit\\\":200,\\n      \\\"previous\\\":null,      \\\"next\\\":\\\"https://api.validic.com/v1/organizations/51adfcfd6dedSAMPLE00001/sleep/latest?access_token=b193142c7a907738ac762cbc70edd4780SAMPLE43e26232d0a3d080dSAMPLE4&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z\\\",\\n      \\\"params\\\":{  \\n         \\\"start_date\\\":\\\"2015-12-01T08:44:29+00:00\\\",\\n         \\\"end_date\\\":\\\"2015-12-03T08:54:27+00:00\\\",\\n         \\\"offset\\\":0,\\n         \\\"limit\\\":200\\n      }\\n   },\\n\",\n      \"language\": \"json\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\nThe following table displays the Return Values found in the summary object.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"status\",\n    \"1-0\": \"message\",\n    \"2-0\": \"results\",\n    \"3-0\": \"start_date\",\n    \"4-0\": \"end_date\",\n    \"5-0\": \"offset\",\n    \"6-0\": \"limit\",\n    \"7-0\": \"previous\",\n    \"8-0\": \"next\",\n    \"8-1\": \"String\",\n    \"7-1\": \"String\",\n    \"4-1\": \"String\",\n    \"3-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-1\": \"Integer\",\n    \"2-1\": \"Integer\",\n    \"5-1\": \"Integer\",\n    \"6-1\": \"Integer\",\n    \"0-2\": \"The HTTP header response code returned.\",\n    \"1-2\": \"The HTTP header response code message returned.\",\n    \"2-2\": \"The total number of records returned across all pages.\",\n    \"3-2\": \"The optional start timestamp of the activities you wish to pull in the ISO 8601 standard format”YYYY-MM-DDThh:mm:ssZ” (e.g., “2013-03-28T14:32:00+00:00″ where “+00:00″ is the UTC offset). Defaults to yesterday’s start of day (e.g., “2013-03-27T00:00:00+00:00″). May be set in GET request (e.g., &start_date=2013-03-28T14:32:00+00:00).\",\n    \"4-2\": \"The optional end timestamp of the activities you wish to pull in the ISO 8601 standard format”YYYY-MM-DDThh:mm:ssZ” (e.g., “2013-03-28T14:32:00+00:00″ where “+00:00″ is the UTC offset). Defaults to yesterday’s end of day (e.g., “2013-03-27T23:59:59+00:00″). May be set in GET request (e.g., &end_date=2013-03-28T14:32:00+00:00).\",\n    \"5-2\": \"Record offset for retrieving paginated records. Default is 0. May be set in GET requests.\",\n    \"6-2\": \"Limit of records returned per page. Default is 100. Must be an integer between 1 and 1000. May be set in GET request.\",\n    \"7-2\": \"The URI of the previous page in the feed.\",\n    \"8-2\": \"The URI of the next page in the feed.\"\n  },\n  \"cols\": 3,\n  \"rows\": 9\n}\n[/block]","hidden":false,"isReference":true,"title":"Summary","type":"fn","version":"56f4385b3d35720e00ba9839","api":{"auth":"required","params":[],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","url":""},"category":"56f4385b3d35720e00ba983c","link_url":"","parentDoc":null,"slug":"summary","updates":["566f248de144ab0d00e97289"],"__v":1,"createdAt":"2015-12-03T15:45:01.519Z","order":1,"project":"5646482fa74cd10d00a3f014","childrenPages":[]}

Summary


Each response contains a summary object which displays important information about your request. While these fields are self-explanatory, it's important to note one significant function and that is Pagination.

Pagination
When making API calls, within a given scope (“start_date” and “end_date” of an API call) you may receive a large number of records. To make this easier to manage, only 100 records per page will be included in the response by default. You can receive up to a maximum of 200 records per page by adding a “limit” parameter.

"next":"https://api.validic.com/v1/organizations/51adfcfd6dedSAMPLE0001/sleep/latest?access_token=b193142c7a907738ac762cbc70edd4780SAMPLE43e26232d0a3d080dSAMPLE4&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z",

Each response will contain a Next URI which directs to the next page of records. Once the final page is reached, the Next URI will be null.

The following table displays the Return Values found in the summary object.

Return Value
Type
Description

status

Integer

The HTTP header response code returned.

message

String

The HTTP header response code message returned.

results

Integer

The total number of records returned across all pages.

start_date

String

The optional start timestamp of the activities you wish to pull in the ISO 8601 standard format”YYYY-MM-DDThh:mm:ssZ” (e.g., “2013-03-28T14:32:00+00:00″ where “+00:00″ is the UTC offset). Defaults to yesterday’s start of day (e.g., “2013-03-27T00:00:00+00:00″). May be set in GET request (e.g., &start_date=2013-03-28T14:32:00+00:00).

end_date

String

The optional end timestamp of the activities you wish to pull in the ISO 8601 standard format”YYYY-MM-DDThh:mm:ssZ” (e.g., “2013-03-28T14:32:00+00:00″ where “+00:00″ is the UTC offset). Defaults to yesterday’s end of day (e.g., “2013-03-27T23:59:59+00:00″). May be set in GET request (e.g., &end_date=2013-03-28T14:32:00+00:00).

offset

Integer

Record offset for retrieving paginated records. Default is 0. May be set in GET requests.

limit

Integer

Limit of records returned per page. Default is 100. Must be an integer between 1 and 1000. May be set in GET request.

previous

String

The URI of the previous page in the feed.

next

String

The URI of the next page in the feed.

{  
   "summary":{  
      "status":200,
      "message":"Ok",
      "results":15567,
      "start_date":"2015-12-01T08:44:29+00:00",
      "end_date":"2015-12-03T08:54:27+00:00",
      "offset":0,
      "limit":200,
      "previous":null,      "next":"https://api.validic.com/v1/organizations/51adfcfd6dedSAMPLE00001/sleep/latest?access_token=b193142c7a907738ac762cbc70edd4780SAMPLE43e26232d0a3d080dSAMPLE4&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z",
      "params":{  
         "start_date":"2015-12-01T08:44:29+00:00",
         "end_date":"2015-12-03T08:54:27+00:00",
         "offset":0,
         "limit":200
      }
   },
{"_id":"56f4385b3d35720e00ba9864","excerpt":"**Fitness records return data for activities that are undertaken with the express purpose of exercising. These activities have a defined duration (time, distance, elevation, etc.)**\n\n###Fitness URLS\n* GET /v1/organizations/:organization_id/fitness\n* GET /v1/organizations/:organization_id/fitness/latest\n* GET /v1/organizations/:organization_id/users/:user_id/fitness\n* GET /v1/organizations/:organization_id/users/:user_id/fitness/latest\n\n**Fitness Short URLS**\n* GET /v1/fitness/latest(.:format)\n* GET /v1/fitness(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","githubsync":"","slug":"fitness","type":"get","__v":0,"api":{"url":"/organizations/:organization_id/users/:user_id/fitness.json","auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/fitness/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200","language":"http"}]},"method":"get","params":[{"ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string","name":"access_token","in":"query","_id":"566067f107e3200d006e47a1"},{"type":"string","name":"organization_id","in":"path","_id":"566067f107e3200d006e47a0","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":""},{"required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string","name":"user_id","in":"path","_id":"566067f107e3200d006e479f","ref":""},{"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00","default":"","type":"string","name":"start_date","in":"query","_id":"566067f107e3200d006e479e","ref":"","required":false},{"name":"end_date","in":"query","_id":"566067f107e3200d006e479d","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string"},{"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":"","type":"string","name":"expanded","in":"query","_id":"566067f107e3200d006e479b","ref":"","required":false},{"name":"source","in":"query","_id":"566067f107e3200d006e479c","ref":"","required":false,"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":"","type":"string"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n    \"summary\":{\n        \"status\":200,\n        \"message\":\"Ok\",\n        \"results\":1256,\n        \"start_date\":\"2015-10-01T08:44:29+00:00\",\n        \"end_date\":\"2015-12-03T08:54:27+00:00\",\n        \"offset\":0,\n        \"limit\":200,\n        \"previous\":null,\n        \"next\":\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/fitness/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-10-01T08%3A44%3A29Z\",\n        \"params\":{\n            \"start_date\":\"2015-10-01T08:44:29+00:00\",\n            \"end_date\":\"2015-12-03T08:54:27+00:00\",\n            \"offset\":0,\n            \"limit\":200\n        }\n    },\n    \"fitness\":[\n        {\n            \"_id\":\"565ff24369eSAMPLE04f288\",\n            \"activity_category\":\"Walking\",\n            \"calories\":135.0,\n            \"distance\":150.38000000000002,\n            \"duration\":3600.0,\n            \"intensity\":\"less than 2 mph, strolling very slowly\",\n            \"last_updated\":\"2015-12-03T07:41:55+00:00\",\n            \"source\":\"fitbit\",\n            \"source_name\":\"Fitbit\",\n            \"start_time\":\"2015-12-03T07:00:00+01:00\",\n            \"timestamp\":\"2015-12-03T06:00:00+00:00\",\n            \"type\":\"Walk\",\n            \"user_id\":\"55ef247fe813SAMPLE00013\",\n            \"utc_offset\":\"+01:00\",\n            \"validated\":false\n        },\n        {\n            \"_id\":\"565ff23ddeSAMPLE05c39f\",\n            \"activity_category\":\"Walking\",\n            \"calories\":136.0,\n            \"distance\":31.39,\n            \"duration\":3600.0,\n            \"intensity\":\"less than 2 mph, strolling very slowly\",\n            \"last_updated\":\"2015-12-03T07:41:49+00:00\",\n            \"source\":\"fitbit\",\n            \"source_name\":\"Fitbit\",\n            \"start_time\":\"2015-12-02T23:00:00+01:00\",\n            \"timestamp\":\"2015-12-02T22:00:00+00:00\",\n            \"type\":\"Walk\",\n            \"user_id\":\"55ef247fe8SAMPLEe000013\",\n            \"utc_offset\":\"+01:00\",\n            \"validated\":false\n        }\n    ]\n}\n","name":""},{"status":401,"language":"text","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","name":""}]},"settings":"5710f3315039350e00abccaa"},"category":"56f4385b3d35720e00ba983c","editedParams":true,"user":"55e87bcdc5bccb2d008a9ba4","editedParams2":true,"link_external":false,"link_url":"","updates":["56a6cead2ec8310d007bc279"],"sync_unique":"","title":"Fitness","version":"56f4385b3d35720e00ba9839","order":2,"parentDoc":null,"project":"5646482fa74cd10d00a3f014","body":"##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"5-0\": \"distance\",\n    \"7-0\": \"calories\",\n    \"8-0\": \"source\",\n    \"9-0\": \"source_name\",\n    \"10-0\": \"last_updated\",\n    \"11-0\": \"_id\",\n    \"5-1\": \"Double\",\n    \"7-1\": \"Double\",\n    \"8-1\": \"String\",\n    \"9-1\": \"String\",\n    \"10-1\": \"String\",\n    \"11-1\": \"String\",\n    \"5-2\": \"The value of the measured quantity in meters\",\n    \"7-2\": \"The value of the measured quantity in kilocalories (Calories)\",\n    \"8-2\": \"The short name of the application that recorded the activity\",\n    \"9-2\": \"The display name of the application that recorded the activity\",\n    \"10-2\": \"Date and time when the measurement set was last updated\",\n    \"11-2\": \"Unique identifier of the activity (required for POST requests)\",\n    \"2-0\": \"type\",\n    \"3-0\": \"intensity\",\n    \"4-0\": \"start_time\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"2-2\": \"Sample types of activities: Running, Cycling, Mountain Biking, Walking, Hiking, Downhill Skiing, Cross-country Skiing, Snowboarding, Skating, Swimming, Rowing, Elliptical, Other. Activities vary from source to source and are returned as provided by source. Read more [here](https://support.validic.com/customer/portal/articles/1754568-fitness-activity-types-and-categories-per-app).\",\n    \"3-2\": \"Subjective intensity with which an activity was performed. Examples are: low, medium, high. Returned as provided by source.\",\n    \"4-2\": \"Starting time for the activity. Preferred format is an ISO 8601 timestamp (YYYY-MM-DDThh:mm:ssZ, e.g., 2013-03-10T07:12:16-05:00).\",\n    \"6-0\": \"duration\",\n    \"6-1\": \"Double\",\n    \"6-2\": \"The value of the measured quantity in seconds\",\n    \"12-0\": \"validated\",\n    \"12-1\": \"Boolean\",\n    \"12-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\",\n    \"13-0\": \"activity_category\",\n    \"13-1\": \"String\",\n    \"13-2\": \"\\\"activity_category\\\" displays type of activity, such as Aerobic Training, Weight Training, Circuit Training, Walking, Bicycling, Running, Elliptical, Swimming, Yoga and Pilates, Sports, Winter Activities, House Work, Yard Work, Miscellaneous, or unknown. Unlike \\\"type\\\" which may be unpredictable, \\\"activity_category\\\" provides a standardized activity type. Read more [here](https://support.validic.com/customer/portal/articles/1754568-fitness-activity-types-and-categories-per-app).\"\n  },\n  \"cols\": 3,\n  \"rows\": 14\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/fitness.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","createdAt":"2015-12-03T18:23:10.706Z","hidden":false,"isReference":true,"childrenPages":[]}

getFitness

**Fitness records return data for activities that are undertaken with the express purpose of exercising. These activities have a defined duration (time, distance, elevation, etc.)** ###Fitness URLS * GET /v1/organizations/:organization_id/fitness * GET /v1/organizations/:organization_id/fitness/latest * GET /v1/organizations/:organization_id/users/:user_id/fitness * GET /v1/organizations/:organization_id/users/:user_id/fitness/latest **Fitness Short URLS** * GET /v1/fitness/latest(.:format) * GET /v1/fitness(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

type

String

Sample types of activities: Running, Cycling, Mountain Biking, Walking, Hiking, Downhill Skiing, Cross-country Skiing, Snowboarding, Skating, Swimming, Rowing, Elliptical, Other. Activities vary from source to source and are returned as provided by source. Read more here.

intensity

String

Subjective intensity with which an activity was performed. Examples are: low, medium, high. Returned as provided by source.

start_time

String

Starting time for the activity. Preferred format is an ISO 8601 timestamp (YYYY-MM-DDThh:mm:ssZ, e.g., 2013-03-10T07:12:16-05:00).

distance

Double

The value of the measured quantity in meters

duration

Double

The value of the measured quantity in seconds

calories

Double

The value of the measured quantity in kilocalories (Calories)

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the activity (required for POST requests)

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

activity_category

String

"activity_category" displays type of activity, such as Aerobic Training, Weight Training, Circuit Training, Walking, Bicycling, Running, Elliptical, Swimming, Yoga and Pilates, Sports, Winter Activities, House Work, Yard Work, Miscellaneous, or unknown. Unlike "type" which may be unpredictable, "activity_category" provides a standardized activity type. Read more here.

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/fitness.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/fitness.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/fitness/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Result Format

{
    "summary":{
        "status":200,
        "message":"Ok",
        "results":1256,
        "start_date":"2015-10-01T08:44:29+00:00",
        "end_date":"2015-12-03T08:54:27+00:00",
        "offset":0,
        "limit":200,
        "previous":null,
        "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/fitness/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-10-01T08%3A44%3A29Z",
        "params":{
            "start_date":"2015-10-01T08:44:29+00:00",
            "end_date":"2015-12-03T08:54:27+00:00",
            "offset":0,
            "limit":200
        }
    },
    "fitness":[
        {
            "_id":"565ff24369eSAMPLE04f288",
            "activity_category":"Walking",
            "calories":135.0,
            "distance":150.38000000000002,
            "duration":3600.0,
            "intensity":"less than 2 mph, strolling very slowly",
            "last_updated":"2015-12-03T07:41:55+00:00",
            "source":"fitbit",
            "source_name":"Fitbit",
            "start_time":"2015-12-03T07:00:00+01:00",
            "timestamp":"2015-12-03T06:00:00+00:00",
            "type":"Walk",
            "user_id":"55ef247fe813SAMPLE00013",
            "utc_offset":"+01:00",
            "validated":false
        },
        {
            "_id":"565ff23ddeSAMPLE05c39f",
            "activity_category":"Walking",
            "calories":136.0,
            "distance":31.39,
            "duration":3600.0,
            "intensity":"less than 2 mph, strolling very slowly",
            "last_updated":"2015-12-03T07:41:49+00:00",
            "source":"fitbit",
            "source_name":"Fitbit",
            "start_time":"2015-12-02T23:00:00+01:00",
            "timestamp":"2015-12-02T22:00:00+00:00",
            "type":"Walk",
            "user_id":"55ef247fe8SAMPLEe000013",
            "utc_offset":"+01:00",
            "validated":false
        }
    ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba9865","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","api":{"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/routine.json","auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/routine/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200","language":"http"}]},"method":"get","params":[{"ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string","name":"access_token","in":"query","_id":"566067f107e3200d006e47a1"},{"type":"string","name":"organization_id","in":"path","_id":"566067f107e3200d006e47a0","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":""},{"type":"string","name":"user_id","in":"path","_id":"566067f107e3200d006e479f","ref":"","required":true,"desc":"Allows customers to request data for specific user","default":""},{"required":false,"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00","default":"","type":"string","name":"start_date","in":"query","_id":"566067f107e3200d006e479e","ref":""},{"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string","name":"end_date","in":"query","_id":"566067f107e3200d006e479d","ref":"","required":false},{"ref":"","required":false,"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":"","type":"string","name":"expanded","in":"query","_id":"566067f107e3200d006e479b"},{"type":"string","name":"source","in":"query","_id":"566067f107e3200d006e479c","ref":"","required":false,"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":""}],"results":{"codes":[{"name":"","code":"{  \n   \"summary\":{  \n      \"status\":200,\n      \"message\":\"Ok\",\n      \"results\":1079,\n      \"start_date\":\"2015-12-01T08:44:29+00:00\",\n      \"end_date\":\"2015-12-03T08:54:27+00:00\",\n      \"offset\":0,\n      \"limit\":200,\n      \"previous\":null,\n      \"next\":\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/routine/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z\",\n      \"params\":{  \n         \"start_date\":\"2015-12-01T08:44:29+00:00\",\n         \"end_date\":\"2015-12-03T08:54:27+00:00\",\n         \"offset\":0,\n         \"limit\":200\n      }\n   },\n   \"routine\":[  \n      {  \n         \"_id\":\"565ffcdd865SAMPLE02226d\",\n         \"calories_burned\":528.95635123,\n         \"distance\":449.0,\n         \"elevation\":null,\n         \"floors\":null,\n         \"last_updated\":\"2015-12-03T08:33:08+00:00\",\n         \"source\":\"jawbone_up\",\n         \"source_name\":\"Jawbone Up\",\n         \"steps\":416.0,\n         \"timestamp\":\"2015-12-03T08:13:00+00:00\",\n         \"user_id\":\"565ff843369dSAMPLE20000ed\",\n         \"utc_offset\":\"+05:30\",\n         \"validated\":false,\n         \"water\":null\n      },\n      {  \n         \"_id\":\"565ffd18b61SAMPLEd020bfe\",\n         \"calories_burned\":28.2099829393,\n         \"distance\":386.0,\n         \"elevation\":null,\n         \"floors\":null,\n         \"last_updated\":\"2015-12-03T08:28:08+00:00\",\n         \"source\":\"jawbone_up\",\n         \"source_name\":\"Jawbone Up\",\n         \"steps\":393.0,\n         \"timestamp\":\"2015-10-13T08:58:00+00:00\",\n         \"user_id\":\"565ff843369dSAMPLE000ed\",\n         \"utc_offset\":\"+05:30\",\n         \"validated\":false,\n         \"water\":null\n      }\n   ]\n}","language":"json","status":200},{"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"text","status":401}]}},"isReference":true,"parentDoc":null,"sync_unique":"","editedParams":true,"editedParams2":true,"link_external":false,"order":3,"body":"##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"2-0\": \"steps\",\n    \"2-1\": \"Double\",\n    \"2-2\": \"The value of the measured quantity\",\n    \"3-0\": \"distance\",\n    \"4-0\": \"floors\",\n    \"5-0\": \"elevation\",\n    \"6-0\": \"calories_burned\",\n    \"7-0\": \"source\",\n    \"8-0\": \"source_name\",\n    \"9-0\": \"last_updated\",\n    \"10-0\": \"_id\",\n    \"3-1\": \"Double\",\n    \"4-1\": \"Double\",\n    \"5-1\": \"Double\",\n    \"6-1\": \"Double\",\n    \"7-1\": \"String\",\n    \"8-1\": \"String\",\n    \"9-1\": \"String\",\n    \"10-1\": \"String\",\n    \"3-2\": \"The value of the measured quantity in meters\",\n    \"4-2\": \"The value of the measured quantity\",\n    \"5-2\": \"The value of the measured quantity in meters\",\n    \"6-2\": \"The value of the measured quantity in kilocalories (Calories)\",\n    \"7-2\": \"The short name of the application that recorded the activity\",\n    \"8-2\": \"The display name of the application that recorded the activity\",\n    \"9-2\": \"Date and time when the measurement set was last updated\",\n    \"10-2\": \"Unique identifier of the activity (required for POST requests)\",\n    \"11-0\": \"validated\",\n    \"12-0\": \"water\",\n    \"12-2\": \"Water values are returned in mL. Please note, this data is reflective of the user's water log entries via Fitbit and NOT water logged as a meal.\",\n    \"12-1\": \"Double\",\n    \"11-1\": \"Boolean\",\n    \"11-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\",\n    \"13-0\": \"active_duration\",\n    \"13-1\": \"Double\",\n    \"13-2\": \"The value of the measured quantity in seconds.\"\n  },\n  \"cols\": 3,\n  \"rows\": 14\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/routine.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/routine.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/routine.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","category":"56f4385b3d35720e00ba983c","createdAt":"2015-12-03T16:04:01.279Z","slug":"routine","type":"get","version":"56f4385b3d35720e00ba9839","excerpt":"**Activities that occur regularly throughout the day, without the specific goal of exercise, for example, calories burned, steps taken, stairs climbed. These activities are aggregated​ throughout the day**\n\n###Routine URLS\n* GET /v1/organizations/:organization_id/routine\n* GET /v1/organizations/:organization_id/routine/latest\n* GET /v1/organizations/:organization_id/users/:user_id/routine\n* GET /v1/organizations/:organization_id/users/:user_id/routine/latest\n\n**Routine Short URLS**\n* GET /v1/routine/latest(.:format)\n* GET /v1/routine(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","link_url":"","project":"5646482fa74cd10d00a3f014","title":"Routine","__v":1,"githubsync":"","hidden":false,"next":{"description":"","pages":[]},"childrenPages":[]}

getRoutine

**Activities that occur regularly throughout the day, without the specific goal of exercise, for example, calories burned, steps taken, stairs climbed. These activities are aggregated​ throughout the day** ###Routine URLS * GET /v1/organizations/:organization_id/routine * GET /v1/organizations/:organization_id/routine/latest * GET /v1/organizations/:organization_id/users/:user_id/routine * GET /v1/organizations/:organization_id/users/:user_id/routine/latest **Routine Short URLS** * GET /v1/routine/latest(.:format) * GET /v1/routine(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

steps

Double

The value of the measured quantity

distance

Double

The value of the measured quantity in meters

floors

Double

The value of the measured quantity

elevation

Double

The value of the measured quantity in meters

calories_burned

Double

The value of the measured quantity in kilocalories (Calories)

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the activity (required for POST requests)

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

water

Double

Water values are returned in mL. Please note, this data is reflective of the user's water log entries via Fitbit and NOT water logged as a meal.

active_duration

Double

The value of the measured quantity in seconds.

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/routine.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/routine.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/routine.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/routine/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Result Format

{  
   "summary":{  
      "status":200,
      "message":"Ok",
      "results":1079,
      "start_date":"2015-12-01T08:44:29+00:00",
      "end_date":"2015-12-03T08:54:27+00:00",
      "offset":0,
      "limit":200,
      "previous":null,
      "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/routine/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z",
      "params":{  
         "start_date":"2015-12-01T08:44:29+00:00",
         "end_date":"2015-12-03T08:54:27+00:00",
         "offset":0,
         "limit":200
      }
   },
   "routine":[  
      {  
         "_id":"565ffcdd865SAMPLE02226d",
         "calories_burned":528.95635123,
         "distance":449.0,
         "elevation":null,
         "floors":null,
         "last_updated":"2015-12-03T08:33:08+00:00",
         "source":"jawbone_up",
         "source_name":"Jawbone Up",
         "steps":416.0,
         "timestamp":"2015-12-03T08:13:00+00:00",
         "user_id":"565ff843369dSAMPLE20000ed",
         "utc_offset":"+05:30",
         "validated":false,
         "water":null
      },
      {  
         "_id":"565ffd18b61SAMPLEd020bfe",
         "calories_burned":28.2099829393,
         "distance":386.0,
         "elevation":null,
         "floors":null,
         "last_updated":"2015-12-03T08:28:08+00:00",
         "source":"jawbone_up",
         "source_name":"Jawbone Up",
         "steps":393.0,
         "timestamp":"2015-10-13T08:58:00+00:00",
         "user_id":"565ff843369dSAMPLE000ed",
         "utc_offset":"+05:30",
         "validated":false,
         "water":null
      }
   ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba9866","api":{"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/nutrition.json","auth":"required","examples":{"codes":[]},"method":"get","params":[{"type":"string","name":"access_token","in":"query","_id":"566067f107e3200d006e47a1","ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":""},{"required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id","in":"path","_id":"566067f107e3200d006e47a0","ref":""},{"default":"","type":"string","name":"user_id","in":"path","_id":"566067f107e3200d006e479f","ref":"","required":true,"desc":"Allows customers to request data for specific user"},{"in":"query","_id":"566067f107e3200d006e479e","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00","default":"","type":"string","name":"start_date"},{"ref":"","required":false,"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string","name":"end_date","in":"query","_id":"566067f107e3200d006e479d"},{"type":"string","name":"expanded","in":"query","_id":"566067f107e3200d006e479b","ref":"","required":false,"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":""},{"required":false,"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":"","type":"string","name":"source","in":"query","_id":"566067f107e3200d006e479c","ref":""}],"results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"status":400,"language":"json","code":"{}","name":""}]}},"hidden":false,"order":4,"parentDoc":null,"slug":"nutrition","sync_unique":"","updates":["567a9bc493919f0d00c979bd","56dda420fb6a580e00fb3498"],"__v":0,"category":"56f4385b3d35720e00ba983c","createdAt":"2015-12-03T19:30:11.924Z","editedParams":true,"excerpt":"**Activities related to calorie intake and consumption and nutritional information (such as fat, protein, carbohydrates, sodium, etc.)**\n\n###Nutrition URLS\n* GET /v1/organizations/:organization_id/nutrition\n* GET /v1/organizations/:organization_id/nutrition/latest\n* GET /v1/organizations/:organization_id/users/:user_id/nutrition\n* GET /v1/organizations/:organization_id/users/:user_id/nutrition/latest\n\n**Nutrition Short URLS**\n* GET /v1/nutrition/latest(.:format)\n* GET /v1/nutrition(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","githubsync":"","version":"56f4385b3d35720e00ba9839","body":"[block:textarea]\n{\n  \"text\": \"## Request\",\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"language\": \"http\",\n      \"code\": \"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/nutrition/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200\",\n      \"name\": \"\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:textarea]\n{\n  \"text\": \"## Results\",\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"status\": 200,\n      \"language\": \"json\",\n      \"code\": \"{  \\n   \\\"summary\\\":{  \\n      \\\"status\\\":200,\\n      \\\"message\\\":\\\"Ok\\\",\\n      \\\"results\\\":332,\\n      \\\"start_date\\\":\\\"2015-12-01T08:44:29+00:00\\\",\\n      \\\"end_date\\\":\\\"2015-12-03T08:54:27+00:00\\\",\\n      \\\"offset\\\":0,\\n      \\\"limit\\\":200,\\n      \\\"previous\\\":null,\\n      \\\"next\\\":\\\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/nutrition/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z\\\",\\n      \\\"params\\\":{  \\n         \\\"start_date\\\":\\\"2015-12-01T08:44:29+00:00\\\",\\n         \\\"end_date\\\":\\\"2015-12-03T08:54:27+00:00\\\",\\n         \\\"offset\\\":0,\\n         \\\"limit\\\":200\\n      }\\n   },\\n   \\\"nutrition\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"5660012868d4SAMPLE066f39\\\",\\n         \\\"calories\\\":567.0,\\n         \\\"carbohydrates\\\":44.7,\\n         \\\"fat\\\":30.7,\\n         \\\"fiber\\\":4.7,\\n         \\\"last_updated\\\":\\\"2015-12-03T08:45:28+00:00\\\",\\n         \\\"meal\\\":\\\"Burrito\\\",\\n         \\\"protein\\\":32.7,\\n         \\\"sodium\\\":1507.4,\\n         \\\"source\\\":\\\"fitbit\\\",\\n         \\\"source_name\\\":\\\"Fitbit\\\",\\n         \\\"timestamp\\\":\\\"2015-12-01T08:00:00+00:00\\\",\\n         \\\"user_id\\\":\\\"53bb08718462SAMPLE000013\\\",\\n         \\\"utc_offset\\\":\\\"-08:00\\\",\\n         \\\"validated\\\":false,\\n         \\\"water\\\":null\\n      },\\n      {  \\n         \\\"_id\\\":\\\"56600127ab56SAMPLE616fe\\\",\\n         \\\"calories\\\":500.0,\\n         \\\"carbohydrates\\\":102.5,\\n         \\\"fat\\\":2.5,\\n         \\\"fiber\\\":5.0,\\n         \\\"last_updated\\\":\\\"2015-12-03T08:45:27+00:00\\\",\\n         \\\"meal\\\":\\\"Pasta\\\",\\n         \\\"protein\\\":17.5,\\n         \\\"sodium\\\":0.0,\\n         \\\"source\\\":\\\"fitbit\\\",\\n         \\\"source_name\\\":\\\"Fitbit\\\",\\n         \\\"timestamp\\\":\\\"2015-12-01T08:00:00+00:00\\\",\\n         \\\"user_id\\\":\\\"53bb087184626bSAMPLE013\\\",\\n         \\\"utc_offset\\\":\\\"-08:00\\\",\\n         \\\"validated\\\":false,\\n         \\\"water\\\":null\\n      }\\n   ]\\n}\",\n      \"name\": 200\n    },\n    {\n      \"status\": 401,\n      \"language\": \"text\",\n      \"code\": \"{  \\n   \\\"code\\\":401,\\n   \\\"message\\\",\\n   \\\"Unauthorized\\\"\\n}\\n\\nBelow is a reference of response codes provided from the Validic API:\\n401\\nUnauthorized\\nRequest was not authorized\\n\\n403\\nForbidden\\nRequest was forbidden, wrong access token supplied\\n\\n404\\nNot Found\\nResource was not found\\n\\n406\\nNot Acceptable\\nSupplied POST data was not accepted\\n\\n409\\nConflict\\nResource could not processed due to a conflict (e.g. user already exists)\\n\\n422\\nUnprocessed Entity\\nResource could not be processed, wrong parameters or credentials supplied\\n\\n429\\nLimit Exceeded\\nResource could not be processed, maximum number of request to the resource was exceeded\",\n      \"name\": 401\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"2-0\": \"calories\",\n    \"3-0\": \"carbohydrates\",\n    \"4-0\": \"fat\",\n    \"6-0\": \"protein\",\n    \"7-0\": \"sodium\",\n    \"8-0\": \"water\",\n    \"9-0\": \"meal\",\n    \"10-0\": \"source\",\n    \"2-1\": \"Double\",\n    \"3-1\": \"Double\",\n    \"4-1\": \"Double\",\n    \"6-1\": \"Double\",\n    \"7-1\": \"Double\",\n    \"8-1\": \"Double\",\n    \"9-1\": \"String\",\n    \"10-1\": \"String\",\n    \"2-2\": \"The value of the measured quantity in kilocalories (Calories)\",\n    \"3-2\": \"The value of the measured quantity in g\",\n    \"4-2\": \"The value of the measured quantity in g\",\n    \"6-2\": \"The value of the measured quantity in g\",\n    \"7-2\": \"The value of the measured quantity in mg\",\n    \"8-2\": \"The value of the measured quantity in mL\",\n    \"9-2\": \"The meal, for example: pizza, Coke, chicken breast, other, unspecified\",\n    \"10-2\": \"The short name of the application that recorded the activity\",\n    \"11-0\": \"source_name\",\n    \"12-0\": \"last_updated\",\n    \"13-0\": \"_id\",\n    \"11-1\": \"String\",\n    \"12-1\": \"String\",\n    \"13-1\": \"String\",\n    \"13-2\": \"Unique identifier of the entry\",\n    \"12-2\": \"Date and time when the measurement set was last updated\",\n    \"11-2\": \"The display name of the application that recorded the activity\",\n    \"14-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\",\n    \"14-1\": \"Boolean\",\n    \"14-0\": \"validated\",\n    \"5-0\": \"fiber\",\n    \"5-1\": \"Double\",\n    \"5-2\": \"The value of the measured quantity in g\"\n  },\n  \"cols\": 3,\n  \"rows\": 15\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/nutrition.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/nutrition.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/nutrition.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","isReference":true,"link_external":false,"link_url":"","project":"5646482fa74cd10d00a3f014","title":"Nutrition","type":"get","editedParams2":true,"user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

getNutrition

**Activities related to calorie intake and consumption and nutritional information (such as fat, protein, carbohydrates, sodium, etc.)** ###Nutrition URLS * GET /v1/organizations/:organization_id/nutrition * GET /v1/organizations/:organization_id/nutrition/latest * GET /v1/organizations/:organization_id/users/:user_id/nutrition * GET /v1/organizations/:organization_id/users/:user_id/nutrition/latest **Nutrition Short URLS** * GET /v1/nutrition/latest(.:format) * GET /v1/nutrition(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

calories

Double

The value of the measured quantity in kilocalories (Calories)

carbohydrates

Double

The value of the measured quantity in g

fat

Double

The value of the measured quantity in g

fiber

Double

The value of the measured quantity in g

protein

Double

The value of the measured quantity in g

sodium

Double

The value of the measured quantity in mg

water

Double

The value of the measured quantity in mL

meal

String

The meal, for example: pizza, Coke, chicken breast, other, unspecified

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the entry

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/nutrition.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/nutrition.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/nutrition.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



Request

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/nutrition/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Results

{  
   "summary":{  
      "status":200,
      "message":"Ok",
      "results":332,
      "start_date":"2015-12-01T08:44:29+00:00",
      "end_date":"2015-12-03T08:54:27+00:00",
      "offset":0,
      "limit":200,
      "previous":null,
      "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/nutrition/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z",
      "params":{  
         "start_date":"2015-12-01T08:44:29+00:00",
         "end_date":"2015-12-03T08:54:27+00:00",
         "offset":0,
         "limit":200
      }
   },
   "nutrition":[  
      {  
         "_id":"5660012868d4SAMPLE066f39",
         "calories":567.0,
         "carbohydrates":44.7,
         "fat":30.7,
         "fiber":4.7,
         "last_updated":"2015-12-03T08:45:28+00:00",
         "meal":"Burrito",
         "protein":32.7,
         "sodium":1507.4,
         "source":"fitbit",
         "source_name":"Fitbit",
         "timestamp":"2015-12-01T08:00:00+00:00",
         "user_id":"53bb08718462SAMPLE000013",
         "utc_offset":"-08:00",
         "validated":false,
         "water":null
      },
      {  
         "_id":"56600127ab56SAMPLE616fe",
         "calories":500.0,
         "carbohydrates":102.5,
         "fat":2.5,
         "fiber":5.0,
         "last_updated":"2015-12-03T08:45:27+00:00",
         "meal":"Pasta",
         "protein":17.5,
         "sodium":0.0,
         "source":"fitbit",
         "source_name":"Fitbit",
         "timestamp":"2015-12-01T08:00:00+00:00",
         "user_id":"53bb087184626bSAMPLE013",
         "utc_offset":"-08:00",
         "validated":false,
         "water":null
      }
   ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded
{"_id":"56f4385b3d35720e00ba9867","__v":0,"excerpt":"**Measurements related to the length of time spent in various sleep cycles, as well as the number​ of times woken during the night.**\n\n###Sleep URLS\n* GET /v1/organizations/:organization_id/sleep\n* GET /v1/organizations/:organization_id/sleep/latest\n* GET /v1/organizations/:organization_id/users/:user_id/sleep\n* GET /v1/organizations/:organization_id/users/:user_id/sleep/latest\n\n**Sleep Short URLS**\n* GET /v1/sleep/latest(.:format)\n* GET /v1/sleep(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","hidden":false,"parentDoc":null,"project":"5646482fa74cd10d00a3f014","type":"get","order":5,"slug":"sleep","api":{"params":[{"name":"access_token","in":"query","_id":"566067f107e3200d006e47a1","ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string"},{"default":"","type":"string","name":"organization_id","in":"path","_id":"566067f107e3200d006e47a0","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization"},{"_id":"566067f107e3200d006e479f","ref":"","required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string","name":"user_id","in":"path"},{"_id":"566067f107e3200d006e479e","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00","default":"","type":"string","name":"start_date","in":"query"},{"in":"query","_id":"566067f107e3200d006e479d","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string","name":"end_date"},{"ref":"","required":false,"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":"","type":"string","name":"expanded","in":"query","_id":"566067f107e3200d006e479b"},{"required":false,"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":"","type":"string","name":"source","in":"query","_id":"566067f107e3200d006e479c","ref":""}],"results":{"codes":[{"name":"","code":"{  \n   \"summary\":{  \n      \"status\":200,\n      \"message\":\"Ok\",\n      \"results\":15567,\n      \"start_date\":\"2015-12-01T08:44:29+00:00\",\n      \"end_date\":\"2015-12-03T08:54:27+00:00\",\n      \"offset\":0,\n      \"limit\":200,\n      \"previous\":null,\n      \"next\":\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/sleep/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z\",\n      \"params\":{  \n         \"start_date\":\"2015-12-01T08:44:29+00:00\",\n         \"end_date\":\"2015-12-03T08:54:27+00:00\",\n         \"offset\":0,\n         \"limit\":200\n      }\n   },\n   \"sleep\":[  \n      {  \n         \"_id\":\"566002d051842SAMPLE60a28\",\n         \"awake\":660.0,\n         \"deep\":10740.0,\n         \"last_updated\":\"2015-12-03T08:52:32+00:00\",\n         \"light\":0.0,\n         \"rem\":0.0,\n         \"source\":\"fitbit\",\n         \"source_name\":\"Fitbit\",\n         \"times_woken\":5.0,\n         \"timestamp\":\"2015-12-02T05:00:00+00:00\",\n         \"total_sleep\":11400.0,\n         \"user_id\":\"5548800c68c652SAMPLE003a\",\n         \"utc_offset\":\"-05:00\",\n         \"validated\":false\n      },\n      {  \n         \"_id\":\"566002cf518SAMPLE6060a23\",\n         \"awake\":720.0,\n         \"deep\":42840.0,\n         \"last_updated\":\"2015-12-03T08:52:31+00:00\",\n         \"light\":0.0,\n         \"rem\":0.0,\n         \"source\":\"fitbit\",\n         \"source_name\":\"Fitbit\",\n         \"times_woken\":7.0,\n         \"timestamp\":\"2015-12-02T05:00:00+00:00\",\n         \"total_sleep\":43560.0,\n         \"user_id\":\"5548800c68c65SAMPLE0003a\",\n         \"utc_offset\":\"-05:00\",\n         \"validated\":false\n      }\n   ]\n}","language":"json","status":200},{"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"text","status":401}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/sleep.json","auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/sleep/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200","language":"http"}]},"method":"get"},"editedParams2":true,"githubsync":"","isReference":true,"link_url":"","sync_unique":"","version":"56f4385b3d35720e00ba9839","body":"##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"2-0\": \"source\",\n    \"3-0\": \"source_name\",\n    \"4-0\": \"last_updated\",\n    \"5-0\": \"_id\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"5-1\": \"String\",\n    \"2-2\": \"The short name of the application that recorded the activity\",\n    \"3-2\": \"The display name of the application that recorded the activity\",\n    \"4-2\": \"Date and time when the measurement set was last updated\",\n    \"5-2\": \"Unique identifier of the activity (required for POST requests)\",\n    \"6-0\": \"awake\",\n    \"6-1\": \"Double\",\n    \"6-2\": \"The value of the measured quantity in seconds\",\n    \"7-0\": \"deep\",\n    \"8-0\": \"light\",\n    \"9-0\": \"rem\",\n    \"10-0\": \"times_woken\",\n    \"7-1\": \"Double\",\n    \"8-1\": \"Double\",\n    \"9-1\": \"Double\",\n    \"10-1\": \"Double\",\n    \"7-2\": \"The value of the measured quantity in seconds\",\n    \"8-2\": \"The value of the measured quantity in seconds\",\n    \"9-2\": \"The value of the measured quantity in seconds\",\n    \"10-2\": \"The value of the measured quantity\",\n    \"12-0\": \"validated\",\n    \"12-1\": \"Boolean\",\n    \"12-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\",\n    \"11-0\": \"total_sleep\",\n    \"11-1\": \"Double\",\n    \"11-2\": \"The value of the measured quantity in seconds\"\n  },\n  \"cols\": 3,\n  \"rows\": 13\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/sleep.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/sleep.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/sleep.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","createdAt":"2015-12-03T20:01:57.353Z","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","category":"56f4385b3d35720e00ba983c","editedParams":true,"link_external":false,"title":"Sleep","childrenPages":[]}

getSleep

**Measurements related to the length of time spent in various sleep cycles, as well as the number​ of times woken during the night.** ###Sleep URLS * GET /v1/organizations/:organization_id/sleep * GET /v1/organizations/:organization_id/sleep/latest * GET /v1/organizations/:organization_id/users/:user_id/sleep * GET /v1/organizations/:organization_id/users/:user_id/sleep/latest **Sleep Short URLS** * GET /v1/sleep/latest(.:format) * GET /v1/sleep(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the activity (required for POST requests)

awake

Double

The value of the measured quantity in seconds

deep

Double

The value of the measured quantity in seconds

light

Double

The value of the measured quantity in seconds

rem

Double

The value of the measured quantity in seconds

times_woken

Double

The value of the measured quantity

total_sleep

Double

The value of the measured quantity in seconds

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/sleep.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/sleep.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/sleep.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/sleep/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Result Format

{  
   "summary":{  
      "status":200,
      "message":"Ok",
      "results":15567,
      "start_date":"2015-12-01T08:44:29+00:00",
      "end_date":"2015-12-03T08:54:27+00:00",
      "offset":0,
      "limit":200,
      "previous":null,
      "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/sleep/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&limit=200&page=2&start_date=2015-12-01T08%3A44%3A29Z",
      "params":{  
         "start_date":"2015-12-01T08:44:29+00:00",
         "end_date":"2015-12-03T08:54:27+00:00",
         "offset":0,
         "limit":200
      }
   },
   "sleep":[  
      {  
         "_id":"566002d051842SAMPLE60a28",
         "awake":660.0,
         "deep":10740.0,
         "last_updated":"2015-12-03T08:52:32+00:00",
         "light":0.0,
         "rem":0.0,
         "source":"fitbit",
         "source_name":"Fitbit",
         "times_woken":5.0,
         "timestamp":"2015-12-02T05:00:00+00:00",
         "total_sleep":11400.0,
         "user_id":"5548800c68c652SAMPLE003a",
         "utc_offset":"-05:00",
         "validated":false
      },
      {  
         "_id":"566002cf518SAMPLE6060a23",
         "awake":720.0,
         "deep":42840.0,
         "last_updated":"2015-12-03T08:52:31+00:00",
         "light":0.0,
         "rem":0.0,
         "source":"fitbit",
         "source_name":"Fitbit",
         "times_woken":7.0,
         "timestamp":"2015-12-02T05:00:00+00:00",
         "total_sleep":43560.0,
         "user_id":"5548800c68c65SAMPLE0003a",
         "utc_offset":"-05:00",
         "validated":false
      }
   ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba9868","type":"get","updates":[],"editedParams":true,"editedParams2":true,"link_url":"","slug":"weight","link_external":false,"order":6,"sync_unique":"","user":"55e87bcdc5bccb2d008a9ba4","__v":0,"body":"##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"2-0\": \"source\",\n    \"3-0\": \"source_name\",\n    \"4-0\": \"last_updated\",\n    \"5-0\": \"_id\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"5-1\": \"String\",\n    \"2-2\": \"The short name of the application that recorded the activity\",\n    \"3-2\": \"The display name of the application that recorded the activity\",\n    \"4-2\": \"Date and time when the measurement set was last updated\",\n    \"5-2\": \"Unique identifier of the activity (required for POST requests)\",\n    \"6-0\": \"weight\",\n    \"6-1\": \"Double\",\n    \"6-2\": \"The value of the measured quantity in kg\",\n    \"7-0\": \"height\",\n    \"8-0\": \"free_mass\",\n    \"9-0\": \"fat_percent\",\n    \"10-0\": \"mass_weight\",\n    \"7-1\": \"Double\",\n    \"8-1\": \"Double\",\n    \"9-1\": \"Double\",\n    \"10-1\": \"Double\",\n    \"7-2\": \"The value of the measured quantity in cm\",\n    \"8-2\": \"The value of the measured quantity in kg\",\n    \"9-2\": \"The value of the measured quantity (0-100 percent)\",\n    \"10-2\": \"The value of the measured quantity in kg\",\n    \"11-0\": \"bmi\",\n    \"11-2\": \"The value of the measured quantity\",\n    \"12-0\": \"validated\",\n    \"12-1\": \"Boolean\",\n    \"12-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\"\n  },\n  \"cols\": 3,\n  \"rows\": 13\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/weight.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/weight.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/weight.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","hidden":false,"isReference":true,"parentDoc":null,"api":{"examples":{"codes":[{"language":"http","name":"","code":"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/weight/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200"}]},"method":"get","params":[{"default":"","type":"string","name":"access_token","in":"query","_id":"566067f107e3200d006e47a1","ref":"","required":true,"desc":"Unique access token which must be passed for authentication"},{"in":"path","_id":"566067f107e3200d006e47a0","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id"},{"name":"user_id","in":"path","_id":"566067f107e3200d006e479f","ref":"","required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string"},{"default":"","type":"string","name":"start_date","in":"query","_id":"566067f107e3200d006e479e","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00"},{"in":"query","_id":"566067f107e3200d006e479d","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string","name":"end_date"},{"name":"expanded","in":"query","_id":"566067f107e3200d006e479b","ref":"","required":false,"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":"","type":"string"},{"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":"","type":"string","name":"source","in":"query","_id":"566067f107e3200d006e479c","ref":"","required":false}],"results":{"codes":[{"name":"","code":"{\n    \"summary\":{\n        \"status\":200,\n        \"message\":\"Ok\",\n        \"results\":5110,\n        \"start_date\":\"2015-10-01T08:44:29+00:00\",\n        \"end_date\":\"2015-12-03T08:54:27+00:00\",\n        \"offset\":0,\n        \"limit\":200,\n        \"previous\":null,\n        \"next\":\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/weight/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-10-01T08%3A44%3A29Z\",\n        \"params\":{\n            \"start_date\":\"2015-10-01T08:44:29+00:00\",\n            \"end_date\":\"2015-12-03T08:54:27+00:00\",\n            \"offset\":0,\n            \"limit\":200\n        }\n    },\n    \"weight\":[\n        {\n            \"_id\":\"565ffed9418SAMPLEe0622bf\",\n            \"bmi\":18.5,\n            \"fat_percent\":null,\n            \"free_mass\":null,\n            \"height\":null,\n            \"last_updated\":\"2015-12-03T08:35:37+00:00\",\n            \"mass_weight\":null,\n            \"source\":\"fitbit\",\n            \"source_name\":\"Fitbit\",\n            \"timestamp\":\"2014-03-12T22:59:59+00:00\",\n            \"user_id\":\"565ec4dc624c26SAMPLE000c\",\n            \"utc_offset\":\"+01:00\",\n            \"validated\":false,\n            \"weight\":56.0\n        },\n        {\n            \"_id\":\"565febb8663SAMPLEb05c2e7\",\n            \"bmi\":22.77,\n            \"fat_percent\":null,\n            \"free_mass\":null,\n            \"height\":null,\n            \"last_updated\":\"2015-12-03T07:14:00+00:00\",\n            \"mass_weight\":null,\n            \"source\":\"fitbit\",\n            \"source_name\":\"Fitbit\",\n            \"timestamp\":\"2015-12-03T22:59:59+00:00\",\n            \"user_id\":\"55ef247fe813SAMPLE0013\",\n            \"utc_offset\":\"+01:00\",\n            \"validated\":false,\n            \"weight\":70.5\n        }\n    ]\n}","language":"json","status":200},{"language":"text","status":401,"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded"}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/weight.json","auth":"required"},"category":"56f4385b3d35720e00ba983c","createdAt":"2015-12-03T22:24:54.334Z","githubsync":"","excerpt":"**Measurements associated with a user’s weight and body mass.**\n\n###Weight URLS\n* GET /v1/organizations/:organization_id/weight\n* GET /v1/organizations/:organization_id/weight/latest\n* GET /v1/organizations/:organization_id/users/:user_id/weight\n\n**Weight Short URLS**\n* GET /v1/weight/latest(.:format)\n* GET /v1/weight(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","project":"5646482fa74cd10d00a3f014","title":"Weight","version":"56f4385b3d35720e00ba9839","childrenPages":[]}

getWeight

**Measurements associated with a user’s weight and body mass.** ###Weight URLS * GET /v1/organizations/:organization_id/weight * GET /v1/organizations/:organization_id/weight/latest * GET /v1/organizations/:organization_id/users/:user_id/weight **Weight Short URLS** * GET /v1/weight/latest(.:format) * GET /v1/weight(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the activity (required for POST requests)

weight

Double

The value of the measured quantity in kg

height

Double

The value of the measured quantity in cm

free_mass

Double

The value of the measured quantity in kg

fat_percent

Double

The value of the measured quantity (0-100 percent)

mass_weight

Double

The value of the measured quantity in kg

bmi

The value of the measured quantity

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/weight.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/weight.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/weight.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/weight/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Result Format

{
    "summary":{
        "status":200,
        "message":"Ok",
        "results":5110,
        "start_date":"2015-10-01T08:44:29+00:00",
        "end_date":"2015-12-03T08:54:27+00:00",
        "offset":0,
        "limit":200,
        "previous":null,
        "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/weight/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-10-01T08%3A44%3A29Z",
        "params":{
            "start_date":"2015-10-01T08:44:29+00:00",
            "end_date":"2015-12-03T08:54:27+00:00",
            "offset":0,
            "limit":200
        }
    },
    "weight":[
        {
            "_id":"565ffed9418SAMPLEe0622bf",
            "bmi":18.5,
            "fat_percent":null,
            "free_mass":null,
            "height":null,
            "last_updated":"2015-12-03T08:35:37+00:00",
            "mass_weight":null,
            "source":"fitbit",
            "source_name":"Fitbit",
            "timestamp":"2014-03-12T22:59:59+00:00",
            "user_id":"565ec4dc624c26SAMPLE000c",
            "utc_offset":"+01:00",
            "validated":false,
            "weight":56.0
        },
        {
            "_id":"565febb8663SAMPLEb05c2e7",
            "bmi":22.77,
            "fat_percent":null,
            "free_mass":null,
            "height":null,
            "last_updated":"2015-12-03T07:14:00+00:00",
            "mass_weight":null,
            "source":"fitbit",
            "source_name":"Fitbit",
            "timestamp":"2015-12-03T22:59:59+00:00",
            "user_id":"55ef247fe813SAMPLE0013",
            "utc_offset":"+01:00",
            "validated":false,
            "weight":70.5
        }
    ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba9869","version":"56f4385b3d35720e00ba9839","githubsync":"","order":7,"slug":"diabetes","sync_unique":"","updates":[],"project":"5646482fa74cd10d00a3f014","title":"Diabetes","__v":0,"body":"##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"2-0\": \"source\",\n    \"3-0\": \"source_name\",\n    \"4-0\": \"last_updated\",\n    \"5-0\": \"_id\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"5-1\": \"String\",\n    \"2-2\": \"The short name of the application that recorded the activity\",\n    \"3-2\": \"The display name of the application that recorded the activity\",\n    \"4-2\": \"Date and time when the measurement set was last updated\",\n    \"5-2\": \"Unique identifier of the activity (required for POST requests)\",\n    \"6-0\": \"c_peptide\",\n    \"6-1\": \"Double\",\n    \"6-2\": \"The value of the measured quantity in ng/mL\",\n    \"7-0\": \"fasting_plasma_glucose_test\",\n    \"8-0\": \"hba1c\",\n    \"9-0\": \"insulin\",\n    \"10-0\": \"oral_glucose_tolerance_test\",\n    \"7-1\": \"Double\",\n    \"8-1\": \"Double\",\n    \"9-1\": \"Double\",\n    \"10-1\": \"Double\",\n    \"7-2\": \"The value of the measured quantity in mg/dL\",\n    \"8-2\": \"The value of the measured quantity in %\",\n    \"9-2\": \"The value of the measured quantity in U\",\n    \"10-2\": \"The value of the measured quantity in mg/dL\",\n    \"11-0\": \"random_plasma_glucose_test\",\n    \"11-2\": \"The value of the measured quantity in mg/dL\",\n    \"13-0\": \"triglyceride\",\n    \"14-0\": \"blood_glucose\",\n    \"13-2\": \"The value of the measured quantity in mg/dL\",\n    \"14-2\": \"The value of the measured quantity in mg/dL\",\n    \"11-1\": \"Double\",\n    \"13-1\": \"Double\",\n    \"14-1\": \"Double\",\n    \"15-0\": \"validated\",\n    \"15-1\": \"Boolean\",\n    \"15-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\",\n    \"12-0\": \"relationship_to_meal\",\n    \"12-1\": \"string\",\n    \"12-2\": \"Displays when the reading was taken in relation to food consumption. \\nPossible Values:\\n* before: reading was taken before a meal was consumed\\n* after: reading was taken after a meal was consumed\\n* random: reading was taken at a \\\"random\\\" time in relation to a meal, meaning not immediately before or after eating.\\n* fasting: reading was taken during a fasting period\\n* null: no relationship to meal value was provided\"\n  },\n  \"cols\": 3,\n  \"rows\": 16\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/diabetes.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/diabetes.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/diabetes.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","editedParams":true,"editedParams2":true,"link_external":false,"api":{"auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/diabetes/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200","language":"http"}]},"method":"get","params":[{"name":"access_token","in":"query","_id":"566067f107e3200d006e47a1","ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string"},{"default":"","type":"string","name":"organization_id","in":"path","_id":"566067f107e3200d006e47a0","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization"},{"in":"path","_id":"566067f107e3200d006e479f","ref":"","required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string","name":"user_id"},{"name":"start_date","in":"query","_id":"566067f107e3200d006e479e","ref":"","required":false,"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00","default":"","type":"string"},{"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string","name":"end_date","in":"query","_id":"566067f107e3200d006e479d","ref":"","required":false},{"ref":"","required":false,"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":"","type":"string","name":"expanded","in":"query","_id":"566067f107e3200d006e479b"},{"type":"string","name":"source","in":"query","_id":"566067f107e3200d006e479c","ref":"","required":false,"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":""}],"results":{"codes":[{"name":"","status":200,"language":"json","code":"{\n    \"summary\":{\n        \"status\":200,\n        \"message\":\"Ok\",\n        \"results\":1980,\n        \"start_date\":\"2015-10-01T08:44:29+00:00\",\n        \"end_date\":\"2015-12-03T08:54:27+00:00\",\n        \"offset\":0,\n        \"limit\":200,\n        \"previous\":null,\n        \"next\":\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/diabetes/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=2&page=200&start_date=2015-10-01T08%3A44%3A29Z\",\n        \"params\":{\n            \"start_date\":\"2015-10-01T08:44:29+00:00\",\n            \"end_date\":\"2015-12-03T08:54:27+00:00\",\n            \"offset\":0,\n            \"limit\":200\n        }\n    },\n    \"diabetes\":[\n        {\n            \"_id\":\"5640d5e3b61822SAMPLE0d03f\",\n            \"blood_glucose\":206.0,\n            \"c_peptide\":null,\n            \"fasting_plasma_glucose_test\":null,\n            \"hba1c\":null,\n            \"insulin\":null,\n            \"last_updated\":\"2015-12-02T06:28:17+00:00\",\n            \"oral_glucose_tolerance_test\":null,\n            \"random_plasma_glucose_test\":null,\n            \"relationship_to_meal\":\"before\",\n            \"source\":\"telcare\",\n            \"source_name\":\"Telcare\",\n            \"timestamp\":\"2015-11-09T11:26:57+00:00\",\n            \"triglyceride\":null,\n            \"user_id\":\"562516c0d8ad7bSAMPLE002e\",\n            \"utc_offset\":\"+00:00\",\n            \"validated\":false\n        },\n        {\n            \"_id\":\"5638b5b3b61822SAMPLEf666\",\n            \"blood_glucose\":145.0,\n            \"c_peptide\":null,\n            \"fasting_plasma_glucose_test\":null,\n            \"hba1c\":null,\n            \"insulin\":null,\n            \"last_updated\":\"2015-12-02T06:28:17+00:00\",\n            \"oral_glucose_tolerance_test\":null,\n            \"random_plasma_glucose_test\":null,\n            \"relationship_to_meal\":\"before\",\n            \"source\":\"telcare\",\n            \"source_name\":\"Telcare\",\n            \"timestamp\":\"2015-11-03T08:06:40+00:00\",\n            \"triglyceride\":null,\n            \"user_id\":\"55e9bd4458024SAMPLE000b\",\n            \"utc_offset\":\"+00:00\",\n            \"validated\":false\n        }\n    ]\n}"},{"language":"text","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","name":"","status":401}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/diabetes.json"},"excerpt":"**Diabetes Measurements are comprised of a user’s blood glucose and hormone levels related to diabetes treatment and management.**\n\n###Diabetes URLS\n* GET /v1/organizations/:organization_id/diabetes\n* GET /v1/organizations/:organization_id/diabetes/latest\n* GET /v1/organizations/:organization_id/users/:user_id/diabetes\n\n**Diabetes Short URLS**\n* GET /v1/diabetes/latest(.:format)\n* GET /v1/diabetes(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","parentDoc":null,"type":"get","link_url":"","user":"55e87bcdc5bccb2d008a9ba4","category":"56f4385b3d35720e00ba983c","createdAt":"2015-12-04T16:53:13.332Z","hidden":false,"isReference":true,"childrenPages":[]}

getDiabetes

**Diabetes Measurements are comprised of a user’s blood glucose and hormone levels related to diabetes treatment and management.** ###Diabetes URLS * GET /v1/organizations/:organization_id/diabetes * GET /v1/organizations/:organization_id/diabetes/latest * GET /v1/organizations/:organization_id/users/:user_id/diabetes **Diabetes Short URLS** * GET /v1/diabetes/latest(.:format) * GET /v1/diabetes(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the activity (required for POST requests)

c_peptide

Double

The value of the measured quantity in ng/mL

fasting_plasma_glucose_test

Double

The value of the measured quantity in mg/dL

hba1c

Double

The value of the measured quantity in %

insulin

Double

The value of the measured quantity in U

oral_glucose_tolerance_test

Double

The value of the measured quantity in mg/dL

random_plasma_glucose_test

Double

The value of the measured quantity in mg/dL

relationship_to_meal

string

Displays when the reading was taken in relation to food consumption.
Possible Values:

  • before: reading was taken before a meal was consumed
  • after: reading was taken after a meal was consumed
  • random: reading was taken at a "random" time in relation to a meal, meaning not immediately before or after eating.
  • fasting: reading was taken during a fasting period
  • null: no relationship to meal value was provided

triglyceride

Double

The value of the measured quantity in mg/dL

blood_glucose

Double

The value of the measured quantity in mg/dL

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/diabetes.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/diabetes.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/diabetes.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/diabetes/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Result Format

{
    "summary":{
        "status":200,
        "message":"Ok",
        "results":1980,
        "start_date":"2015-10-01T08:44:29+00:00",
        "end_date":"2015-12-03T08:54:27+00:00",
        "offset":0,
        "limit":200,
        "previous":null,
        "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/diabetes/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=2&page=200&start_date=2015-10-01T08%3A44%3A29Z",
        "params":{
            "start_date":"2015-10-01T08:44:29+00:00",
            "end_date":"2015-12-03T08:54:27+00:00",
            "offset":0,
            "limit":200
        }
    },
    "diabetes":[
        {
            "_id":"5640d5e3b61822SAMPLE0d03f",
            "blood_glucose":206.0,
            "c_peptide":null,
            "fasting_plasma_glucose_test":null,
            "hba1c":null,
            "insulin":null,
            "last_updated":"2015-12-02T06:28:17+00:00",
            "oral_glucose_tolerance_test":null,
            "random_plasma_glucose_test":null,
            "relationship_to_meal":"before",
            "source":"telcare",
            "source_name":"Telcare",
            "timestamp":"2015-11-09T11:26:57+00:00",
            "triglyceride":null,
            "user_id":"562516c0d8ad7bSAMPLE002e",
            "utc_offset":"+00:00",
            "validated":false
        },
        {
            "_id":"5638b5b3b61822SAMPLEf666",
            "blood_glucose":145.0,
            "c_peptide":null,
            "fasting_plasma_glucose_test":null,
            "hba1c":null,
            "insulin":null,
            "last_updated":"2015-12-02T06:28:17+00:00",
            "oral_glucose_tolerance_test":null,
            "random_plasma_glucose_test":null,
            "relationship_to_meal":"before",
            "source":"telcare",
            "source_name":"Telcare",
            "timestamp":"2015-11-03T08:06:40+00:00",
            "triglyceride":null,
            "user_id":"55e9bd4458024SAMPLE000b",
            "utc_offset":"+00:00",
            "validated":false
        }
    ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba986a","githubsync":"","isReference":true,"order":8,"parentDoc":null,"slug":"biometric","body":"##Return Values\nThe following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields [here](https://support.validic.com/customer/portal/articles/1990057).  \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"timestamp\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"0-2\": \"Timestamp for the measurement set\",\n    \"1-0\": \"utc_offset\",\n    \"1-2\": \"Timezone information for the measurement set\",\n    \"2-0\": \"source\",\n    \"3-0\": \"source_name\",\n    \"6-0\": \"blood_calcium\",\n    \"7-0\": \"blood_chromium\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"6-1\": \"Double\",\n    \"7-1\": \"Double\",\n    \"2-2\": \"The short name of the application that recorded the activity\",\n    \"3-2\": \"The display name of the application that recorded the activity\",\n    \"6-2\": \"The value of the measured quantity in mg/dL\",\n    \"7-2\": \"The value of the measured quantity in µg/L\",\n    \"8-0\": \"blood_folic_acid\",\n    \"8-1\": \"Double\",\n    \"8-2\": \"The value of the measured quantity in ng/mL\",\n    \"9-0\": \"blood_magnesium\",\n    \"10-0\": \"blood_potassium\",\n    \"11-0\": \"blood_sodium\",\n    \"12-0\": \"blood_vitamin_b12\",\n    \"9-1\": \"Double\",\n    \"10-1\": \"Double\",\n    \"11-1\": \"Double\",\n    \"12-1\": \"Double\",\n    \"9-2\": \"The value of the measured quantity in mg/dL\",\n    \"10-2\": \"The value of the measured quantity in mEq/L\",\n    \"11-2\": \"The value of the measured quantity in mEq/L\",\n    \"12-2\": \"The value of the measured quantity in pg/mL\",\n    \"13-0\": \"blood_zinc\",\n    \"13-2\": \"The value of the measured quantity in µg/dL\",\n    \"14-0\": \"creatine_kinase\",\n    \"15-0\": \"crp\",\n    \"14-2\": \"The value of the measured quantity in U/L\",\n    \"15-2\": \"The value of the measured quantity in mg/L\",\n    \"13-1\": \"Double\",\n    \"14-1\": \"Double\",\n    \"15-1\": \"Double\",\n    \"16-0\": \"diastolic\",\n    \"17-0\": \"ferritin\",\n    \"18-0\": \"hdl\",\n    \"19-0\": \"hscrp\",\n    \"20-0\": \"il6\",\n    \"21-0\": \"ldl\",\n    \"22-0\": \"resting_heartrate\",\n    \"23-0\": \"systolic\",\n    \"24-0\": \"testosterone\",\n    \"25-0\": \"total_cholesterol\",\n    \"26-0\": \"tsh\",\n    \"27-0\": \"uric_acid\",\n    \"28-0\": \"vitamin_d\",\n    \"29-0\": \"white_cell_count\",\n    \"30-0\": \"spo2\",\n    \"31-0\": \"temperature\",\n    \"31-1\": \"Double\",\n    \"30-1\": \"Double\",\n    \"29-1\": \"Double\",\n    \"28-1\": \"Double\",\n    \"27-1\": \"Double\",\n    \"26-1\": \"Double\",\n    \"25-1\": \"Double\",\n    \"24-1\": \"Double\",\n    \"23-1\": \"Double\",\n    \"22-1\": \"Double\",\n    \"16-1\": \"Double\",\n    \"17-1\": \"Double\",\n    \"18-1\": \"Double\",\n    \"19-1\": \"Double\",\n    \"20-1\": \"Double\",\n    \"21-1\": \"Double\",\n    \"16-2\": \"The value of the measured quantity in mmHg\",\n    \"17-2\": \"The value of the measured quantity in ng/mL\",\n    \"18-2\": \"The value of the measured quantity in mg/dL\",\n    \"19-2\": \"The value of the measured quantity in mg/L\",\n    \"20-2\": \"The value of the measured quantity in pg/mL\",\n    \"21-2\": \"The value of the measured quantity in mg/dL\",\n    \"22-2\": \"The value of the measured quantity in bpm\",\n    \"23-2\": \"The value of the measured quantity in mmHg\",\n    \"24-2\": \"The value of the measured quantity in ng/dL\",\n    \"25-2\": \"The value of the measured quantity in mg/dL\",\n    \"26-2\": \"The value of the measured quantity in mIU/L\",\n    \"27-2\": \"The value of the measured quantity in mg/dL\",\n    \"28-2\": \"The value of the measured quantity in ng/mL\",\n    \"29-2\": \"The value of the measured quantity in cells/µL\",\n    \"30-2\": \"The value of the measured quantity (0 - 100%)\",\n    \"31-2\": \"The value of the measured quantity in Celsius\",\n    \"32-0\": \"validated\",\n    \"32-1\": \"Boolean\",\n    \"32-2\": \"Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user\",\n    \"4-0\": \"last_updated\",\n    \"4-1\": \"String\",\n    \"5-0\": \"_id\",\n    \"4-2\": \"Date and time when the measurement set was last updated\",\n    \"5-2\": \"Unique identifier of the activity (required for POST requests)\",\n    \"5-1\": \"String\"\n  },\n  \"cols\": 3,\n  \"rows\": 33\n}\n[/block]\n##Additional Examples\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/biometrics.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1\",\n      \"language\": \"http\",\n      \"name\": \"Filter by date and expanded\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/biometrics.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Filter by Source\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/biometrics.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00\",\n      \"language\": \"http\",\n      \"name\": \"Start Date of Activity\"\n    }\n  ]\n}\n[/block]","category":"56f4385b3d35720e00ba983c","title":"Biometrics","version":"56f4385b3d35720e00ba9839","excerpt":"**Biometric Measurements are comprised of a user’s biometric health data such as blood pressure, cholesterol, heart rate, and blood and hormone levels.\n**\n\n###Biometric URLS\n* GET /v1/organizations/:organization_id/biometrics\n* GET /v1/organizations/:organization_id/biometrics/latest\n* GET /v1/organizations/:organization_id/users/:user_id/biometrics\n* GET /v1/organizations/:organization_id/users/:user_id/biometrics/latest\n\n**Biometric Short URLS**\n* GET /v1/biometrics/latest(.:format)\n* GET /v1/biometrics(.:format) \n\n##Parameters\n**The following section displays the parameters​ used to retrieve data.**","hidden":false,"project":"5646482fa74cd10d00a3f014","sync_unique":"","api":{"params":[{"_id":"566067f107e3200d006e47a1","ref":"","in":"query","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string","name":"access_token"},{"_id":"566067f107e3200d006e47a0","ref":"","in":"path","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id"},{"_id":"566067f107e3200d006e479f","ref":"","in":"path","required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string","name":"user_id"},{"_id":"566067f107e3200d006e479e","ref":"","in":"query","required":false,"desc":"Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00","default":"","type":"string","name":"start_date"},{"_id":"566067f107e3200d006e479d","ref":"","in":"query","required":false,"desc":"Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00","default":"","type":"string","name":"end_date"},{"_id":"566067f107e3200d006e479b","ref":"","in":"query","required":false,"desc":"The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).","default":"","type":"string","name":"expanded"},{"_id":"566067f107e3200d006e479c","ref":"","in":"query","required":false,"desc":"The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.","default":"","type":"string","name":"source"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n    \"summary\":{\n        \"status\":200,\n        \"message\":\"Ok\",\n        \"results\":1900,\n        \"start_date\":\"2015-09-01T08:44:29+00:00\",\n        \"end_date\":\"2015-12-03T08:54:27+00:00\",\n        \"offset\":0,\n        \"limit\":200,\n        \"previous\":null,\n        \"next\":\"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/biometrics/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-09-01T08%3A44%3A29Z\",\n        \"params\":{\n            \"start_date\":\"2015-09-01T08:44:29+00:00\",\n            \"end_date\":\"2015-12-03T08:54:27+00:00\",\n            \"offset\":0,\n            \"limit\":200\n        }\n    },\n    \"biometrics\":[\n        {\n            \"_id\":\"564e0acd3eSAMPLE79000167\",\n            \"blood_calcium\":null,\n            \"blood_chromium\":null,\n            \"blood_folic_acid\":null,\n            \"blood_magnesium\":null,\n            \"blood_potassium\":null,\n            \"blood_sodium\":null,\n            \"blood_vitamin_b12\":null,\n            \"blood_zinc\":null,\n            \"creatine_kinase\":null,\n            \"crp\":null,\n            \"diastolic\":96.0,\n            \"ferritin\":null,\n            \"hdl\":null,\n            \"hscrp\":null,\n            \"il6\":null,\n            \"last_updated\":\"2015-11-19T17:45:49+00:00\",\n            \"ldl\":null,\n            \"resting_heartrate\":75.0,\n            \"source\":\"ihealth\",\n            \"source_name\":\"iHealth\",\n            \"spo2\":null,\n            \"systolic\":133.0,\n            \"temperature\":null,\n            \"testosterone\":null,\n            \"timestamp\":\"2015-11-19T17:45:47+00:00\",\n            \"total_cholesterol\":null,\n            \"tsh\":null,\n            \"uric_acid\":null,\n            \"user_id\":\"54b82ab898b4b1SAMPLE0009b\",\n            \"utc_offset\":\"-05:00\",\n            \"validated\":true,\n            \"vitamin_d\":null,\n            \"white_cell_count\":null\n        },\n        {\n            \"_id\":\"564e07e03e2acSAMPLE00164\",\n            \"blood_calcium\":null,\n            \"blood_chromium\":null,\n            \"blood_folic_acid\":null,\n            \"blood_magnesium\":null,\n            \"blood_potassium\":null,\n            \"blood_sodium\":null,\n            \"blood_vitamin_b12\":null,\n            \"blood_zinc\":null,\n            \"creatine_kinase\":null,\n            \"crp\":null,\n            \"diastolic\":85.0,\n            \"ferritin\":null,\n            \"hdl\":null,\n            \"hscrp\":null,\n            \"il6\":null,\n            \"last_updated\":\"2015-11-19T17:33:20+00:00\",\n            \"ldl\":null,\n            \"resting_heartrate\":69.0,\n            \"source\":\"ihealth\",\n            \"source_name\":\"iHealth\",\n            \"spo2\":null,\n            \"systolic\":123.0,\n            \"temperature\":null,\n            \"testosterone\":null,\n            \"timestamp\":\"2015-11-19T17:33:15+00:00\",\n            \"total_cholesterol\":null,\n            \"tsh\":null,\n            \"uric_acid\":null,\n            \"user_id\":\"54b82ab898b4bSAMPLE00009b\",\n            \"utc_offset\":\"-05:00\",\n            \"validated\":true,\n            \"vitamin_d\":null,\n            \"white_cell_count\":null\n        }\n    ]\n}\n","name":""},{"status":401,"language":"text","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","name":""}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/biometrics.json","auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/biometrics/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200","language":"http"}]},"method":"get"},"editedParams":true,"editedParams2":true,"link_url":"","type":"get","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","__v":2,"createdAt":"2015-12-04T17:08:49.108Z","link_external":false,"next":{"description":"","pages":[]},"childrenPages":[]}

getBiometrics

**Biometric Measurements are comprised of a user’s biometric health data such as blood pressure, cholesterol, heart rate, and blood and hormone levels. ** ###Biometric URLS * GET /v1/organizations/:organization_id/biometrics * GET /v1/organizations/:organization_id/biometrics/latest * GET /v1/organizations/:organization_id/users/:user_id/biometrics * GET /v1/organizations/:organization_id/users/:user_id/biometrics/latest **Biometric Short URLS** * GET /v1/biometrics/latest(.:format) * GET /v1/biometrics(.:format) ##Parameters **The following section displays the parameters​ used to retrieve data.**

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication
start_date:
string
Retrieve data during a specific time period. Example:start_date=2014-03-10T00:00:00+00:00
end_date:
string
Retrieve data during a specific time period. Example: end_date=2014-03-10T23:59:59+00:00
expanded:
string
The expanded filter returns all available fields for a single source. By default, expanded is set to 0 (false).
source:
string
The source filter retrieves data specific to a particular source (e.g., Fitbit, BodyMedia, etc.). This value is optional when requesting expanded data. If you request expanded data and do not define a source, we will return expanded data for all devices.

Return Values

The following values are included in a standard response. Expanded data varies by source. You can locate a complete list of expanded fields here.

Return Value
Type
Description

timestamp

String

Timestamp for the measurement set

utc_offset

String

Timezone information for the measurement set

source

String

The short name of the application that recorded the activity

source_name

String

The display name of the application that recorded the activity

last_updated

String

Date and time when the measurement set was last updated

_id

String

Unique identifier of the activity (required for POST requests)

blood_calcium

Double

The value of the measured quantity in mg/dL

blood_chromium

Double

The value of the measured quantity in µg/L

blood_folic_acid

Double

The value of the measured quantity in ng/mL

blood_magnesium

Double

The value of the measured quantity in mg/dL

blood_potassium

Double

The value of the measured quantity in mEq/L

blood_sodium

Double

The value of the measured quantity in mEq/L

blood_vitamin_b12

Double

The value of the measured quantity in pg/mL

blood_zinc

Double

The value of the measured quantity in µg/dL

creatine_kinase

Double

The value of the measured quantity in U/L

crp

Double

The value of the measured quantity in mg/L

diastolic

Double

The value of the measured quantity in mmHg

ferritin

Double

The value of the measured quantity in ng/mL

hdl

Double

The value of the measured quantity in mg/dL

hscrp

Double

The value of the measured quantity in mg/L

il6

Double

The value of the measured quantity in pg/mL

ldl

Double

The value of the measured quantity in mg/dL

resting_heartrate

Double

The value of the measured quantity in bpm

systolic

Double

The value of the measured quantity in mmHg

testosterone

Double

The value of the measured quantity in ng/dL

total_cholesterol

Double

The value of the measured quantity in mg/dL

tsh

Double

The value of the measured quantity in mIU/L

uric_acid

Double

The value of the measured quantity in mg/dL

vitamin_d

Double

The value of the measured quantity in ng/mL

white_cell_count

Double

The value of the measured quantity in cells/µL

spo2

Double

The value of the measured quantity (0 - 100%)

temperature

Double

The value of the measured quantity in Celsius

validated

Boolean

Value indicates the data you are receiving was generated using a device, opposed to being manually entered by an end user

Additional Examples

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/biometrics.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2015-09-01T00:00:00+00:00&end_date=2015-09-30T23:59:59+00:00&expanded=1
GET https://api.validic.com/v1/biometrics.json?authentication_token={USER_ACCESS_TOKEN}&source={SOURCE}
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/biometrics.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date=2014-03-10T00:00:00+00:00

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/biometrics/latest.json?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&start_date=2015-10-01T08:44:29Z&end_date=2015-12-03T08:54:27Z&limit=200

Result Format

{
    "summary":{
        "status":200,
        "message":"Ok",
        "results":1900,
        "start_date":"2015-09-01T08:44:29+00:00",
        "end_date":"2015-12-03T08:54:27+00:00",
        "offset":0,
        "limit":200,
        "previous":null,
        "next":"https://api.validic.com/v1/organizations/5400864SAMPLEd683000004/biometrics/latest?access_token=9ff1217aSAMPLE689a3e2fce700de97387920bfaabddc871604a277cb901b2&end_date=2015-12-03T08%3A54%3A27Z&expanded=0&limit=200&page=2&start_date=2015-09-01T08%3A44%3A29Z",
        "params":{
            "start_date":"2015-09-01T08:44:29+00:00",
            "end_date":"2015-12-03T08:54:27+00:00",
            "offset":0,
            "limit":200
        }
    },
    "biometrics":[
        {
            "_id":"564e0acd3eSAMPLE79000167",
            "blood_calcium":null,
            "blood_chromium":null,
            "blood_folic_acid":null,
            "blood_magnesium":null,
            "blood_potassium":null,
            "blood_sodium":null,
            "blood_vitamin_b12":null,
            "blood_zinc":null,
            "creatine_kinase":null,
            "crp":null,
            "diastolic":96.0,
            "ferritin":null,
            "hdl":null,
            "hscrp":null,
            "il6":null,
            "last_updated":"2015-11-19T17:45:49+00:00",
            "ldl":null,
            "resting_heartrate":75.0,
            "source":"ihealth",
            "source_name":"iHealth",
            "spo2":null,
            "systolic":133.0,
            "temperature":null,
            "testosterone":null,
            "timestamp":"2015-11-19T17:45:47+00:00",
            "total_cholesterol":null,
            "tsh":null,
            "uric_acid":null,
            "user_id":"54b82ab898b4b1SAMPLE0009b",
            "utc_offset":"-05:00",
            "validated":true,
            "vitamin_d":null,
            "white_cell_count":null
        },
        {
            "_id":"564e07e03e2acSAMPLE00164",
            "blood_calcium":null,
            "blood_chromium":null,
            "blood_folic_acid":null,
            "blood_magnesium":null,
            "blood_potassium":null,
            "blood_sodium":null,
            "blood_vitamin_b12":null,
            "blood_zinc":null,
            "creatine_kinase":null,
            "crp":null,
            "diastolic":85.0,
            "ferritin":null,
            "hdl":null,
            "hscrp":null,
            "il6":null,
            "last_updated":"2015-11-19T17:33:20+00:00",
            "ldl":null,
            "resting_heartrate":69.0,
            "source":"ihealth",
            "source_name":"iHealth",
            "spo2":null,
            "systolic":123.0,
            "temperature":null,
            "testosterone":null,
            "timestamp":"2015-11-19T17:33:15+00:00",
            "total_cholesterol":null,
            "tsh":null,
            "uric_acid":null,
            "user_id":"54b82ab898b4bSAMPLE00009b",
            "utc_offset":"-05:00",
            "validated":true,
            "vitamin_d":null,
            "white_cell_count":null
        }
    ]
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba986b","api":{"params":[],"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required"},"body":"The easiest way to integrate the Validic Marketplace is to simply have a link in your system which opens up a new window with the Validic Standard HTML5 Marketplace. The Validic Marketplace handles all API app connections and callbacks.\n\nTo render the Validic standard marketplace to your users, ​you will use your Organization’s ID and the User Access Token created when you provisioned the user. You will create a button or link in your system that looks like this:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ZYdbqNOVQga8Xn606IRt_connect%20button_a.png\",\n        \"connect button_a.png\",\n        \"212\",\n        \"30\",\n        \"#04acd4\",\n        \"\"\n      ],\n      \"caption\": \"\"\n    }\n  ]\n}\n[/block]\nWhen users select \"Connect Your Device\" they should be directed to:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://app.validic.com/{ORGANIZATION_ID}/{USER_ACCESS_TOKEN}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"success\",\n  \"body\": \"**For a demonstration of this functionality and rendering of the standard HTML5 Marketplace, click [here](https://app.validic.com/51aca5a06dedda916400002b/YxAiiuzDXYefBbaGtYRt).**\"\n}\n[/block]","isReference":false,"link_url":"","order":0,"slug":"standard-marketplace","title":"Standard Marketplace","category":"56f4385b3d35720e00ba983e","githubsync":"","next":{"description":"","pages":[]},"project":"5646482fa74cd10d00a3f014","user":"55e87bcdc5bccb2d008a9ba4","version":"56f4385b3d35720e00ba9839","__v":3,"parentDoc":null,"sync_unique":"","type":"basic","updates":["56673c0ff672550d0008527e","5862fbb2ac48782300480066","591a23a08b2ada0f00cfc199"],"createdAt":"2015-12-04T22:59:43.955Z","excerpt":"The Validic Marketplace is the place where users go to browse and connect health apps and devices so their data will be available to your system","hidden":false,"link_external":false,"childrenPages":[]}

Standard Marketplace

The Validic Marketplace is the place where users go to browse and connect health apps and devices so their data will be available to your system

The easiest way to integrate the Validic Marketplace is to simply have a link in your system which opens up a new window with the Validic Standard HTML5 Marketplace. The Validic Marketplace handles all API app connections and callbacks.

To render the Validic standard marketplace to your users, ​you will use your Organization’s ID and the User Access Token created when you provisioned the user. You will create a button or link in your system that looks like this:

When users select "Connect Your Device" they should be directed to:

GET https://app.validic.com/{ORGANIZATION_ID}/{USER_ACCESS_TOKEN}

For a demonstration of this functionality and rendering of the standard HTML5 Marketplace, click here.

{"_id":"56f4385b3d35720e00ba986c","link_external":false,"link_url":"","sync_unique":"","title":"Custom Marketplace","__v":1,"category":"56f4385b3d35720e00ba983e","project":"5646482fa74cd10d00a3f014","slug":"custom-marketplace","version":"56f4385b3d35720e00ba9839","body":"## Customizing Your Own App Marketplace \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"summary\\\": {\\n    \\\"status\\\": 200,\\n    \\\"message\\\": \\\"Ok\\\",\\n    \\\"results\\\": 1,\\n    \\\"start_date\\\": \\\"2015-12-06T00:00:00+00:00\\\",\\n    \\\"end_date\\\": \\\"2015-12-08T23:59:59+00:00\\\",\\n    \\\"offset\\\": 0,\\n    \\\"limit\\\": null,\\n    \\\"previous\\\": null,\\n    \\\"next\\\": null,\\n    \\\"params\\\": {\\n      \\\"start_date\\\": null,\\n      \\\"end_date\\\": null,\\n      \\\"offset\\\": 0,\\n      \\\"limit\\\": 0\\n    }\\n  },\\n  \\\"apps\\\": [\\n    {\\n      \\\"name\\\": \\\"Jawbone UP\\\",\\n      \\\"sync_url\\\": \\\"https://app.validic.com/organizations/53edef21edd242SAMPLE0048/auth/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json\\\",\\n      \\\"unsync_url\\\": \\\"https://app.validic.com/organizations/53edef21edd24SAMPLE00048/unsync/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json\\\",\\n      \\\"refresh_url\\\": \\\"https://app.validic.com/organizations/53edef21edd242SAMPLE00048/refresh/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json\\\",\\n      \\\"download_link\\\": \\\"https://jawbone.com/up/devices\\\",\\n      \\\"excerpt\\\": \\\"UP is a wristband and app that tracks how you sleep, move and eat.\\\",\\n      \\\"extra_excerpt\\\": \\\"UP was designed to fit seamlessly in people's lives. Real life. It's a thoughtful combination of engineering and design, custom-made for how we live. UP is both flexible and strong. Sometimes UP needs to slide smoothly under sleeves or bend to accommodate an active lifestyle. Other times it has to be strong enough to stand up to a snowball fight without a problem (or more likely, a few thousand showers). Day and night, UP is right there with you.\\\",\\n      \\\"subname\\\": \\\"jawbone_up\\\",\\n      \\\"kind\\\": [\\n        \\\"Routine\\\",\\n        \\\"Fitness\\\",\\n        \\\"Nutrition\\\",\\n        \\\"Sleep\\\",\\n        \\\"Weight\\\"\\n      ],\\n      \\\"logo_url\\\": \\\"/assets/appicons/jawbone_up-icon.png\\\",\\n      \\\"platform_types\\\": [\\n        \\\"Android\\\",\\n        \\\"iOS\\\",\\n        \\\"Windows Phone\\\"\\n      ],\\n      \\\"synced\\\": true,\\n      \\\"last_sync\\\": \\\"2015-12-07T19:03:27+00:00\\\"\\n    }\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Apps.JSON\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\nTo deploy the marketplace, you will need your Organization’s ID, your Organization’s Access Token, and the User Access Token created when you provisioned the user.\n\nThe Validic App Marketplace is specific to each user, with a listing of all apps and its appropriate sync, refresh, and unsync URLs. \n*To sync an application, simply use the sync URL for the app which will bring the user to the app’s authorization page. \n*To unsync the app, simply pass on the unsync url for the app. \n*The refresh URL acts as a trigger to fetch on demand that user’s app data from the source.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"The unsync and refresh URLs are only available once the app has been synced.\",\n  \"title\": \"Note\"\n}\n[/block]\n**Before you begin**, we highly suggest you watch the following [video](https://vimeo.com/121923684). \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/apps.json?authentication_token={USER_ACCESS_TOKEN}&access_token={ORGANIZATION_ACCESS_TOKEN}\",\n      \"language\": \"text\",\n      \"name\": \"Example\"\n    }\n  ]\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"name\",\n    \"1-0\": \"sync_url\",\n    \"2-0\": \"unsync_url\",\n    \"3-0\": \"refresh_url\",\n    \"4-0\": \"download_link\",\n    \"5-0\": \"excerpt\",\n    \"6-0\": \"extra_excerpt\",\n    \"7-0\": \"subname\",\n    \"8-0\": \"kind\",\n    \"9-0\": \"logo_url\",\n    \"10-0\": \"platform_types\",\n    \"11-0\": \"synced\",\n    \"12-0\": \"last_synced\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"5-1\": \"String\",\n    \"6-1\": \"String\",\n    \"7-1\": \"String\",\n    \"9-1\": \"String\",\n    \"12-1\": \"String\",\n    \"11-1\": \"Boolean\",\n    \"10-1\": \"Array\",\n    \"8-1\": \"Array\",\n    \"0-2\": \"The display name for the app\",\n    \"1-2\": \"URI for redirecting the user to the app’s authorization page to sync the app\",\n    \"2-2\": \"URI for unsyncing the app\",\n    \"3-2\": \"URI for refreshing the user’s app data\",\n    \"4-2\": \"URI for downloading the app software\",\n    \"5-2\": \"Short description of the app\",\n    \"6-2\": \"Long description of the app\",\n    \"7-2\": \"Source filter name for the app\",\n    \"8-2\": \"Shows data objects supported by application\",\n    \"9-2\": \"Relative path of the image icon for the app. Prepend with https://app.validic.com\",\n    \"10-2\": \"Platforms where app is available\",\n    \"11-2\": \"Synced status of the app\",\n    \"12-2\": \"Timestamp when the app was last synced by user\"\n  },\n  \"cols\": 3,\n  \"rows\": 13\n}\n[/block]\n\n## Controlling Sync, Refresh and Unsync redirect behavior \n\nFor custom marketplace implementations, additional control over the behavior of sync, unsync, or refresh call may be added through a redirect_uri parameter\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://app.validic.com/organizations/{ORGANIZATION_ID}/auth/{SOURCE}?user_token={USER_ACCESS_TOKEN}&format_redirect=json&redirect_uri={URI}\\n\",\n      \"language\": \"http\",\n      \"name\": \"Example\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://app.validic.com/organizations/5176906c6deddac02c000001/auth/fitbit?user_token=d18397e3845e8b66f7453dc55ea3fc445d1b879a6f96ebe7b243badabce08c98&format_redirect=json&redirect_uri=http://google.co\",\n      \"language\": \"text\",\n      \"name\": \"Redirect_URI Example\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\nThis will redirect the user the specified resource after a successful request.\n\n##Additional Display of Supported Devices\n\nYou may additionally display supported devices for each app by adding an expanded filter and setting it to 1.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/apps.json?authentication_token={USER_ACCESS_TOKEN}&access_token={ORGANIZATION_ACCESS_TOKEN}&expanded=1\",\n      \"language\": \"text\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"summary\\\": {\\n    \\\"status\\\": 200,\\n    \\\"message\\\": \\\"Ok\\\",\\n    \\\"results\\\": 1,\\n    \\\"start_date\\\": \\\"2015-12-06T00:00:00+00:00\\\",\\n    \\\"end_date\\\": \\\"2015-12-08T23:59:59+00:00\\\",\\n    \\\"offset\\\": 0,\\n    \\\"limit\\\": null,\\n    \\\"previous\\\": null,\\n    \\\"next\\\": null,\\n    \\\"params\\\": {\\n      \\\"start_date\\\": null,\\n      \\\"end_date\\\": null,\\n      \\\"offset\\\": 0,\\n      \\\"limit\\\": 0\\n    }\\n  },\\n  \\\"apps\\\": [\\n    {\\n      \\\"name\\\": \\\"Jawbone UP\\\",\\n      \\\"sync_url\\\": \\\"https://app.validic.com/organizations/53edef21edd242bSAMPLE0048/auth/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json\\\",\\n      \\\"unsync_url\\\": \\\"https://app.validic.com/organizations/53edef21edd242bSAMPLE0048/unsync/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json\\\",\\n      \\\"refresh_url\\\": \\\"https://app.validic.com/organizations/53edef21edd242bSAMPLE0048/refresh/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json\\\",\\n      \\\"download_link\\\": \\\"https://jawbone.com/up/devices\\\",\\n      \\\"excerpt\\\": \\\"UP is a wristband and app that tracks how you sleep, move and eat.\\\",\\n      \\\"extra_excerpt\\\": \\\"UP was designed to fit seamlessly in people's lives. Real life. It's a thoughtful combination of engineering and design, custom-made for how we live. UP is both flexible and strong. Sometimes UP needs to slide smoothly under sleeves or bend to accommodate an active lifestyle. Other times it has to be strong enough to stand up to a snowball fight without a problem (or more likely, a few thousand showers). Day and night, UP is right there with you.\\\",\\n      \\\"subname\\\": \\\"jawbone_up\\\",\\n      \\\"kind\\\": [\\n        \\\"Routine\\\",\\n        \\\"Fitness\\\",\\n        \\\"Nutrition\\\",\\n        \\\"Sleep\\\",\\n        \\\"Weight\\\"\\n      ],\\n      \\\"logo_url\\\": \\\"/assets/appicons/jawbone_up-icon.png\\\",\\n      \\\"platform_types\\\": [\\n        \\\"Android\\\",\\n        \\\"iOS\\\",\\n        \\\"Windows Phone\\\"\\n      ],\\n      \\\"synced\\\": true,\\n      \\\"last_sync\\\": \\\"2015-12-07T19:03:27+00:00\\\",\\n      \\\"items_supported\\\": [\\n        {\\n          \\\"name\\\": \\\"Jawbone UP\\\",\\n          \\\"type\\\": \\\"Wearable\\\",\\n          \\\"description\\\": \\\"The UP wristband plugs into your phone via the Simple Sync connector to help you learn how you sleep, move and eat. UP provides unique insights to help you live each day better than the last.\\\",\\n          \\\"excerpt\\\": \\\"Device to help you learn how you sleep, move and eat.\\\",\\n          \\\"resource_url\\\": \\\"https://jawbone.com/up\\\",\\n          \\\"data_objects\\\": [\\n            \\\"fitness\\\",\\n            \\\"nutrition\\\",\\n            \\\"sleep\\\",\\n            \\\"biometrics\\\"\\n          ],\\n          \\\"kind\\\": [\\n            \\\"Routine\\\",\\n            \\\"Sleep\\\"\\n          ],\\n          \\\"image_url\\\": \\\"https://s3.amazonaws.com/assets.validic.com/assets/Jawbone_UP.png\\\",\\n          \\\"discontinued\\\": false\\n        }\\n      ]\\n    }\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Apps.JSON Expanded\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"name\",\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-1\": \"String\",\n    \"1-0\": \"type\",\n    \"1-1\": \"String\",\n    \"2-0\": \"description\",\n    \"2-1\": \"String\",\n    \"3-0\": \"excerpt\",\n    \"3-1\": \"String\",\n    \"4-0\": \"resource_url\",\n    \"4-1\": \"String\",\n    \"5-0\": \"data_objects\",\n    \"5-1\": \"Array\",\n    \"6-0\": \"kind\",\n    \"6-1\": \"Array\",\n    \"7-0\": \"image_url\",\n    \"7-1\": \"String\",\n    \"8-0\": \"discontinued\",\n    \"8-1\": \"Boolean\",\n    \"0-2\": \"The display name for the device\",\n    \"1-2\": \"Type of device\",\n    \"2-2\": \"Long description for the device\",\n    \"3-2\": \"Short description for the device\",\n    \"4-2\": \"URI for vendor device information\",\n    \"5-2\": \"API Data Objects supported by device\",\n    \"6-2\": \"Shows Data Object supported by this device\",\n    \"7-2\": \"URI for the image icon for the device\",\n    \"8-2\": \"Market availability status of the device\"\n  },\n  \"cols\": 3,\n  \"rows\": 9\n}\n[/block]","excerpt":"Our Enterprise customers may also design and create a custom implementation of your own Validic App Marketplace.","githubsync":"","isReference":false,"type":"basic","user":"55e87bcdc5bccb2d008a9ba4","api":{"auth":"required","params":[],"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"status":400,"name":"","code":"{}","language":"json"}]},"settings":""},"hidden":false,"order":1,"parentDoc":null,"updates":["566852e506039e0d00c4ecae","5761ad78aa540f3600bfed8f"],"createdAt":"2015-12-04T23:02:55.266Z","childrenPages":[]}

Custom Marketplace

Our Enterprise customers may also design and create a custom implementation of your own Validic App Marketplace.

Customizing Your Own App Marketplace

To deploy the marketplace, you will need your Organization’s ID, your Organization’s Access Token, and the User Access Token created when you provisioned the user.

The Validic App Marketplace is specific to each user, with a listing of all apps and its appropriate sync, refresh, and unsync URLs.
To sync an application, simply use the sync URL for the app which will bring the user to the app’s authorization page. To unsync the app, simply pass on the unsync url for the app.
*The refresh URL acts as a trigger to fetch on demand that user’s app data from the source.

Note

The unsync and refresh URLs are only available once the app has been synced.

Before you begin, we highly suggest you watch the following video.

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/apps.json?authentication_token={USER_ACCESS_TOKEN}&access_token={ORGANIZATION_ACCESS_TOKEN}
Return Value
Type
Description

name

String

The display name for the app

sync_url

String

URI for redirecting the user to the app’s authorization page to sync the app

unsync_url

String

URI for unsyncing the app

refresh_url

String

URI for refreshing the user’s app data

download_link

String

URI for downloading the app software

excerpt

String

Short description of the app

extra_excerpt

String

Long description of the app

subname

String

Source filter name for the app

kind

Array

Shows data objects supported by application

logo_url

String

Relative path of the image icon for the app. Prepend with https://app.validic.com

platform_types

Array

Platforms where app is available

synced

Boolean

Synced status of the app

last_synced

String

Timestamp when the app was last synced by user

Controlling Sync, Refresh and Unsync redirect behavior

For custom marketplace implementations, additional control over the behavior of sync, unsync, or refresh call may be added through a redirect_uri parameter

GET https://app.validic.com/organizations/{ORGANIZATION_ID}/auth/{SOURCE}?user_token={USER_ACCESS_TOKEN}&format_redirect=json&redirect_uri={URI}

This will redirect the user the specified resource after a successful request.

Additional Display of Supported Devices

You may additionally display supported devices for each app by adding an expanded filter and setting it to 1.

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/apps.json?authentication_token={USER_ACCESS_TOKEN}&access_token={ORGANIZATION_ACCESS_TOKEN}&expanded=1
Return Value
Type
Description

name

String

The display name for the device

type

String

Type of device

description

String

Long description for the device

excerpt

String

Short description for the device

resource_url

String

URI for vendor device information

data_objects

Array

API Data Objects supported by device

kind

Array

Shows Data Object supported by this device

image_url

String

URI for the image icon for the device

discontinued

Boolean

Market availability status of the device

{
  "summary": {
    "status": 200,
    "message": "Ok",
    "results": 1,
    "start_date": "2015-12-06T00:00:00+00:00",
    "end_date": "2015-12-08T23:59:59+00:00",
    "offset": 0,
    "limit": null,
    "previous": null,
    "next": null,
    "params": {
      "start_date": null,
      "end_date": null,
      "offset": 0,
      "limit": 0
    }
  },
  "apps": [
    {
      "name": "Jawbone UP",
      "sync_url": "https://app.validic.com/organizations/53edef21edd242SAMPLE0048/auth/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json",
      "unsync_url": "https://app.validic.com/organizations/53edef21edd24SAMPLE00048/unsync/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json",
      "refresh_url": "https://app.validic.com/organizations/53edef21edd242SAMPLE00048/refresh/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json",
      "download_link": "https://jawbone.com/up/devices",
      "excerpt": "UP is a wristband and app that tracks how you sleep, move and eat.",
      "extra_excerpt": "UP was designed to fit seamlessly in people's lives. Real life. It's a thoughtful combination of engineering and design, custom-made for how we live. UP is both flexible and strong. Sometimes UP needs to slide smoothly under sleeves or bend to accommodate an active lifestyle. Other times it has to be strong enough to stand up to a snowball fight without a problem (or more likely, a few thousand showers). Day and night, UP is right there with you.",
      "subname": "jawbone_up",
      "kind": [
        "Routine",
        "Fitness",
        "Nutrition",
        "Sleep",
        "Weight"
      ],
      "logo_url": "/assets/appicons/jawbone_up-icon.png",
      "platform_types": [
        "Android",
        "iOS",
        "Windows Phone"
      ],
      "synced": true,
      "last_sync": "2015-12-07T19:03:27+00:00"
    }
  ]
}
GET https://app.validic.com/organizations/5176906c6deddac02c000001/auth/fitbit?user_token=d18397e3845e8b66f7453dc55ea3fc445d1b879a6f96ebe7b243badabce08c98&format_redirect=json&redirect_uri=http://google.co
{
  "summary": {
    "status": 200,
    "message": "Ok",
    "results": 1,
    "start_date": "2015-12-06T00:00:00+00:00",
    "end_date": "2015-12-08T23:59:59+00:00",
    "offset": 0,
    "limit": null,
    "previous": null,
    "next": null,
    "params": {
      "start_date": null,
      "end_date": null,
      "offset": 0,
      "limit": 0
    }
  },
  "apps": [
    {
      "name": "Jawbone UP",
      "sync_url": "https://app.validic.com/organizations/53edef21edd242bSAMPLE0048/auth/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json",
      "unsync_url": "https://app.validic.com/organizations/53edef21edd242bSAMPLE0048/unsync/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json",
      "refresh_url": "https://app.validic.com/organizations/53edef21edd242bSAMPLE0048/refresh/jawbone_up?user_token=DhQMRhSosMXn7tL_SvnS&format_redirect=json",
      "download_link": "https://jawbone.com/up/devices",
      "excerpt": "UP is a wristband and app that tracks how you sleep, move and eat.",
      "extra_excerpt": "UP was designed to fit seamlessly in people's lives. Real life. It's a thoughtful combination of engineering and design, custom-made for how we live. UP is both flexible and strong. Sometimes UP needs to slide smoothly under sleeves or bend to accommodate an active lifestyle. Other times it has to be strong enough to stand up to a snowball fight without a problem (or more likely, a few thousand showers). Day and night, UP is right there with you.",
      "subname": "jawbone_up",
      "kind": [
        "Routine",
        "Fitness",
        "Nutrition",
        "Sleep",
        "Weight"
      ],
      "logo_url": "/assets/appicons/jawbone_up-icon.png",
      "platform_types": [
        "Android",
        "iOS",
        "Windows Phone"
      ],
      "synced": true,
      "last_sync": "2015-12-07T19:03:27+00:00",
      "items_supported": [
        {
          "name": "Jawbone UP",
          "type": "Wearable",
          "description": "The UP wristband plugs into your phone via the Simple Sync connector to help you learn how you sleep, move and eat. UP provides unique insights to help you live each day better than the last.",
          "excerpt": "Device to help you learn how you sleep, move and eat.",
          "resource_url": "https://jawbone.com/up",
          "data_objects": [
            "fitness",
            "nutrition",
            "sleep",
            "biometrics"
          ],
          "kind": [
            "Routine",
            "Sleep"
          ],
          "image_url": "https://s3.amazonaws.com/assets.validic.com/assets/Jawbone_UP.png",
          "discontinued": false
        }
      ]
    }
  ]
}
{"_id":"56f4385b3d35720e00ba986d","link_url":"","order":2,"title":"Granting Access","__v":0,"api":{"params":[],"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"language":"json","status":400,"name":"","code":"{}"}]},"settings":"","auth":"required"},"body":"Once your users choose to sync a device in the Validic App Marketplace they will be taken through an authentication process. This is the second of two ID exchange mechanisms or handshakes, that enables your end user data to remain de-identified in the Validic system and complies with HIPAA and Safe Harbor certification standards. An example of the user experience workflow can be followed below.\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"1. Choose to Sync a Device\"\n}\n[/block]\nYour user visits the application marketplace and selects a service to sync:\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/zqU7ez2T7iJinFDwmXp1_marketplaceB.png\",\n        \"marketplaceB.png\",\n        \"720\",\n        \"341\",\n        \"#497788\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"2. Sign In\"\n}\n[/block]\nOnce a user has selected which application they'd like to sync, they must sign in to their account. If they do not have an account, they may be prompted to create one. \n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/d4jbMjKyQAutRsNgp4kx_h3ptvMGFTZ6vSZ4orAVZ_7b20423b244abe24f937686812d87d38.png\",\n        \"h3ptvMGFTZ6vSZ4orAVZ_7b20423b244abe24f937686812d87d38.png\",\n        \"424\",\n        \"269\",\n        \"#7a5645\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"3. Authorize\"\n}\n[/block]\nLastly, the user must grant your organization permission to use their data:\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/lmJKLzjRRymQUFuy1ZK4_HIa4Y4wKRA2uzStng2pc_06d87e5d3fb07fc63a2177641208d6e5.png\",\n        \"HIa4Y4wKRA2uzStng2pc_06d87e5d3fb07fc63a2177641208d6e5.png\",\n        \"379\",\n        \"377\",\n        \"#1b3959\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Notes\"\n}\n[/block]\n  * Validic will apply for credentials and branding on your behalf during the implementation process so that your users have a consistent and cohesive user experience while Validic operates in the background unbeknownst to your end user. \n  * User is redirected to the Validic Standard HTML5 App Marketplace or our enterprise customers deploying the custom marketplace may choose to redirect their end user to another location within their application:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/sHAzDS2USgS6tZQJlx6S_2sv0MCgDTGScXBjYQsZE_55659e7e97e3c8d4495bdaa7b72369d2.png\",\n        \"2sv0MCgDTGScXBjYQsZE_55659e7e97e3c8d4495bdaa7b72369d2.png\",\n        \"898\",\n        \"34\",\n        \"#719493\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n  * You may also walk yourself through a live demo of this process via the Validic ACME marketplace by clicking [here](https://app.validic.com/51aca5a06dedda916400002b/Czmq5u8mjtG3YAFuVNPS).","createdAt":"2015-12-04T23:05:01.282Z","excerpt":"","slug":"authenticate","sync_unique":"","type":"basic","version":"56f4385b3d35720e00ba9839","link_external":false,"parentDoc":null,"category":"56f4385b3d35720e00ba983e","hidden":false,"isReference":false,"project":"5646482fa74cd10d00a3f014","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","githubsync":"","childrenPages":[]}

Granting Access


Once your users choose to sync a device in the Validic App Marketplace they will be taken through an authentication process. This is the second of two ID exchange mechanisms or handshakes, that enables your end user data to remain de-identified in the Validic system and complies with HIPAA and Safe Harbor certification standards. An example of the user experience workflow can be followed below.

1. Choose to Sync a Device

Your user visits the application marketplace and selects a service to sync:

2. Sign In

Once a user has selected which application they'd like to sync, they must sign in to their account. If they do not have an account, they may be prompted to create one.

3. Authorize

Lastly, the user must grant your organization permission to use their data:

Notes

  • Validic will apply for credentials and branding on your behalf during the implementation process so that your users have a consistent and cohesive user experience while Validic operates in the background unbeknownst to your end user.
  • User is redirected to the Validic Standard HTML5 App Marketplace or our enterprise customers deploying the custom marketplace may choose to redirect their end user to another location within their application:
  • You may also walk yourself through a live demo of this process via the Validic ACME marketplace by clicking here.
{"_id":"56f4385b3d35720e00ba9858","link_url":"","user":"55e87bcdc5bccb2d008a9ba4","version":"56f4385b3d35720e00ba9839","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"language":"json","status":400,"name":"","code":"{}"}]},"settings":"","auth":"required","params":[],"url":""},"githubsync":"","hidden":false,"isReference":true,"updates":[],"link_external":false,"parentDoc":null,"slug":"working-with-users","project":"5646482fa74cd10d00a3f014","sync_unique":"","type":"basic","body":"Once you have provisioned users, you may need tools to manage those users. The Validic API allows you to refresh tokens, update, suspend or delete your users. The following section will review the available tools to manage your users. ​","category":"56f4385b3d35720e00ba983d","createdAt":"2015-12-04T22:06:42.817Z","order":0,"__v":0,"excerpt":"","title":"Working With Users","childrenPages":[]}

Working With Users


Once you have provisioned users, you may need tools to manage those users. The Validic API allows you to refresh tokens, update, suspend or delete your users. The following section will review the available tools to manage your users. ​

{"_id":"56f4385b3d35720e00ba9859","link_url":"","project":"5646482fa74cd10d00a3f014","title":"User Provisioning","__v":1,"api":{"auth":"required","examples":{"codes":[]},"method":"post","params":[{"required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id","in":"path","_id":"567ac6897b575f0d006ae2c3","ref":""},{"default":"","type":"string","name":"uid","in":"body","_id":"567ac6897b575f0d006ae2c2","ref":"","required":true,"desc":"Unique Identifier used to identify the customer in your system. NO IDENTFYING INFORMATION SHOULD BE USED"},{"in":"body","_id":"567ac6897b575f0d006ae2c1","ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string","name":"access_token"}],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users.json"},"body":"[block:textarea]\n{\n  \"text\": \"## Request\",\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"language\": \"http\",\n      \"code\": \"-H 'Content-Type: application/json'\\n{\\n\\\"user\\\": {\\n\\\"uid\\\": \\\":uid\\\"\\n    },\\n  \\\"access_token\\\": \\\"[[app:key]]\\\"\\n}\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:textarea]\n{\n  \"text\": \"## Results\",\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"status\": 200,\n      \"language\": \"json\",\n      \"code\": \"{  \\n   \\\"code\\\":201,\\n   \\\"message\\\":\\\"Ok\\\",\\n   \\\"user\\\":{  \\n      \\\"_id\\\":\\\"51552cd7fdeSAMPLE00017\\\",\\n      \\\"uid\\\":\\\"123467890\\\",\\n      \\\"access_token\\\":\\\"d18397e3845e8b66SAMPLEea3fc445d1b879aSAMPLE7b243badabce08c98\\\",\\n      \\\"profile\\\":null\\n   }\\n}\",\n      \"name\": 200\n    },\n    {\n      \"status\": 400,\n      \"language\": \"json\",\n      \"code\": \"{}\",\n      \"name\": 400\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json\",\n      \"language\": \"http\",\n      \"name\": \"Example\"\n    }\n  ]\n}\n[/block]\nThe following values are found in the response payload.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"_id (Validic User ID)\",\n    \"1-0\": \"uid (You Unique ID)\",\n    \"2-0\": \"access_token (User Authentication Token)\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"0-2\": \"Used to identify a user in Validic and used to deploy the Application Marketplace\",\n    \"1-2\": \"Used to identify a user in your system\",\n    \"2-2\": \"You users access token which is used to deploy the Application Marketplace\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"body\": \"It is imperative to keep a record of the Validic User ID. You will use this User ID to identify your user within Validic.\",\n  \"title\": \"Validic User ID and User Authentication Token\"\n}\n[/block]\n\n##Advanced Provisioning \nAs part of the provisioning process, you have the option to provide additional \"profile\" data about that user. These \"profile\" values are optional and are not required to create a user. \n\nHere is an example of a POST used to add additional data to a user profile. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"https://api.validic.com/v1/organizations/55f6dd493765310SAMPLE088/users.json\\n\\n{\\n   \\\"user\\\": {\\n     \\\"uid\\\": \\\"BS75\\\",\\n     \\\"profile\\\": {\\n      \\\"gender\\\": \\\"M\\\",\\n      \\\"location\\\": \\\"NC\\\",\\n      \\\"birth_year\\\": \\\"1973\\\",\\n      \\\"height\\\": 167.5,\\n      \\\"weight\\\": 83.9146\\n     }\\n   },\\n \\\"access_token\\\": \\\"a86540dfb5d78SAMPLE97ba13d3b99476eb073f1SAMPLE28eb6ef771bfff06d9\\\"\\n }\",\n      \"language\": \"http\",\n      \"name\": \"Sample Request\"\n    }\n  ]\n}\n[/block]\nValidic would respond:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"code\\\":201,\\n   \\\"message\\\":\\\"Ok\\\",\\n   \\\"user\\\":{  \\n      \\\"_id\\\":\\\"5669cb32369dcdSAMPLE00049\\\",\\n      \\\"uid\\\":\\\"BS 75\\\",\\n      \\\"access_token\\\":\\\"wmBBVDfSAMPLE85eNFW\\\",\\n      \\\"profile\\\":{  \\n         \\\"gender\\\":\\\"M\\\",\\n         \\\"height\\\":167.5,\\n         \\\"location\\\":\\\"NC\\\",\\n         \\\"weight\\\":83.9146,\\n         \\\"birth_year\\\":\\\"1973\\\"\\n      }\\n   }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Sample Response\"\n    }\n  ]\n}\n[/block]\n#Request Parameters\nThe following table shows the possible parameters that can be used to create a user and, optionally, their profile. \n\n##Required Parameters\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parameter Name\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Required\",\n    \"h-3\": \"Example\",\n    \"h-4\": \"Description\",\n    \"0-0\": \"organization_id\",\n    \"1-0\": \"uid\",\n    \"2-0\": \"access_token\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"0-2\": \"Yes\",\n    \"1-2\": \"Yes\",\n    \"2-2\": \"Yes\",\n    \"0-3\": \"55f6dd49376SAMPLE000088\",\n    \"1-3\": \"YourIDNumber\",\n    \"0-4\": \"Credentials provided by Validic which identifies your unique organization\",\n    \"1-4\": \"Unique Identifier used to identify the customer in your system. NO IDENTFYING INFORMATION SHOULD BE USED\",\n    \"2-4\": \"Unique access token which must be passed for authentication\"\n  },\n  \"cols\": 5,\n  \"rows\": 3\n}\n[/block]\n##Optional Parameters ​\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Note\",\n  \"body\": \"These values are not required or populated by Validic. When you populate these values we will store your data and return those values when requested.\"\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parameter Name\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Required\",\n    \"h-3\": \"Example\",\n    \"h-4\": \"Description\",\n    \"0-0\": \"gender\",\n    \"0-3\": \"F\",\n    \"0-4\": \"Gender of user\",\n    \"1-0\": \"location\",\n    \"2-0\": \"country\",\n    \"3-0\": \"birth_year\",\n    \"4-0\": \"height\",\n    \"5-0\": \"weight\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"3-1\": \"Double\",\n    \"4-1\": \"Double\",\n    \"5-1\": \"Double\",\n    \"0-2\": \"No\",\n    \"1-2\": \"No\",\n    \"2-2\": \"No\",\n    \"3-2\": \"No\",\n    \"4-2\": \"No\",\n    \"5-2\": \"No\",\n    \"1-3\": \"NC\",\n    \"2-3\": \"United States\",\n    \"3-3\": \"1976\",\n    \"4-3\": \"167.5\",\n    \"5-3\": \"83.9146\",\n    \"1-4\": \"2-letter State abbreviation in United States, postal code or City, State for other countries\",\n    \"2-4\": \"The user’s Country of residence (e.g., “United States,” “Canada,” etc.)\",\n    \"3-4\": \"Year user was born\",\n    \"4-4\": \"User’s height in cm\",\n    \"5-4\": \"User’s weight in kg\"\n  },\n  \"cols\": 5,\n  \"rows\": 6\n}\n[/block]\n#Return Values\nThe following values are found in the response payload.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"_id (Validic User ID)\",\n    \"1-0\": \"uid (Your unique User ID)\",\n    \"2-0\": \"access_token (User Authentication Token)\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"0-2\": \"Used to identify a user in Validic and used to deploy the Application Marketplace\",\n    \"1-2\": \"Used to identify a user in your system\",\n    \"2-2\": \"Your user's access token which is used to deploy the Application Marketplace\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]","hidden":false,"version":"56f4385b3d35720e00ba9839","isReference":true,"sync_unique":"","type":"post","editedParams2":true,"order":1,"updates":["56dda471fb6a580e00fb3499","57853efefd4ee30e0007a63c"],"link_external":false,"parentDoc":null,"slug":"user-provisioning","category":"56f4385b3d35720e00ba983d","createdAt":"2015-12-23T16:06:33.704Z","editedParams":true,"excerpt":"The following example demonstrates how to create a user profile and exchange your User ID (UID) for a Validic ID (_ID). \n\n#Parameters\nThe following table displays the parameters​ used to retrieve","githubsync":"","user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

postUser Provisioning

The following example demonstrates how to create a user profile and exchange your User ID (UID) for a Validic ID (_ID). #Parameters The following table displays the parameters​ used to retrieve

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization

Body Params

uid:
required
string
Unique Identifier used to identify the customer in your system. NO IDENTFYING INFORMATION SHOULD BE USED
access_token:
required
string
Unique access token which must be passed for authentication
POST https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json

The following values are found in the response payload.

Return Value
Type
Description

_id (Validic User ID)

String

Used to identify a user in Validic and used to deploy the Application Marketplace

uid (You Unique ID)

String

Used to identify a user in your system

access_token (User Authentication Token)

String

You users access token which is used to deploy the Application Marketplace

Validic User ID and User Authentication Token

It is imperative to keep a record of the Validic User ID. You will use this User ID to identify your user within Validic.

Advanced Provisioning

As part of the provisioning process, you have the option to provide additional "profile" data about that user. These "profile" values are optional and are not required to create a user.

Here is an example of a POST used to add additional data to a user profile.

https://api.validic.com/v1/organizations/55f6dd493765310SAMPLE088/users.json

{
   "user": {
     "uid": "BS75",
     "profile": {
      "gender": "M",
      "location": "NC",
      "birth_year": "1973",
      "height": 167.5,
      "weight": 83.9146
     }
   },
 "access_token": "a86540dfb5d78SAMPLE97ba13d3b99476eb073f1SAMPLE28eb6ef771bfff06d9"
 }

Validic would respond:

{  
   "code":201,
   "message":"Ok",
   "user":{  
      "_id":"5669cb32369dcdSAMPLE00049",
      "uid":"BS 75",
      "access_token":"wmBBVDfSAMPLE85eNFW",
      "profile":{  
         "gender":"M",
         "height":167.5,
         "location":"NC",
         "weight":83.9146,
         "birth_year":"1973"
      }
   }
}

Request Parameters

The following table shows the possible parameters that can be used to create a user and, optionally, their profile.

Required Parameters

Parameter Name
Type
Required
Example
Description

organization_id

String

Yes

55f6dd49376SAMPLE000088

Credentials provided by Validic which identifies your unique organization

uid

String

Yes

YourIDNumber

Unique Identifier used to identify the customer in your system. NO IDENTFYING INFORMATION SHOULD BE USED

access_token

String

Yes

Unique access token which must be passed for authentication

Optional Parameters ​

Note

These values are not required or populated by Validic. When you populate these values we will store your data and return those values when requested.

Parameter Name
Type
Required
Example
Description

gender

String

No

F

Gender of user

location

String

No

NC

2-letter State abbreviation in United States, postal code or City, State for other countries

country

String

No

United States

The user’s Country of residence (e.g., “United States,” “Canada,” etc.)

birth_year

Double

No

1976

Year user was born

height

Double

No

167.5

User’s height in cm

weight

Double

No

83.9146

User’s weight in kg

Return Values

The following values are found in the response payload.

Return Value
Type
Description

_id (Validic User ID)

String

Used to identify a user in Validic and used to deploy the Application Marketplace

uid (Your unique User ID)

String

Used to identify a user in your system

access_token (User Authentication Token)

String

Your user's access token which is used to deploy the Application Marketplace


User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



Request

-H 'Content-Type: application/json'
{
"user": {
"uid": ":uid"
    },
  "access_token": "[[app:key]]"
}

Results

{  
   "code":201,
   "message":"Ok",
   "user":{  
      "_id":"51552cd7fdeSAMPLE00017",
      "uid":"123467890",
      "access_token":"d18397e3845e8b66SAMPLEea3fc445d1b879aSAMPLE7b243badabce08c98",
      "profile":null
   }
}
{}
{"_id":"56f4385b3d35720e00ba985a","link_url":"","__v":1,"body":"The following values are found in the response.\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"_id (Validic User ID)\",\n    \"0-1\": \"String\",\n    \"0-2\": \"Used to identify a user in Validic and used to deploy the Application Marketplace\",\n    \"1-0\": \"uid (Your Unique ID)\",\n    \"1-1\": \"String\",\n    \"1-2\": \"Used to identify a user in your system\",\n    \"2-0\": \"access_token (User Authentication Token)\",\n    \"2-1\": \"String\",\n    \"2-2\": \"Your user's unique access token which is used to deploy the Application Marketplace\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]","category":"56f4385b3d35720e00ba983d","editedParams2":true,"excerpt":"If you need to reset a user’s access token, you may make a GET request call for a new user access token.","isReference":true,"next":{"description":"","pages":[]},"sync_unique":"","githubsync":"","link_external":false,"order":2,"title":"Refreshing User Token","type":"get","version":"56f4385b3d35720e00ba9839","editedParams":true,"project":"5646482fa74cd10d00a3f014","api":{"params":[{"ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id","in":"path","_id":"56620fc736398e0d00f79648"},{"type":"string","name":"user_id","in":"path","_id":"56620fc736398e0d00f79647","ref":"","required":true,"desc":"Allows customers to request data for specific user","default":""},{"type":"string","name":"access_token","in":"query","_id":"56620fc736398e0d00f79646","ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":""}],"results":{"codes":[{"name":"","status":200,"language":"json","code":"{  \n   \"code\":200,\n   \"message\":\"Ok\",\n   \"user\":{  \n      \"_id\":\"55d39077SAMPLEa34f000003\",\n      \"uid\":\"SSVNorSR-1 \",\n      \"authentication_token\":\"4z-V2SAMPLELu_txGksL1W\"\n   }\n}"},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id/refresh_token.json","auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/organizations/55d37f86623SAMPLE2000083/users/55d39077SAMPLEa34f000003/refresh_token.json?access_token=542bb3SAMPLE5a30a27b5d87e223e6bdSAMPLEf7f63553ae24255SAMPLE","language":"http"}]},"method":"get"},"createdAt":"2015-12-04T22:12:23.129Z","hidden":false,"parentDoc":null,"slug":"refreshing-user-token","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

getRefreshing User Token

If you need to reset a user’s access token, you may make a GET request call for a new user access token.

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Query Params

access_token:
required
string
Unique access token which must be passed for authentication

The following values are found in the response.

Return Value
Type
Description

_id (Validic User ID)

String

Used to identify a user in Validic and used to deploy the Application Marketplace

uid (Your Unique ID)

String

Used to identify a user in your system

access_token (User Authentication Token)

String

Your user's unique access token which is used to deploy the Application Marketplace


User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/organizations/55d37f86623SAMPLE2000083/users/55d39077SAMPLEa34f000003/refresh_token.json?access_token=542bb3SAMPLE5a30a27b5d87e223e6bdSAMPLEf7f63553ae24255SAMPLE

Result Format

{  
   "code":200,
   "message":"Ok",
   "user":{  
      "_id":"55d39077SAMPLEa34f000003",
      "uid":"SSVNorSR-1 ",
      "authentication_token":"4z-V2SAMPLELu_txGksL1W"
   }
}
{}


{"_id":"56f4385b3d35720e00ba985b","githubsync":"","slug":"suspend","version":"56f4385b3d35720e00ba9839","category":"56f4385b3d35720e00ba983d","editedParams":true,"excerpt":"You may want to suspend a user from Validic, for example, if the person is similarly suspended in your organization.","link_url":"","title":"Suspend","type":"put","user":"55e87bcdc5bccb2d008a9ba4","__v":1,"body":"A suspended user will not have access to your Validic Marketplace. Additionally, Validic will discontinue syncing data from their applications. Suspending a user follows REST standards. Note that the Organization access token must be passed for authentication.\n\n**Unsuspend** \nTo unsuspend a user, send a \"0\" value in the suspend field.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PUT https://api.validic.com/v1/organizations/5176906c6dedSAMPLE000001/users/51552cd7fSAMPLE04000017.json\\n{  \\n   \\\"suspend\\\":\\\"0\\\",\\n   \\\"access_token\\\":\\\"[[app:key]]\\\"\\n}\",\n      \"language\": \"http\",\n      \"name\": \"Unsuspend\"\n    }\n  ]\n}\n[/block]","link_external":false,"order":3,"project":"5646482fa74cd10d00a3f014","sync_unique":"","updates":["59ccae803cc0cb003c67e295"],"api":{"auth":"required","examples":{"codes":[{"name":"Sample Request","code":"PUT https://api.validic.com/v1/organizations/5176906c6dSAMPLE2c000001/users/51552cd7fded080SAMPLE0017.json\n{  \n   \"suspend\":\"1\",\n   \"access_token\":\"[[app:key]]\"\n}","language":"http"}]},"method":"put","params":[{"ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id","in":"path","_id":"564f859ece27ba0d005bb51c"},{"required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string","name":"user_id","in":"path","_id":"56621676aa6a760d005e8353","ref":""},{"desc":"Unique access token which must be passed for authentication.","default":"","type":"string","name":"access_token","in":"body","_id":"564f859ece27ba0d005bb51b","ref":"","required":true}],"results":{"codes":[{"name":"Sample Response","code":"{  \n   \"code\":200,\n   \"message\":\"The user has been suspended successfully\"\n}\n","language":"json","status":200},{"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"json","status":401}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id.json"},"editedParams2":true,"isReference":true,"parentDoc":null,"createdAt":"2015-12-04T21:58:21.609Z","hidden":false,"next":{"pages":[]},"childrenPages":[]}

putSuspend

You may want to suspend a user from Validic, for example, if the person is similarly suspended in your organization.

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Body Params

access_token:
required
string
Unique access token which must be passed for authentication.

A suspended user will not have access to your Validic Marketplace. Additionally, Validic will discontinue syncing data from their applications. Suspending a user follows REST standards. Note that the Organization access token must be passed for authentication.

Unsuspend
To unsuspend a user, send a "0" value in the suspend field.

PUT https://api.validic.com/v1/organizations/5176906c6dedSAMPLE000001/users/51552cd7fSAMPLE04000017.json
{  
   "suspend":"0",
   "access_token":"[[app:key]]"
}

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

PUT https://api.validic.com/v1/organizations/5176906c6dSAMPLE2c000001/users/51552cd7fded080SAMPLE0017.json
{  
   "suspend":"1",
   "access_token":"[[app:key]]"
}

Result Format

{  
   "code":200,
   "message":"The user has been suspended successfully"
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba985c","__v":1,"editedParams":true,"editedParams2":true,"link_external":false,"next":{"description":"","pages":[]},"parentDoc":null,"type":"put","body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PUT https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}.json\\n{  \\n   \\\"user\\\":{  \\n      \\\"uid\\\":\\\":uid\\\"\\n   },\\n   \\\"access_token\\\":\\\"[[app:key]]\\\"\\n}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\nThe following values are found in the response payload.\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"_id (Validic User ID)\",\n    \"0-1\": \"String\",\n    \"0-2\": \"Used to identify a user in Validic and used to deploy the Application Marketplace\",\n    \"1-0\": \"uid (Your Unique ID)\",\n    \"1-1\": \"String\",\n    \"1-2\": \"Used to identify a user in your system\",\n    \"2-0\": \"access_token (User Authentication Token)\",\n    \"2-1\": \"String\",\n    \"2-2\": \"Your user's unique access token which is used to deploy the Application Marketplace\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\nTo test this call, please click \"Test in the API Explorer\" below. Values are pre-populated with default fields unless a field is marked as required. Please populate these fields with a mock value for testing.","createdAt":"2015-12-04T22:16:33.878Z","excerpt":"Should you need to update a user, such as changing the UID you initially set in during User Provisioning, you may make a PUT request to modify the user.","githubsync":"","hidden":false,"isReference":true,"link_url":"","sync_unique":"","user":"55e87bcdc5bccb2d008a9ba4","version":"56f4385b3d35720e00ba9839","category":"56f4385b3d35720e00ba983d","order":4,"title":"Updating Users","api":{"results":{"codes":[{"name":"","code":"{\n    \"code\": 200,\n    \"message\": \"The user has been successfully updated\",\n    \"user\": {\n        \"_id\": \"55d39077507279SAMPLE0003\",\n        \"uid\": \"NCC-1701-A\",\n        \"profile\": null\n    }\n}","language":"json","status":200},{"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"json","status":401}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id.json","auth":"required","examples":{"codes":[{"name":"","code":"\nPUT https://api.validic.com/v1/organizations/55d37f8662386SAMPLE00083/users/55d39077507SAMPLE000003.json\n{  \n   \"user\":{  \n      \"uid\":\"NCC-1701-A\"\n   },\n   \"access_token\":\"542bb3cb76e255SAMPLE5d87e223e6bdc76aSAMPLEf63553ae242555SAMPLE\"\n}\n","language":"http"}]},"method":"put","params":[{"name":"organization_id","in":"path","_id":"56620fc736398e0d00f79648","ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string"},{"default":"","type":"string","name":"user_id","in":"path","_id":"56620fc736398e0d00f79647","ref":"","required":true,"desc":"Allows customers to request data for specific user"},{"in":"body","_id":"566210c1aa6a760d005e834b","ref":"","required":true,"desc":"Used to identify a user in your system","default":"","type":"string","name":"uid"},{"ref":"","required":true,"desc":"Unique access token which must be passed for authentication","default":"","type":"string","name":"access_token","in":"body","_id":"56620fc736398e0d00f79646"}]},"project":"5646482fa74cd10d00a3f014","slug":"updating-users","updates":[],"childrenPages":[]}

putUpdating Users

Should you need to update a user, such as changing the UID you initially set in during User Provisioning, you may make a PUT request to modify the user.

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Body Params

uid:
required
string
Used to identify a user in your system
access_token:
required
string
Unique access token which must be passed for authentication
PUT https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}.json
{  
   "user":{  
      "uid":":uid"
   },
   "access_token":"[[app:key]]"
}

The following values are found in the response payload.

Return Value
Type
Description

_id (Validic User ID)

String

Used to identify a user in Validic and used to deploy the Application Marketplace

uid (Your Unique ID)

String

Used to identify a user in your system

access_token (User Authentication Token)

String

Your user's unique access token which is used to deploy the Application Marketplace

To test this call, please click "Test in the API Explorer" below. Values are pre-populated with default fields unless a field is marked as required. Please populate these fields with a mock value for testing.


User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


PUT https://api.validic.com/v1/organizations/55d37f8662386SAMPLE00083/users/55d39077507SAMPLE000003.json
{  
   "user":{  
      "uid":"NCC-1701-A"
   },
   "access_token":"542bb3cb76e255SAMPLE5d87e223e6bdc76aSAMPLEf63553ae242555SAMPLE"
}

Result Format

{
    "code": 200,
    "message": "The user has been successfully updated",
    "user": {
        "_id": "55d39077507279SAMPLE0003",
        "uid": "NCC-1701-A",
        "profile": null
    }
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba985d","__v":1,"category":"56f4385b3d35720e00ba983d","editedParams":true,"hidden":false,"isReference":true,"link_url":"","order":5,"slug":"delete-users","user":"55e87bcdc5bccb2d008a9ba4","api":{"params":[{"ref":"","required":true,"desc":"Credentials provided by Validic which identifies your unique organization","default":"","type":"string","name":"organization_id","in":"path","_id":"564f859ece27ba0d005bb51c"},{"required":true,"desc":"Allows customers to request data for specific user","default":"","type":"string","name":"user_id","in":"path","_id":"56621676aa6a760d005e8353","ref":""},{"desc":"Used to identify a user in your system","default":"","type":"string","name":"uid","in":"body","_id":"566217c7789d740d00bc53bf","ref":"","required":false},{"ref":"","required":true,"desc":"Unique access token which must be passed for authentication.","default":"","type":"string","name":"access_token","in":"body","_id":"564f859ece27ba0d005bb51b"}],"results":{"codes":[{"status":200,"name":"Sample Response","code":"{  \n   \"code\":200,\n   \"message\":\"The user has been suspended successfully\"\n}\n","language":"json"},{"code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"json","status":401,"name":""}]},"settings":"5710f3315039350e00abccaa","url":"/organizations/:organization_id/users/:user_id.json","auth":"required","examples":{"codes":[{"name":"Sample Request","code":"{  \n   \"access_token\":\":access_token\"\n}\n","language":"http"}]},"method":"delete"},"githubsync":"","project":"5646482fa74cd10d00a3f014","sync_unique":"","type":"delete","body":"You may delete a user by making a delete call to the user’s ID provided during provisioning or the uid you provided during provisioning. Deleting a user follows REST standards. Note that the Organization access token must be passed for authentication.\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Hold Notification\",\n  \"body\": \"When a user is deleted, we place a five minute hold on the UID to prevent duplicate users being created with the same UID. This means that you will not be able to provision a user with the same UID for five minutes. Once five minutes have passed from the deletion time, you will then be able to provision a new user with that same UID. Attempting to use the UID before the hold is released will result in a \\\"409- Duplicate User\\\" error message. ​\"\n}\n[/block]\nDeleting a user by specifying the user’s Validic ID:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"DELETE https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}.json\\n -H 'Content-Type: application/json'\\n{  \\n   \\\"access_token\\\":\\\"e61467e3845e8a66f7453dc5SAMPLEd1b879a6f96ebe7b243bad beae04f63\\\"\\n}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n###Optional Method\nIn case you do not have the User’s Validic ID, you may also delete a user by providing the  uid used to provision the user. The following example shows how:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"DELETE https://api.validic.com/v1/organizations/5176906c6dSAMPLEc000001/users.json\\n -H 'Content-Type: application/json'\\n\\n{  \\n   \\\"access_token\\\":\\\"e61467e3845e8a66f7453dc5SAMPLEd1b879a6f96ebe7b243bad beae04f63\\\",\\n   \\\"uid\\\":\\\"123467890\\\"\\n}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]","createdAt":"2015-12-04T22:46:31.841Z","editedParams2":true,"link_external":false,"next":{"description":"","pages":[]},"excerpt":"You may want to permanently disconnect a user from Validic, for example, if the person is no longer employed at an organization.","parentDoc":null,"title":"Delete Users","updates":[],"version":"56f4385b3d35720e00ba9839","childrenPages":[]}

deleteDelete Users

You may want to permanently disconnect a user from Validic, for example, if the person is no longer employed at an organization.

Path Params

organization_id:
required
string
Credentials provided by Validic which identifies your unique organization
user_id:
required
string
Allows customers to request data for specific user

Body Params

uid:
string
Used to identify a user in your system
access_token:
required
string
Unique access token which must be passed for authentication.

You may delete a user by making a delete call to the user’s ID provided during provisioning or the uid you provided during provisioning. Deleting a user follows REST standards. Note that the Organization access token must be passed for authentication.

Hold Notification

When a user is deleted, we place a five minute hold on the UID to prevent duplicate users being created with the same UID. This means that you will not be able to provision a user with the same UID for five minutes. Once five minutes have passed from the deletion time, you will then be able to provision a new user with that same UID. Attempting to use the UID before the hold is released will result in a "409- Duplicate User" error message. ​

Deleting a user by specifying the user’s Validic ID:

DELETE https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}.json
 -H 'Content-Type: application/json'
{  
   "access_token":"e61467e3845e8a66f7453dc5SAMPLEd1b879a6f96ebe7b243bad beae04f63"
}

Optional Method

In case you do not have the User’s Validic ID, you may also delete a user by providing the uid used to provision the user. The following example shows how:

DELETE https://api.validic.com/v1/organizations/5176906c6dSAMPLEc000001/users.json
 -H 'Content-Type: application/json'

{  
   "access_token":"e61467e3845e8a66f7453dc5SAMPLEd1b879a6f96ebe7b243bad beae04f63",
   "uid":"123467890"
}

User Information

Try It Out

delete
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

{  
   "access_token":":access_token"
}

Result Format

{  
   "code":200,
   "message":"The user has been suspended successfully"
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba985e","body":"","editedParams2":true,"version":"56f4385b3d35720e00ba9839","editedParams":true,"githubsync":"","hidden":false,"project":"5646482fa74cd10d00a3f014","updates":[],"__v":0,"api":{"params":[{"name":"user_access_token","in":"path","_id":"56620fc736398e0d00f79648","ref":"","required":true,"desc":"Your customers unique access token generated by Validic when user was provisioned","default":"","type":"string"},{"desc":"Unique access token which must be passed for authentication","default":"","type":"string","name":"access_token","in":"query","_id":"56620fc736398e0d00f79646","ref":"","required":true}],"results":{"codes":[{"status":200,"name":"","code":"{\nme: {\n_id: \"55d390775SAMPLE4f000003\"\n}\n}","language":"json"},{"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"json","status":400}]},"settings":"5710f3315039350e00abccaa","url":"/me.json?authentication_token=:user_access_token","auth":"required","examples":{"codes":[{"name":"","code":"https://api.validic.com/v1/me.json?authentication_token=fZom4SAMPLEasF65Jb-J&access_token=542bb3cbSAMPLE0a27b5d87e223e6bdcSAMPLEdf7f63553ae24255SAMPLE","language":"http"}]},"method":"get"},"category":"56f4385b3d35720e00ba983d","user":"55e87bcdc5bccb2d008a9ba4","link_url":"","parentDoc":null,"slug":"user-credentials","title":"User Credentials","type":"get","createdAt":"2015-12-04T22:50:39.367Z","excerpt":"All Users in Validic have credentials which can be accessed with a /me call. Due to HIPAA de-identification standards, only non-identifiable data is available.","isReference":true,"sync_unique":"","link_external":false,"order":6,"childrenPages":[]}

getUser Credentials

All Users in Validic have credentials which can be accessed with a /me call. Due to HIPAA de-identification standards, only non-identifiable data is available.

Path Params

user_access_token:
required
string
Your customers unique access token generated by Validic when user was provisioned

Query Params

access_token:
required
string
Unique access token which must be passed for authentication

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

https://api.validic.com/v1/me.json?authentication_token=fZom4SAMPLEasF65Jb-J&access_token=542bb3cbSAMPLE0a27b5d87e223e6bdcSAMPLEdf7f63553ae24255SAMPLE

Result Format

{
me: {
_id: "55d390775SAMPLE4f000003"
}
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba985f","category":"56f4385b3d35720e00ba983d","githubsync":"","hidden":false,"isReference":true,"slug":"user-profile","editedParams":true,"order":7,"parentDoc":null,"sync_unique":"","user":"55e87bcdc5bccb2d008a9ba4","__v":1,"api":{"url":"/profile.json?authentication_token=:user_access_token","auth":"required","examples":{"codes":[{"name":"","code":"GET https://api.validic.com/v1/profile.json?authentication_token=55d390775SAMPLE4f000003","language":"http"}]},"method":"get","params":[{"_id":"56620fc736398e0d00f79648","ref":"","required":true,"desc":"Your customers unique access token generated by Validic when user was provisioned","default":"","type":"string","name":"user_access_token","in":"path"}],"results":{"codes":[{"name":"","code":"{\n    \"profile\": {\n        \"uid\": \"NCC-58925\",\n        \"_id\": \"5669da356SAMPLE47800007c\",\n        \"gender\": \"F\",\n        \"location\": \"NC\",\n        \"country\": \"null\",\n        \"birth_year\": \"1973\",\n        \"height\": \"167.5\",\n        \"weight\": \"83.9146\",\n        \"devices\": {},\n        \"applications\": [\n            {\n                \"name\": \"fatsecret\"\n            },\n            {\n                \"name\": \"jawbone_up\"\n            }\n        ]\n    }\n}\n","language":"json","status":200},{"name":"","code":"{  \n   \"code\":401,\n   \"message\",\n   \"Unauthorized\"\n}\n\nBelow is a reference of response codes provided from the Validic API:\n401\nUnauthorized\nRequest was not authorized\n\n403\nForbidden\nRequest was forbidden, wrong access token supplied\n\n404\nNot Found\nResource was not found\n\n406\nNot Acceptable\nSupplied POST data was not accepted\n\n409\nConflict\nResource could not processed due to a conflict (e.g. user already exists)\n\n422\nUnprocessed Entity\nResource could not be processed, wrong parameters or credentials supplied\n\n429\nLimit Exceeded\nResource could not be processed, maximum number of request to the resource was exceeded","language":"json","status":401}]},"settings":"5710f3315039350e00abccaa"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/profile.json?authentication_token={user_access_token}\",\n      \"language\": \"http\",\n      \"name\": \"HTTP\"\n    }\n  ]\n}\n[/block]\nThe following values are found in the response.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"uid\",\n    \"0-1\": \"String\",\n    \"0-2\": \"User’s ID from the provisioning application\",\n    \"1-0\": \"_id\",\n    \"2-0\": \"gender\",\n    \"3-0\": \"location\",\n    \"4-0\": \"country\",\n    \"5-0\": \"birth_year\",\n    \"6-0\": \"height\",\n    \"7-0\": \"weight\",\n    \"9-0\": \"applications\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"5-1\": \"String\",\n    \"9-1\": \"Array\",\n    \"6-1\": \"Double\",\n    \"7-1\": \"Double\",\n    \"1-2\": \"User’s Validic ID\",\n    \"2-2\": \"Either M or F\",\n    \"3-2\": \"2-letter State abbreviation in United States, postal code or City, State for other countries\",\n    \"4-2\": \"The user’s Country of residence (e.g., “United States,” “Canada,” etc.)\",\n    \"5-2\": \"User’s year of birth\",\n    \"6-2\": \"User’s most current height in cm\",\n    \"7-2\": \"User’s most current weight in kg\",\n    \"9-2\": \"A list of connected 3rd party applications (stored in a hash)\",\n    \"8-0\": \"devices\",\n    \"8-1\": \"Object\",\n    \"8-2\": \"A list of devices connected to user's app (Fitbit ONLY)\"\n  },\n  \"cols\": 3,\n  \"rows\": 10\n}\n[/block]","excerpt":"A profile contains information about a User including connected applications. Due to HIPAA de-identification standards, only non-identifiable data is available.","link_url":"","title":"User Profile","updates":["56d5ec3d31857e2500db0d39","5784fc215ae9c20e00bc2597"],"createdAt":"2015-12-04T22:55:34.984Z","editedParams2":true,"link_external":false,"project":"5646482fa74cd10d00a3f014","type":"get","version":"56f4385b3d35720e00ba9839","childrenPages":[]}

getUser Profile

A profile contains information about a User including connected applications. Due to HIPAA de-identification standards, only non-identifiable data is available.

Path Params

user_access_token:
required
string
Your customers unique access token generated by Validic when user was provisioned
GET https://api.validic.com/v1/profile.json?authentication_token={user_access_token}

The following values are found in the response.

Return Value
Type
Description

uid

String

User’s ID from the provisioning application

_id

String

User’s Validic ID

gender

String

Either M or F

location

String

2-letter State abbreviation in United States, postal code or City, State for other countries

country

String

The user’s Country of residence (e.g., “United States,” “Canada,” etc.)

birth_year

String

User’s year of birth

height

Double

User’s most current height in cm

weight

Double

User’s most current weight in kg

devices

Object

A list of devices connected to user's app (Fitbit ONLY)

applications

Array

A list of connected 3rd party applications (stored in a hash)


User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples

GET https://api.validic.com/v1/profile.json?authentication_token=55d390775SAMPLE4f000003

Result Format

{
    "profile": {
        "uid": "NCC-58925",
        "_id": "5669da356SAMPLE47800007c",
        "gender": "F",
        "location": "NC",
        "country": "null",
        "birth_year": "1973",
        "height": "167.5",
        "weight": "83.9146",
        "devices": {},
        "applications": [
            {
                "name": "fatsecret"
            },
            {
                "name": "jawbone_up"
            }
        ]
    }
}
{  
   "code":401,
   "message",
   "Unauthorized"
}

Below is a reference of response codes provided from the Validic API:
401
Unauthorized
Request was not authorized

403
Forbidden
Request was forbidden, wrong access token supplied

404
Not Found
Resource was not found

406
Not Acceptable
Supplied POST data was not accepted

409
Conflict
Resource could not processed due to a conflict (e.g. user already exists)

422
Unprocessed Entity
Resource could not be processed, wrong parameters or credentials supplied

429
Limit Exceeded
Resource could not be processed, maximum number of request to the resource was exceeded


{"_id":"56f4385b3d35720e00ba9861","updates":[],"githubsync":"","isReference":true,"link_external":false,"parentDoc":null,"slug":"status","title":"Status","type":"fn","__v":0,"createdAt":"2015-12-04T23:11:09.147Z","excerpt":"The status filter allows for displaying all users within an organization with the supplied status. By default, status is set to all","hidden":false,"project":"5646482fa74cd10d00a3f014","sync_unique":"","user":"55e87bcdc5bccb2d008a9ba4","link_url":"","order":9,"api":{"results":{"codes":[{"language":"json","status":200,"name":"","code":"{}"},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json?access_token={ORGANIZATION_ACCESS_TOKEN}&status=all\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"summary\\\":{  \\n      ...\\n   },\\n   \\\"users\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"51552cd7fded0807c400001f\\\",\\n         \\\"uid\\\":\\\"1\\\"\\n      },\\n      {  \\n         \\\"_id\\\":\\\"51433ft7fdrd0719c4010011\\\",\\n         \\\"uid\\\":\\\"2\\\"\\n      }\\n   ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n##Status List and Definitions\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Status\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"all\",\n    \"1-0\": \"active\",\n    \"2-0\": \"inactive\",\n    \"3-0\": \"provisioned\",\n    \"4-0\": \"suspended\",\n    \"0-1\": \"All users within the organization\",\n    \"1-1\": \"All users within the organization who have one or more synced application, which is integrated with Validic, and have logged/synced at least one activity within the last 90 days.\",\n    \"2-1\": \"All users within the organization that have one or more synced application that is integrated with Validic, and has not logged/synced at least one activity within the last 90 days.\",\n    \"3-1\": \"All users within the organization that have not yet synced any application that is integrated with Validic.\",\n    \"4-1\": \"All users within the organization whose accounts have been suspended.\"\n  },\n  \"cols\": 2,\n  \"rows\": 5\n}\n[/block]","category":"56f4385b3d35720e00ba983d","version":"56f4385b3d35720e00ba9839","childrenPages":[]}

Status

The status filter allows for displaying all users within an organization with the supplied status. By default, status is set to all

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json?access_token={ORGANIZATION_ACCESS_TOKEN}&status=all
{  
   "summary":{  
      ...
   },
   "users":[  
      {  
         "_id":"51552cd7fded0807c400001f",
         "uid":"1"
      },
      {  
         "_id":"51433ft7fdrd0719c4010011",
         "uid":"2"
      }
   ]
}

Status List and Definitions

Status
Description

all

All users within the organization

active

All users within the organization who have one or more synced application, which is integrated with Validic, and have logged/synced at least one activity within the last 90 days.

inactive

All users within the organization that have one or more synced application that is integrated with Validic, and has not logged/synced at least one activity within the last 90 days.

provisioned

All users within the organization that have not yet synced any application that is integrated with Validic.

suspended

All users within the organization whose accounts have been suspended.

{"_id":"56f4385b3d35720e00ba9842","githubsync":"","isReference":false,"sync_unique":"","title":"Push Notification Service","type":"basic","excerpt":"","link_url":"","project":"5646482fa74cd10d00a3f014","slug":"push-notification-service","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","api":{"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"status":400,"name":"","code":"{}","language":"json"}]},"settings":"","auth":"required","params":[]},"createdAt":"2015-12-04T23:26:20.098Z","hidden":false,"order":0,"parentDoc":null,"body":"Validic provides our Enterprise customers with the ability to register for Push Notification service for near-real-time data update notifications and optimal resource use. Enterprise customers may have one or more Push Notification URLs set. To do so, contact us at [support@validic.com](mailto:support@validic.com) for setting up Push Notification service for your account.\n\n\nEach Push Notification sent out may include multiple items corresponding to activities that are now available for retrieval from the Validic API. Each item inside a Push Notification includes the necessary elements for you to construct an API call to retrieve a particular piece of activity data.\n\nOnce set, Validic will begin pushing data to your Push Notification URL via a POST request:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST http://{YOUR_PUSH_NOTICATION_URL}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"data\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"51552cd7fded0807c4000017\\\",\\n         \\\"activity_type\\\":\\\"fitness\\\",\\n         \\\"activity_date\\\":\\\"2013-10-08T19:07:01+00:00\\\",\\n         \\\"source\\\":\\\"sample_app\\\"\\n      },\\n      ...\\n   ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Return Value\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"_id\",\n    \"1-0\": \"activity_type\",\n    \"2-0\": \"activity_date\",\n    \"3-0\": \"source\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"0-2\": \"Validic ID of the user\",\n    \"1-2\": \"Type of activity data corresponding to one Validic API endpoint\",\n    \"2-2\": \"Timestamp for the measurement set\",\n    \"3-2\": \"The short name of the application that recorded the activity\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\nUpon receipt of a Push Notification, you may begin fetching new data from the API through a GET Request using the data parameters from the Push Notification:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/{ACTIVITY_TYPE}.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date={ACTIVITY_DATE}&end_date={ACTIVITY_DATE}&source={SOURCE}\",\n      \"language\": \"http\",\n      \"name\": \"Sample Request\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{  \\n   \\\"summary\\\":{  \\n      ...\\n   },\\n   \\\"fitness\\\":[  \\n      {  \\n         \\\"_id\\\":\\\"5176903b6dedda539c000001\\\",\\n         \\\"timestamp\\\":\\\"2013-10-08T19:07:01+00:00\\\",\\n         \\\"utc_offset\\\":\\\"-05:00\\\",\\n         \\\"type\\\":\\\"Running\\\",\\n         \\\"intensity\\\":\\\"high\\\",\\n         \\\"start_time\\\":\\\"2013-10-08T14:07:01-05:00\\\",\\n         \\\"distance\\\":2242.74,\\n         \\\"duration\\\":1683,\\n         \\\"source\\\":\\\"sample_app\\\",\\n         \\\"source_name\\\":\\\"Sample App\\\",\\n         \\\"last_updated\\\":\\\"2013-10-08T19:07:01+00:00\\\"\\n      }\\n   ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Sample Response\"\n    }\n  ],\n  \"sidebar\": true\n}\n[/block]","category":"56f4385b3d35720e00ba983f","version":"56f4385b3d35720e00ba9839","__v":0,"link_external":false,"childrenPages":[]}

Push Notification Service


Validic provides our Enterprise customers with the ability to register for Push Notification service for near-real-time data update notifications and optimal resource use. Enterprise customers may have one or more Push Notification URLs set. To do so, contact us at support@validic.com for setting up Push Notification service for your account.

Each Push Notification sent out may include multiple items corresponding to activities that are now available for retrieval from the Validic API. Each item inside a Push Notification includes the necessary elements for you to construct an API call to retrieve a particular piece of activity data.

Once set, Validic will begin pushing data to your Push Notification URL via a POST request:

POST http://{YOUR_PUSH_NOTICATION_URL}
{  
   "data":[  
      {  
         "_id":"51552cd7fded0807c4000017",
         "activity_type":"fitness",
         "activity_date":"2013-10-08T19:07:01+00:00",
         "source":"sample_app"
      },
      ...
   ]
}
Return Value
Type
Description

_id

String

Validic ID of the user

activity_type

String

Type of activity data corresponding to one Validic API endpoint

activity_date

String

Timestamp for the measurement set

source

String

The short name of the application that recorded the activity

Upon receipt of a Push Notification, you may begin fetching new data from the API through a GET Request using the data parameters from the Push Notification:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{USER_ID}/{ACTIVITY_TYPE}.json?access_token={ORGANIZATION_ACCESS_TOKEN}&start_date={ACTIVITY_DATE}&end_date={ACTIVITY_DATE}&source={SOURCE}
{  
   "summary":{  
      ...
   },
   "fitness":[  
      {  
         "_id":"5176903b6dedda539c000001",
         "timestamp":"2013-10-08T19:07:01+00:00",
         "utc_offset":"-05:00",
         "type":"Running",
         "intensity":"high",
         "start_time":"2013-10-08T14:07:01-05:00",
         "distance":2242.74,
         "duration":1683,
         "source":"sample_app",
         "source_name":"Sample App",
         "last_updated":"2013-10-08T19:07:01+00:00"
      }
   ]
}
{"_id":"56f4385b3d35720e00ba9843","title":"Authenticating Push Notifications","hidden":false,"createdAt":"2015-12-04T23:26:56.300Z","type":"basic","updates":["5668865c1fb5701900f8948c"],"category":"56f4385b3d35720e00ba983f","body":"The Validic API allows you to authenticate Push Notifications sent to your application via use of a Validic Signature. The Validic Signature is an HMAC based generated signature with the following components:\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parameters\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"Access Token\",\n    \"1-0\": \"Service Name\",\n    \"2-0\": \"X-Validic-Timestamp\",\n    \"3-0\": \"Application Secret\",\n    \"0-1\": \"The Organization Access Token\",\n    \"1-1\": \"The name of the service. For Push Notifications, the service name is ‘notifications’\",\n    \"2-1\": \"The timestamp of the Push Notification when it was sent\",\n    \"3-1\": \"The designated Application Secret\"\n  },\n  \"cols\": 2,\n  \"rows\": 4\n}\n[/block]\nTo acquire your Application Secret, you may submit a request at [support@validic.com](mailto:support@validic.com).","githubsync":"","isReference":false,"link_external":false,"link_url":"","parentDoc":null,"project":"5646482fa74cd10d00a3f014","api":{"settings":"","url":"","auth":"required","params":[],"results":{"codes":[{"status":200,"name":"","code":"{}","language":"json"},{"code":"{}","language":"json","status":400,"name":""}]}},"version":"56f4385b3d35720e00ba9839","user":"55e87bcdc5bccb2d008a9ba4","excerpt":"","order":1,"slug":"authenticating-push-notifications","sync_unique":"","__v":1,"childrenPages":[]}

Authenticating Push Notifications


The Validic API allows you to authenticate Push Notifications sent to your application via use of a Validic Signature. The Validic Signature is an HMAC based generated signature with the following components:

Parameters
Description

Access Token

The Organization Access Token

Service Name

The name of the service. For Push Notifications, the service name is ‘notifications’

X-Validic-Timestamp

The timestamp of the Push Notification when it was sent

Application Secret

The designated Application Secret

To acquire your Application Secret, you may submit a request at support@validic.com.

{"_id":"56f4385b3d35720e00ba9844","excerpt":"","githubsync":"","slug":"validating-the-signature","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"To validate the Validic Signature, you may create your own signature using the components above and compare it with Validic Signature found in the Push Notification HTTP Headers. The following steps outline how to create your own signature:\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST https://yoursite.com/notification\\n HEADERS\\n Accept: */*\\n Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\\n Connection: close\\n Content-Length: 258\\n Content-Type: application/json\\n Host: api.validic.com\\n User-Agent: Faraday v0.8.8\\n X-Validic-Signature: iYg596AeXNSgUqEPJHu6LKIVUGU=\\n X-Validic-Timestamp: 2015-12-08T16:04:18029095657000\\n BODY\\n{  \\n   \\\"data\\\":[  \\n      ...\\n   ]\\n}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\nIn this example, the Organization Access Token used is “e61467e3845e8a66f7453dc55ea3fc445d1b879a6f96ebe7b243badbeae04f63″ and Application Secret is “123ABC”.\n\n1. Concatenate your Organization Access Token, the service name (‘notification’) and X-Validic-Timestamp found in the Push Notification HTTP Headers. Do not use any characters to separate them. e61467e3845e8a66f7453dc55ea3fc445d1b879a6f96ebe7b243badbeae04f63notification2015-12-08T16:04:18029095657000\n2. Calculate the HMAC by using the SHA-1 hash algorithm using the Application Secret as the key.\n3. Apply Base64 encoding to the resulting string.\n4. Compare the resulting string to the Validic Signature. Your resulting string must match the X-Validic-Signature found in the Push Notification HTTP Headers.\n\nFor sample implementations on popular programming languages and scripting toolkits, you may visit https://services.timeanddate.com/api/doc/chap-auth.html for more information.","createdAt":"2015-12-04T23:27:34.700Z","hidden":false,"isReference":false,"link_url":"","order":2,"title":"Validating the Signature","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","category":"56f4385b3d35720e00ba983f","link_external":false,"parentDoc":null,"project":"5646482fa74cd10d00a3f014","sync_unique":"","type":"basic","__v":0,"version":"56f4385b3d35720e00ba9839","childrenPages":[]}

Validating the Signature


To validate the Validic Signature, you may create your own signature using the components above and compare it with Validic Signature found in the Push Notification HTTP Headers. The following steps outline how to create your own signature:

POST https://yoursite.com/notification
 HEADERS
 Accept: */*
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 Connection: close
 Content-Length: 258
 Content-Type: application/json
 Host: api.validic.com
 User-Agent: Faraday v0.8.8
 X-Validic-Signature: iYg596AeXNSgUqEPJHu6LKIVUGU=
 X-Validic-Timestamp: 2015-12-08T16:04:18029095657000
 BODY
{  
   "data":[  
      ...
   ]
}

In this example, the Organization Access Token used is “e61467e3845e8a66f7453dc55ea3fc445d1b879a6f96ebe7b243badbeae04f63″ and Application Secret is “123ABC”.

  1. Concatenate your Organization Access Token, the service name (‘notification’) and X-Validic-Timestamp found in the Push Notification HTTP Headers. Do not use any characters to separate them. e61467e3845e8a66f7453dc55ea3fc445d1b879a6f96ebe7b243badbeae04f63notification2015-12-08T16:04:18029095657000
  2. Calculate the HMAC by using the SHA-1 hash algorithm using the Application Secret as the key.
  3. Apply Base64 encoding to the resulting string.
  4. Compare the resulting string to the Validic Signature. Your resulting string must match the X-Validic-Signature found in the Push Notification HTTP Headers.

For sample implementations on popular programming languages and scripting toolkits, you may visit https://services.timeanddate.com/api/doc/chap-auth.html for more information.

{"_id":"56f4385b3d35720e00ba9857","category":"56f4385b3d35720e00ba9840","excerpt":"","githubsync":"","hidden":false,"link_url":"","slug":"validic-connect-partner-api","sync_unique":"","api":{"auth":"required","params":[],"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":""},"link_external":false,"type":"basic","createdAt":"2015-12-10T16:13:03.544Z","isReference":false,"title":"Validic Connect Partner API","version":"56f4385b3d35720e00ba9839","__v":0,"body":"Validic Connect allows developers of health apps and devices to push data seamlessly and safely through our platform API and eliminates the need to build and maintain a custom solution.\n\nUpon acceptance, your product will be featured in the Validic Marketplace and will be visible to millions of users actively looking for health applications to use. As a Validic Connect Partner, we make it simple for users who engage with your app to share their data safely with outside health and wellness providers.\n\nPlease select the image below to learn more about the Connect Partner API. \n\n<br><div style=\"text-align:center\"><a href=\"https://partner.validic.com/docs\" target=\"_blank\"><img class=\"aligncenter\" src=\"https://files.readme.io/iQrUY0ceQgCjfctwAVPU_connected_icon.png\"/></a></div></br>","order":0,"parentDoc":null,"project":"5646482fa74cd10d00a3f014","updates":[],"user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

Validic Connect Partner API


Validic Connect allows developers of health apps and devices to push data seamlessly and safely through our platform API and eliminates the need to build and maintain a custom solution.

Upon acceptance, your product will be featured in the Validic Marketplace and will be visible to millions of users actively looking for health applications to use. As a Validic Connect Partner, we make it simple for users who engage with your app to share their data safely with outside health and wellness providers.

Please select the image below to learn more about the Connect Partner API.



{"_id":"5849d7d83ecb5f23003e1ceb","hidden":false,"link_url":"","next":{"pages":[],"description":""},"slug":"mobile-docs","sync_unique":"","__v":0,"createdAt":"2016-12-08T21:59:52.360Z","excerpt":"","user":"55e87bcdc5bccb2d008a9ba4","githubsync":"","link_external":false,"project":"5646482fa74cd10d00a3f014","title":"Mobile Documentation","type":"basic","body":"Learn how to integrate the Validic Mobile library into your mobile application, giving you access to powerful data collection features through HealthKit and Samsung Health, Bluetooth Low Energy, and VitalSnap&trade;.\n\n[iOS](http://mobiledocs.validic.com/mobile/ios/docs/index.html)\n\nAndroid:\n - [Shared](http://mobiledocs.validic.com/mobile/android/shared/docs/index.html)\n - [BLE](http://mobiledocs.validic.com/mobile/android/ble/docs/index.html)\n - [VitalSnap](http://mobiledocs.validic.com/mobile/android/ocr/docs/index.html)\n - [Samsung Health](http://mobiledocs.validic.com/mobile/android/shealth/docs/index.html)\n\n[Cordova](http://mobiledocs.validic.com/mobile/cordova/docs/index.html)","category":"5849d77ab781ea1b009cbec0","isReference":false,"order":0,"updates":[],"api":{"results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"version":"56f4385b3d35720e00ba9839","parentDoc":null,"childrenPages":[]}

Mobile Documentation


Learn how to integrate the Validic Mobile library into your mobile application, giving you access to powerful data collection features through HealthKit and Samsung Health, Bluetooth Low Energy, and VitalSnap™.

iOS

Android:

Cordova

{"_id":"5849d7f20e1b5e0f008540a2","next":{"pages":[],"description":""},"order":1,"project":"5646482fa74cd10d00a3f014","api":{"url":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[]},"category":"5849d77ab781ea1b009cbec0","excerpt":"","hidden":false,"link_url":"","title":"Mobile Quick Start Guides","updates":[],"version":"56f4385b3d35720e00ba9839","__v":0,"githubsync":"","sync_unique":"","user":"55e87bcdc5bccb2d008a9ba4","body":"Step-by-step guides on how to integrate the Validic Mobile library into your mobile project with in-depth explanations of each feature.\n\n[iOS](http://mobiledocs.validic.com/mobile/ios/tutorial/index.html) \n\n[Android](http://mobiledocs.validic.com/mobile/android/tutorial/index.html) \n\nXamarin ([iOS](http://mobiledocs.validic.com/mobile/xamarin-ios/tutorial/index.html) / [Android](http://mobiledocs.validic.com/mobile/xamarin-android/tutorial/index.html)) \n\n[Cordova](http://mobiledocs.validic.com/mobile/cordova/tutorial/index.html)","createdAt":"2016-12-08T22:00:18.253Z","isReference":false,"slug":"mobile-tutorials","type":"basic","link_external":false,"parentDoc":null,"childrenPages":[]}

Mobile Quick Start Guides


Step-by-step guides on how to integrate the Validic Mobile library into your mobile project with in-depth explanations of each feature.

iOS

Android

Xamarin (iOS / Android)

Cordova

{"_id":"5942d67dc2ec19002d46d6ca","project":"5646482fa74cd10d00a3f014","version":"56f4385b3d35720e00ba9839","category":"56f4385b3d35720e00ba9841","user":"55e87bcdc5bccb2d008a9ba4","updates":["59666b44137e9200476c187a"],"next":{"pages":[],"description":""},"createdAt":"2017-06-15T18:48:29.306Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"Hi! Just your friendly neighborhood product managers here! At Validic, we are dedicated to creating solutions driven by our customer's needs and experiences. To achieve that we crave customer feedback. Do you need a new integration? Are there features you’d like us to provide so you may work smarter? Could we do something better? Are we doing something wonderfully? Do you just happen to have an amazing recipe for grandmother's pot roast you'd like to share? Tell us! \nWe look forward to hearing from you and continuing to improve your customer experience. You can email your feedback to <a href=\"mailto:productfeedback@validic.com\">Validic Product Feedback</a>.\n\nPlease note, if you need support, please visit our [support page](https://support.validic.com/).\n\nThank you so much! \nValidic Product Managment Team","excerpt":"","slug":"leave-feedback","type":"basic","title":"Leave Feedback","__v":1,"parentDoc":null,"childrenPages":[]}

Leave Feedback


Hi! Just your friendly neighborhood product managers here! At Validic, we are dedicated to creating solutions driven by our customer's needs and experiences. To achieve that we crave customer feedback. Do you need a new integration? Are there features you’d like us to provide so you may work smarter? Could we do something better? Are we doing something wonderfully? Do you just happen to have an amazing recipe for grandmother's pot roast you'd like to share? Tell us!
We look forward to hearing from you and continuing to improve your customer experience. You can email your feedback to Validic Product Feedback.

Please note, if you need support, please visit our support page.

Thank you so much!
Validic Product Managment Team

{"_id":"570c10fd0c61f73400da84b4","updates":[],"version":"56f4385b3d35720e00ba9839","__v":6,"category":"56f4385b3d35720e00ba9841","githubsync":"","link_external":false,"project":"5646482fa74cd10d00a3f014","sync_unique":"","api":{"settings":"","url":"","auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]}},"excerpt":"","isReference":false,"body":"Typically Validic will release 4 API versions per year, however, additional releases may occur from time to time. Once a new minor version is released, the previous version will be supported for one year. After one year, the release will remain active, yet unsupported for one year. Two years after release, the version will be deprecated and any users still utilizing this version will be moved to the next available version. \n\nThe following table outlines the current Validic versions and their deprecation schedule. To learn more about our versioning policy, please review [this guide](https://docs.validic.com/docs/managing-change). \n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Major Version\",\n    \"h-1\": \"Minor Version\",\n    \"h-2\": \"Replaced By\",\n    \"h-3\": \"Supported Use Until\",\n    \"h-4\": \"Unsupported Use Until\",\n    \"1-0\": \"V1\",\n    \"0-0\": \"V1\",\n    \"1-1\": \"2016-01-01\",\n    \"1-2\": \"2016-03-01\",\n    \"1-3\": \"2017-03-01\",\n    \"1-4\": \"2018-03-01\",\n    \"h-5\": \"Deprecated Date\",\n    \"1-5\": \"2018-04-01\",\n    \"0-1\": \"2016-03-01 \\n(Current Version)\",\n    \"0-2\": \"NA\",\n    \"0-3\": \"NA\",\n    \"0-4\": \"NA\",\n    \"0-5\": \"NA\"\n  },\n  \"cols\": 6,\n  \"rows\": 2\n}\n[/block]","hidden":false,"order":1,"slug":"version-deprecation-schedule","createdAt":"2016-04-11T21:02:53.631Z","link_url":"","parentDoc":null,"title":"Deprecation Schedule","type":"basic","user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

Deprecation Schedule


Typically Validic will release 4 API versions per year, however, additional releases may occur from time to time. Once a new minor version is released, the previous version will be supported for one year. After one year, the release will remain active, yet unsupported for one year. Two years after release, the version will be deprecated and any users still utilizing this version will be moved to the next available version.

The following table outlines the current Validic versions and their deprecation schedule. To learn more about our versioning policy, please review this guide.

Major Version
Minor Version
Replaced By
Supported Use Until
Unsupported Use Until
Deprecated Date

V1

2016-03-01
(Current Version)

NA

NA

NA

NA

V1

2016-01-01

2016-03-01

2017-03-01

2018-03-01

2018-04-01

{"_id":"56f4385b3d35720e00ba9851","__v":0,"api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"language":"json","status":400,"name":"","code":"{}"}]}},"body":"Below is a reference of response codes provided from the Validic API:\n\nA sample response object:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \" {\\n \\\"code\\\": 401,\\n \\\"message\\\", \\\"Unauthorized\\\"\\n}\",\n      \"language\": \"text\"\n    }\n  ]\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Code\",\n    \"h-1\": \"Message\",\n    \"h-2\": \"Description\",\n    \"0-0\": \"200\",\n    \"1-0\": \"201\",\n    \"2-0\": \"401\",\n    \"3-0\": \"403\",\n    \"4-0\": \"404\",\n    \"5-0\": \"406\",\n    \"6-0\": \"409\",\n    \"7-0\": \"422\",\n    \"8-0\": \"429\",\n    \"0-1\": \"Ok\",\n    \"1-1\": \"Created\",\n    \"2-1\": \"Unauthorized\",\n    \"3-1\": \"Forbidden\",\n    \"4-1\": \"Not Found\",\n    \"5-1\": \"Not Acceptable\",\n    \"6-1\": \"Conflict\",\n    \"7-1\": \"Unprocessed Entity\",\n    \"8-1\": \"Limit Exceeded\",\n    \"8-2\": \"Resource could not be processed, maximum number of request to the resource was exceeded\",\n    \"7-2\": \"Resource could not be processed, wrong parameters or credentials supplied\",\n    \"6-2\": \"Resource could not processed due to a conflict (e.g. user already exists)\",\n    \"5-2\": \"Supplied POST data was not accepted\",\n    \"4-2\": \"Resource was not found\",\n    \"3-2\": \"Request was forbidden, wrong access token supplied\",\n    \"2-2\": \"Request was not authorized\",\n    \"1-2\": \"POST request was successfully created\",\n    \"0-2\": \"Request was successful\"\n  },\n  \"cols\": 3,\n  \"rows\": 9,\n  \"sidebar\": true\n}\n[/block]","isReference":false,"order":5,"slug":"response-codes","createdAt":"2015-12-08T19:17:55.122Z","excerpt":"","project":"5646482fa74cd10d00a3f014","sync_unique":"","type":"basic","user":"55e87bcdc5bccb2d008a9ba4","githubsync":"","link_external":false,"link_url":"","parentDoc":null,"updates":[],"version":"56f4385b3d35720e00ba9839","category":"56f4385b3d35720e00ba9841","hidden":false,"title":"Response Codes","childrenPages":[]}

Response Codes


Below is a reference of response codes provided from the Validic API:

A sample response object:

 {
 "code": 401,
 "message", "Unauthorized"
}
Code
Message
Description

200

Ok

Request was successful

201

Created

POST request was successfully created

401

Unauthorized

Request was not authorized

403

Forbidden

Request was forbidden, wrong access token supplied

404

Not Found

Resource was not found

406

Not Acceptable

Supplied POST data was not accepted

409

Conflict

Resource could not processed due to a conflict (e.g. user already exists)

422

Unprocessed Entity

Resource could not be processed, wrong parameters or credentials supplied

429

Limit Exceeded

Resource could not be processed, maximum number of request to the resource was exceeded

{"_id":"56f4385b3d35720e00ba9852","slug":"faq","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"category":"56f4385b3d35720e00ba9841","excerpt":"","hidden":false,"isReference":false,"project":"5646482fa74cd10d00a3f014","__v":0,"link_external":false,"link_url":"","order":7,"user":"55e87bcdc5bccb2d008a9ba4","version":"56f4385b3d35720e00ba9839","parentDoc":null,"sync_unique":"","title":"FAQ","type":"basic","updates":["56671cd466debc1700503f15","56671e1eee53940d00516230","56685a6005cae40d00bea86e"],"body":"###What types of data do you collect from your multiple device and app vendors?\nThe primary categories are Fitness, Routine, Nutrition, Sleep, Weight, Diabetes and Biometric data.\n\n###How do you get the data from the devices?\nGathering data from each of the device/app manufacturers is one of the key values we deliver to our customers. For most apps/devices we maintain connections directly through their open API. In some cases, we connect directly to the device/system or they write directly to us. Validic also has a proprietary mobile application and SDK that captures data from non-networked Bluetooth LE enabled devices. Once your users allow your application access to these apps/devices in the marketplace, we will pull their de-identified data into our system.\n\n###Do we need to set up a direct deal with each of these apps or devices or is that all done through you?\nIt’s all done through us. You simply need to work with our API and it is our job to manage each app and device.\n\n###How does the data get to us? Does the data push to us or do we have to pull from you?\nYou can pull data from us anytime with no call limits. Our Enterprise customers may also register push notification URL’s with us in order to receive pub-sub notifications when new data is available for your end users so you can initiate a fetch to pull data.\n\n###How often is the data updated? How long until someone sees their data appear?\n\nWe have a bountiful Knowledge Base containing many articles to help our customers have information such as this at their fingertips. Please view the [Data Sync Time by Source](https://support.validic.com/customer/portal/articles/1659715) article for details regarding this topic. You can also learn more[ here](https://vimeo.com/122855666). \n\n###When the data comes to me, what form is it in?\nData delivered from the Validic API comes as clean, complete and actionable JSON data that has been standardized and normalized to allow you to put that data to use much more quickly and efficiently.\n\n###Are units of measure published? Is everything standardized?\nYes, a major part of our value is that we give you clean, complete and actionable data that is both standardized and normalized. We standardize all nomenclature so steps are always steps, not steps taken or strides, for example.We normalize all units so distances are always in meters, not yards or miles, and time is in seconds for example. This is all explained in detail in the [data objects section](doc:request-parameters) of our API Documentation.\n\n###How long does it take to deploy?\nThis depends on how deeply you want to integrate with​ our system and your current stage of development. One of the many values Validic provides is an easy to work with, scalable API that can quickly be integrated with your system. We’ve had some clients begin making calls within a matter of hours. However, a typical implementation will last 2-10 weeks. We are very hands on during the implementation process including a technical kickoff call, a discussion of potential trouble spots, best practices, ongoing support and resources pre and post go live.\n\n###How does the Validic Marketplace fit into our app/portal?\nThere are two ways of implementing the Validic Marketplace.\n1. Deploying the Validic Standard HTML5 Marketplace.\n2. Building your own marketplace/user experience via one simple API call providing all the\nneeded data end points and URL’s to do so.\n\nMore information on deploying the Validic Marketplace can be found in the [Sync Apps & Devices](doc:standard-marketplace) section of our API Documentation.\n\n###Can you customize which apps/devices are displayed in the Marketplace?\nYes, you can curate which apps and devices you would like users to have access to.\n\n###Do I need to load Validic on my servers?\nNo, we are a remotely managed API so there is nothing to install.\n\n###Can we get developer data to get started?\nYes, once you’ve signed an NDA we can discuss next steps in providing you with all of the information you need to test the Validic system and determine that it is a viable solution for your needs.\n\n###What is the difference between Sandbox and Production credentials?\nBoth sets of organization credentials provide full access to partners, apps, devices and data. However, the Sandbox credentials, primarily used during testing, do not allow customer branding of the Marketplace. Thus, in the Sandbox environment, all end (test) users will see Validic branding when asked to authenticate.\n\n###What is the user provisioning and authentication process?\nThe user provisioning and authentication process, as Validic refers to it, is a series of two ID (token) exchange mechanisms, or handshakes, that ultimately enables your end user data to remain completely safe, secure and de-identified. This means, through this process, Validic adheres to US-EU-Swiss Safeharbor certification requirements and is fully HIPAA compliant. For technical details regarding this topic, please refer to the [User Provisioning](doc:user-provisioning) section of our API Documentation.\n\n###How long do you keep the data?\nIn compliance with HIPAA standards, Validic persists de-identified data for a minimum of 7 years.\n\n###Can we see which device the data came from?\nYes, all data records returned from Validic are sourced. More information regarding data sources and filters can be found in the [Data Retrieval](doc:data-retrieval) section of our API Documentation.\n\n###Do you have any SDKs (software development kits) or libraries?\nSince we have a straightforward API which is easy to deploy we do not offer an SDK for API integrations. Enterprise customers may discuss mobile app SDK availability with their sales person. We do offer/recommend certain OAuth2 libraries for Ruby and C# which can be found in the [API Libraries](doc:validic-api-libraries) section of our API Documentation.\n\n###Can the standard/default marketplace be used in an iframe?\nThe standard marketplace is built in HTML5 and can, therefore, be used in an iframe. However, it is important to note, that some of the device vendors’ OAuth pages do not render properly in an iframe. Therefore, Validic does not recommend the use of an iframe as a means to display the standard marketplace.\n\n###Is it possible for it to say that our company is requesting access to the data, not Validic?\nYes, that is our standard practice. That said, this is only available with Production credentials and not available with Sandbox credentials.\n\n###When we authenticate a user through the marketplace, does the Validic server store the OAuth token on behalf of our client app or are the client credentials created in a totally different mechanism between the individual cloud server and Validic?\nValidic stores and maintains the OAuth client credentials for each of the integrated partners (Fitbit, Withings, Jawbone, etc.) and our customers only have to be concerned with managing the one connection with Validic.\n\n###Does the OAuth token expire?\nNo, but we offer an OAuth refresh if desired.\n\n###Can the verbiage of the UI be customized?\nThe standard marketplace has limited customization; however, our Enterprise customers have the option to deploy the custom marketplace in which case they may create their own user interface.\n\n###Is the current marketplace web view responsive on mobile?\nYes. Validic is platform and device agnostic.\n\n###Can we download the entire data set instead of one end user at a time?\nWe only allow data to be accessed for those end users who have authenticated with app/device vendors and we do not sell or permit downloads of the entire data set. Data calls to the Validc API may be made at the organization (population) or user level and additional bulk population level data delivery calls are available as well. For more information, please visit the [Data Retrieval](doc:data-retrieval) section of our API Documentation.\n\n###If someone was terminated from a company would we have to manually delete them from the Validic system?\nYes, you would send use a DELETE call accompanied by the user access token which results in the deletion of the user and any of their activities in our system. For details on this, please visit the [Delete Users](doc:delete-users) section of our API Documentation.\n\n###How does the duplication work with multiple apps? What if their run is tracked by multiple apps and devices?\nWe don’t make assumptions about the data and will return data returned by both devices. The exception is when a single device may upload the same activity to multiple vendors’ websites, in which case we de-dupe that record.\n\n###Is there any non-identifiable demographic information that is available for users?\nYes, if it is available from the app/device vendor, we are able to collect and supply Gender, State, Country, Birth Year, Height and Weight.\n\n###Are all of the apps pull? Or do some of the apps push data as well?\nWe receive push notifications from some of our integration partners. We fetch data on regular intervals for the remaining vendors.\n\n###Do you pull directly from devices or when they are synced?\nWe interact with the web presence (when it becomes available to their cloud), not to the actual hardware. The exception is Validic’s proprietary mobile application and SDK that captures data directly from BLE clinical devices.\n\n###Do you collect any extra data?\nSome non-standardized data points, such as Nike Fuel Points, can be made available through an expanded filter. For more information regarding data filters please visit the [Data Retrieval](doc:data-retrieval) section of our API Documentation.\n\n###How do you deal with time zones​?\nThis varies depending on our vendor integration partner. For more information, please read the [Timestamp Format & UTC Timezone Offset Support](https://support.validic.com/customer/portal/articles/1754962) article.\n\n###Is the data encrypted?\nYes, the data is encrypted in transit and at rest via 256-bit encryption.\n\n###Who owns that data?\nValidic does not make any claims regarding the ownership of the data and ultimately your end users own that data thus enabling them the ability to retract access to their data.\n\n###Can access tokens be sent using an Authorization HTTP Header?\nYes. Here are two ways to make an API call with the Access Token added as an\nAuthorization HTTP Header:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"curl -X GET -H ‘Authorization: Token token={ACCESS_TOKEN}’\\nhttps://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json\",\n      \"language\": \"curl\",\n      \"name\": \"Via cURL:\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json -H ‘Authorization:Token token={ACCESS_TOKEN}’\",\n      \"language\": \"http\",\n      \"name\": \"via Standard REST template with Authorization HTTP Headers:\"\n    }\n  ]\n}\n[/block]\n\n###What is the difference between using the latest.json endpoint and push notifications?\nThe primary difference is that push notifications are intended for real time, individual user-level data delivery, while the latest.json endpoint is intended for near real time, bulk population-level data delivery. For more information, please read our knowledgebase article: [Latest endpoint vs. Push Notifications](https://support.validic.com/customer/portal/articles/1486637).\n\n###How do I reset or re-acquire a user’s authentication token?\nShould you require resetting or re-acquiring a user’s authentication token (the authentication token is provided in our API response when the user is provisioned in our system), you may make a GET request call for a new user authentication token:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{VALIDIC_USER_ID}/\\nrefresh_token.json?access_token={ACCESS_TOKEN}\\n\\n{  \\n   \\\"code\\\":200,\\n   \\\"message\\\":\\\"Ok\\\",\\n   \\\"user\\\":{  \\n      \\\"id_\\\":\\\"51552cd7fded0SAMPLE00017\\\",\\n      \\\"uid\\\":\\\"1234567890\\\",\\n      \\\"authentication_token\\\":\\\"uXek7RK2wSAMPLERv5Q\\\"\\n   }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n###How do I paginate through large record sets?\nWhen making API calls, it is normal for a given scope (“start_date” and “end_date” of an API call)to include a large record resultset. However, only 100 of these records would be included in the response, up to a maximum of 200 records by adding a “limit” parameter. In order to access the rest of the records in the result set, you may then use the “next” attribute of the Summary object in the API response. The value of “next” is a full HTTP resource that you can use to make an API request and retrieve the next set of records in the resultset. Please note that the succeeding response may as well contain value for the “next” attribute.\n\n###Is there an endpoint that returns all the activities (routine, fitness, weight, etc) for a user for a requested period of time?\nWe do not have a feature to return all activities of a specific user at a certain period of time. We only return activity records per endpoint (Fitness, Routine, Nutrition, Sleep, Weight, Diabetes, and Biometrics).\n\n###I am getting a 409 error when provisioning a user, how do I resolve this?\nThere may be cases where you were unable to save the user’s Validic ID and Access Token during User Provisioning. When you try to provision the same user using the same `uid`, you get a 409 Conflict Response. For more information regarding steps to resolution, please visit our [How to resolve 409 Conflict](https://support.validic.com/customer/portal/articles/1507179) knowledge base article.\n\n###Can we get the total number of users who have already connected an app?\nThere are three options you may use in order to capture the total number of your users who have already connected an app.\n\nThe first option is by making an OrganizationID.json API Call. In the API response, you will be able to retrieve the total number of users who have already connect an app by looking at the “users” field. You may be able to do this by making the sample API Call:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json?access_token={ORGANIZATION_ACCESS_TOKEN}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\nThe second option is by making the Users.json API Call and appending the parameter “status=active”. Here, you are able to verify the Validic USER IDs or “_id” with each having a corresponding “uid” or the users’ unique identification used when they were provisioned. The API response using this API Call will enable you to see the total number of active users, which by definition mean that they have already connected at least one app. You may be able to do this by making the sample API Call:\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json?access_token={ORGANIZATION_ACCESS_TOKEN}&status=active\",\n      \"language\": \"text\"\n    }\n  ]\n}\n[/block]\n\nThe third option is by making the Profile.json API Call. The Profile.json endpoint provides a listing of applications currently synced by user, which will give you the benefit of aggregating the total number of users who have synced a particular application. To do this, you may loop through each of your users and make the following API call below:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"GET https://api.validic.com/v1/profile.json?authentication_token={USER_ACCESS_TOKEN}\\n\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n\n###Why are we receiving 404 errors when using the Validic standard marketplace?\nWhen using the Validic standard marketplace, users may encounter 404 errors when accessing the Marketplace. This is normally caused by the following:\n  * missing or invalid User Access Token in the Marketplace URL\n  * missing or invalid Organization ID in the Marketplace URL\n  \nWhen this occurs, you may troubleshoot by making sure the proper Organization ID and the user’s current User Access Token are correctly supplied in the URL.\n\n###Can we sync one vendor account into multiple Validic users?\nYes and no, the behavior is typically dependent on the authorization process of the app. For additional information, please read our [knowledge base article](https://support.validic.com/customer/portal/articles/1661588) on the topic.","createdAt":"2015-12-04T23:46:03.084Z","githubsync":"","childrenPages":[]}

FAQ


What types of data do you collect from your multiple device and app vendors?

The primary categories are Fitness, Routine, Nutrition, Sleep, Weight, Diabetes and Biometric data.

How do you get the data from the devices?

Gathering data from each of the device/app manufacturers is one of the key values we deliver to our customers. For most apps/devices we maintain connections directly through their open API. In some cases, we connect directly to the device/system or they write directly to us. Validic also has a proprietary mobile application and SDK that captures data from non-networked Bluetooth LE enabled devices. Once your users allow your application access to these apps/devices in the marketplace, we will pull their de-identified data into our system.

Do we need to set up a direct deal with each of these apps or devices or is that all done through you?

It’s all done through us. You simply need to work with our API and it is our job to manage each app and device.

How does the data get to us? Does the data push to us or do we have to pull from you?

You can pull data from us anytime with no call limits. Our Enterprise customers may also register push notification URL’s with us in order to receive pub-sub notifications when new data is available for your end users so you can initiate a fetch to pull data.

How often is the data updated? How long until someone sees their data appear?

We have a bountiful Knowledge Base containing many articles to help our customers have information such as this at their fingertips. Please view the Data Sync Time by Source article for details regarding this topic. You can also learn more here.

When the data comes to me, what form is it in?

Data delivered from the Validic API comes as clean, complete and actionable JSON data that has been standardized and normalized to allow you to put that data to use much more quickly and efficiently.

Are units of measure published? Is everything standardized?

Yes, a major part of our value is that we give you clean, complete and actionable data that is both standardized and normalized. We standardize all nomenclature so steps are always steps, not steps taken or strides, for example.We normalize all units so distances are always in meters, not yards or miles, and time is in seconds for example. This is all explained in detail in the data objects section of our API Documentation.

How long does it take to deploy?

This depends on how deeply you want to integrate with​ our system and your current stage of development. One of the many values Validic provides is an easy to work with, scalable API that can quickly be integrated with your system. We’ve had some clients begin making calls within a matter of hours. However, a typical implementation will last 2-10 weeks. We are very hands on during the implementation process including a technical kickoff call, a discussion of potential trouble spots, best practices, ongoing support and resources pre and post go live.

How does the Validic Marketplace fit into our app/portal?

There are two ways of implementing the Validic Marketplace.

  1. Deploying the Validic Standard HTML5 Marketplace.
  2. Building your own marketplace/user experience via one simple API call providing all the
    needed data end points and URL’s to do so.

More information on deploying the Validic Marketplace can be found in the Sync Apps & Devices section of our API Documentation.

Can you customize which apps/devices are displayed in the Marketplace?

Yes, you can curate which apps and devices you would like users to have access to.

Do I need to load Validic on my servers?

No, we are a remotely managed API so there is nothing to install.

Can we get developer data to get started?

Yes, once you’ve signed an NDA we can discuss next steps in providing you with all of the information you need to test the Validic system and determine that it is a viable solution for your needs.

What is the difference between Sandbox and Production credentials?

Both sets of organization credentials provide full access to partners, apps, devices and data. However, the Sandbox credentials, primarily used during testing, do not allow customer branding of the Marketplace. Thus, in the Sandbox environment, all end (test) users will see Validic branding when asked to authenticate.

What is the user provisioning and authentication process?

The user provisioning and authentication process, as Validic refers to it, is a series of two ID (token) exchange mechanisms, or handshakes, that ultimately enables your end user data to remain completely safe, secure and de-identified. This means, through this process, Validic adheres to US-EU-Swiss Safeharbor certification requirements and is fully HIPAA compliant. For technical details regarding this topic, please refer to the User Provisioning section of our API Documentation.

How long do you keep the data?

In compliance with HIPAA standards, Validic persists de-identified data for a minimum of 7 years.

Can we see which device the data came from?

Yes, all data records returned from Validic are sourced. More information regarding data sources and filters can be found in the Data Retrieval section of our API Documentation.

Do you have any SDKs (software development kits) or libraries?

Since we have a straightforward API which is easy to deploy we do not offer an SDK for API integrations. Enterprise customers may discuss mobile app SDK availability with their sales person. We do offer/recommend certain OAuth2 libraries for Ruby and C# which can be found in the API Libraries section of our API Documentation.

Can the standard/default marketplace be used in an iframe?

The standard marketplace is built in HTML5 and can, therefore, be used in an iframe. However, it is important to note, that some of the device vendors’ OAuth pages do not render properly in an iframe. Therefore, Validic does not recommend the use of an iframe as a means to display the standard marketplace.

Is it possible for it to say that our company is requesting access to the data, not Validic?

Yes, that is our standard practice. That said, this is only available with Production credentials and not available with Sandbox credentials.

When we authenticate a user through the marketplace, does the Validic server store the OAuth token on behalf of our client app or are the client credentials created in a totally different mechanism between the individual cloud server and Validic?

Validic stores and maintains the OAuth client credentials for each of the integrated partners (Fitbit, Withings, Jawbone, etc.) and our customers only have to be concerned with managing the one connection with Validic.

Does the OAuth token expire?

No, but we offer an OAuth refresh if desired.

Can the verbiage of the UI be customized?

The standard marketplace has limited customization; however, our Enterprise customers have the option to deploy the custom marketplace in which case they may create their own user interface.

Is the current marketplace web view responsive on mobile?

Yes. Validic is platform and device agnostic.

Can we download the entire data set instead of one end user at a time?

We only allow data to be accessed for those end users who have authenticated with app/device vendors and we do not sell or permit downloads of the entire data set. Data calls to the Validc API may be made at the organization (population) or user level and additional bulk population level data delivery calls are available as well. For more information, please visit the Data Retrieval section of our API Documentation.

If someone was terminated from a company would we have to manually delete them from the Validic system?

Yes, you would send use a DELETE call accompanied by the user access token which results in the deletion of the user and any of their activities in our system. For details on this, please visit the Delete Users section of our API Documentation.

How does the duplication work with multiple apps? What if their run is tracked by multiple apps and devices?

We don’t make assumptions about the data and will return data returned by both devices. The exception is when a single device may upload the same activity to multiple vendors’ websites, in which case we de-dupe that record.

Is there any non-identifiable demographic information that is available for users?

Yes, if it is available from the app/device vendor, we are able to collect and supply Gender, State, Country, Birth Year, Height and Weight.

Are all of the apps pull? Or do some of the apps push data as well?

We receive push notifications from some of our integration partners. We fetch data on regular intervals for the remaining vendors.

Do you pull directly from devices or when they are synced?

We interact with the web presence (when it becomes available to their cloud), not to the actual hardware. The exception is Validic’s proprietary mobile application and SDK that captures data directly from BLE clinical devices.

Do you collect any extra data?

Some non-standardized data points, such as Nike Fuel Points, can be made available through an expanded filter. For more information regarding data filters please visit the Data Retrieval section of our API Documentation.

How do you deal with time zones​?

This varies depending on our vendor integration partner. For more information, please read the Timestamp Format & UTC Timezone Offset Support article.

Is the data encrypted?

Yes, the data is encrypted in transit and at rest via 256-bit encryption.

Who owns that data?

Validic does not make any claims regarding the ownership of the data and ultimately your end users own that data thus enabling them the ability to retract access to their data.

Can access tokens be sent using an Authorization HTTP Header?

Yes. Here are two ways to make an API call with the Access Token added as an
Authorization HTTP Header:

curl -X GET -H ‘Authorization: Token token={ACCESS_TOKEN}’
https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json
GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json -H ‘Authorization:Token token={ACCESS_TOKEN}’

What is the difference between using the latest.json endpoint and push notifications?

The primary difference is that push notifications are intended for real time, individual user-level data delivery, while the latest.json endpoint is intended for near real time, bulk population-level data delivery. For more information, please read our knowledgebase article: Latest endpoint vs. Push Notifications.

How do I reset or re-acquire a user’s authentication token?

Should you require resetting or re-acquiring a user’s authentication token (the authentication token is provided in our API response when the user is provisioned in our system), you may make a GET request call for a new user authentication token:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users/{VALIDIC_USER_ID}/
refresh_token.json?access_token={ACCESS_TOKEN}

{  
   "code":200,
   "message":"Ok",
   "user":{  
      "id_":"51552cd7fded0SAMPLE00017",
      "uid":"1234567890",
      "authentication_token":"uXek7RK2wSAMPLERv5Q"
   }
}

How do I paginate through large record sets?

When making API calls, it is normal for a given scope (“start_date” and “end_date” of an API call)to include a large record resultset. However, only 100 of these records would be included in the response, up to a maximum of 200 records by adding a “limit” parameter. In order to access the rest of the records in the result set, you may then use the “next” attribute of the Summary object in the API response. The value of “next” is a full HTTP resource that you can use to make an API request and retrieve the next set of records in the resultset. Please note that the succeeding response may as well contain value for the “next” attribute.

Is there an endpoint that returns all the activities (routine, fitness, weight, etc) for a user for a requested period of time?

We do not have a feature to return all activities of a specific user at a certain period of time. We only return activity records per endpoint (Fitness, Routine, Nutrition, Sleep, Weight, Diabetes, and Biometrics).

I am getting a 409 error when provisioning a user, how do I resolve this?

There may be cases where you were unable to save the user’s Validic ID and Access Token during User Provisioning. When you try to provision the same user using the same uid, you get a 409 Conflict Response. For more information regarding steps to resolution, please visit our How to resolve 409 Conflict knowledge base article.

Can we get the total number of users who have already connected an app?

There are three options you may use in order to capture the total number of your users who have already connected an app.

The first option is by making an OrganizationID.json API Call. In the API response, you will be able to retrieve the total number of users who have already connect an app by looking at the “users” field. You may be able to do this by making the sample API Call:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}.json?access_token={ORGANIZATION_ACCESS_TOKEN}

The second option is by making the Users.json API Call and appending the parameter “status=active”. Here, you are able to verify the Validic USER IDs or “_id” with each having a corresponding “uid” or the users’ unique identification used when they were provisioned. The API response using this API Call will enable you to see the total number of active users, which by definition mean that they have already connected at least one app. You may be able to do this by making the sample API Call:

GET https://api.validic.com/v1/organizations/{ORGANIZATION_ID}/users.json?access_token={ORGANIZATION_ACCESS_TOKEN}&status=active

The third option is by making the Profile.json API Call. The Profile.json endpoint provides a listing of applications currently synced by user, which will give you the benefit of aggregating the total number of users who have synced a particular application. To do this, you may loop through each of your users and make the following API call below:

GET https://api.validic.com/v1/profile.json?authentication_token={USER_ACCESS_TOKEN}

Why are we receiving 404 errors when using the Validic standard marketplace?

When using the Validic standard marketplace, users may encounter 404 errors when accessing the Marketplace. This is normally caused by the following:

  • missing or invalid User Access Token in the Marketplace URL
  • missing or invalid Organization ID in the Marketplace URL

When this occurs, you may troubleshoot by making sure the proper Organization ID and the user’s current User Access Token are correctly supplied in the URL.

Can we sync one vendor account into multiple Validic users?

Yes and no, the behavior is typically dependent on the authorization process of the app. For additional information, please read our knowledge base article on the topic.

{"_id":"56f4385b3d35720e00ba9854","parentDoc":null,"type":"basic","updates":[],"version":"56f4385b3d35720e00ba9839","api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]}},"category":"56f4385b3d35720e00ba9841","hidden":false,"order":8,"link_url":"","createdAt":"2015-12-08T19:13:36.830Z","excerpt":"","isReference":false,"link_external":false,"title":"Validic API Libraries","__v":0,"githubsync":"","slug":"validic-api-libraries","body":"OAuth 2 uses request signing to avoid sending shared secrets between the client and server any more than necessary. It’s easy to get request signing wrong, so we recommend using an established OAuth 2 client library rather than implementing the specification yourself.\n\nRecommended libraries:\n\nC# – [Validic C# Wrapper](https://github.com/Validic/ValidicCSharpWrapper/) and [examples](https://github.com/Validic/ValidicCSharpWrapper/blob/master/ValidicCSharpTests/ClientTests.cs)\nRuby – [Validic gem](https://github.com/Validic): gem install validic\n\nNot seeing the library you’re looking for? We’re working on them. In the mean time, here are some OAuth libraries to help get you started. A more complete list of OAuth libraries can be found at http://oauth.net/code/.\n\nDotNET – [DotNetOpenAuth](http://dotnetopenauth.net/)\nColdFusion – [ColdFusion OAuth](http://oauth.riaforge.org/)\nJava – [Scribe](https://github.com/fernandezpablo85/scribe-java)\nPHP – There are multiple PHP OAuth libraries. Here is an [official extension](http://php.net/oauth).\nPython – [Validic gem](https://github.com/litl/rauth)","project":"5646482fa74cd10d00a3f014","sync_unique":"","user":"55e87bcdc5bccb2d008a9ba4","childrenPages":[]}

Validic API Libraries


OAuth 2 uses request signing to avoid sending shared secrets between the client and server any more than necessary. It’s easy to get request signing wrong, so we recommend using an established OAuth 2 client library rather than implementing the specification yourself.

Recommended libraries:

C# – Validic C# Wrapper and examples
Ruby – Validic gem: gem install validic

Not seeing the library you’re looking for? We’re working on them. In the mean time, here are some OAuth libraries to help get you started. A more complete list of OAuth libraries can be found at http://oauth.net/code/.

DotNET – DotNetOpenAuth
ColdFusion – ColdFusion OAuth
Java – Scribe
PHP – There are multiple PHP OAuth libraries. Here is an official extension.
Python – Validic gem