Introspect Historical Pulls
curl --request GET \
--url https://api.us.junction.com/v2/introspect/historical_pull \
--header 'x-vital-api-key: <api-key>'import requests
url = "https://api.us.junction.com/v2/introspect/historical_pull"
headers = {"x-vital-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-vital-api-key': '<api-key>'}};
fetch('https://api.us.junction.com/v2/introspect/historical_pull', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.us.junction.com/v2/introspect/historical_pull",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-vital-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.us.junction.com/v2/introspect/historical_pull"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-vital-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.us.junction.com/v2/introspect/historical_pull")
.header("x-vital-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.junction.com/v2/introspect/historical_pull")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-vital-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"provider": {
"fitbit": {
"not_pulled": [
"blood_oxygen"
],
"pulled": {
"activity": {
"days_with_data": 70,
"range_end": "2023-10-24T00:00:00+00:00",
"range_start": "2023-07-24T00:00:00+00:00",
"release": "0.0.0-dev.cd0e262",
"status": "success",
"timeline": {
"ended_at": "2023-10-24T13:53:59+00:00",
"scheduled_at": "2023-10-24T13:52:51+00:00",
"started_at": "2023-10-24T13:52:54+00:00"
},
"trace_id": "51cc7d2d72e98ed4eb63e2b0864b39e3"
},
"sleep": {
"days_with_data": 70,
"error_details": "provider_rate_limit_exceeded",
"range_end": "2023-10-24T00:00:00+00:00",
"range_start": "2023-07-24T00:00:00+00:00",
"release": "0.0.0-dev.cd0e262",
"status": "retrying",
"timeline": {
"ended_at": "2023-10-24T13:53:04+00:00",
"scheduled_at": "2023-10-24T13:52:51+00:00",
"started_at": "2023-10-24T13:53:01+00:00"
},
"trace_id": "51cc7d2d72e98ed4eb63e2b0864b39e3"
}
}
}
},
"user_id": ""
}
],
"next_cursor": "None"
}{
"detail": "<unknown>"
}Debugging
Get historical pulls
List historical data pull records to track the progress and status of initial data backfills for connected providers.
GET
/
v2
/
introspect
/
historical_pull
Introspect Historical Pulls
curl --request GET \
--url https://api.us.junction.com/v2/introspect/historical_pull \
--header 'x-vital-api-key: <api-key>'import requests
url = "https://api.us.junction.com/v2/introspect/historical_pull"
headers = {"x-vital-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-vital-api-key': '<api-key>'}};
fetch('https://api.us.junction.com/v2/introspect/historical_pull', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.us.junction.com/v2/introspect/historical_pull",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-vital-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.us.junction.com/v2/introspect/historical_pull"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-vital-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.us.junction.com/v2/introspect/historical_pull")
.header("x-vital-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.junction.com/v2/introspect/historical_pull")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-vital-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"provider": {
"fitbit": {
"not_pulled": [
"blood_oxygen"
],
"pulled": {
"activity": {
"days_with_data": 70,
"range_end": "2023-10-24T00:00:00+00:00",
"range_start": "2023-07-24T00:00:00+00:00",
"release": "0.0.0-dev.cd0e262",
"status": "success",
"timeline": {
"ended_at": "2023-10-24T13:53:59+00:00",
"scheduled_at": "2023-10-24T13:52:51+00:00",
"started_at": "2023-10-24T13:52:54+00:00"
},
"trace_id": "51cc7d2d72e98ed4eb63e2b0864b39e3"
},
"sleep": {
"days_with_data": 70,
"error_details": "provider_rate_limit_exceeded",
"range_end": "2023-10-24T00:00:00+00:00",
"range_start": "2023-07-24T00:00:00+00:00",
"release": "0.0.0-dev.cd0e262",
"status": "retrying",
"timeline": {
"ended_at": "2023-10-24T13:53:04+00:00",
"scheduled_at": "2023-10-24T13:52:51+00:00",
"started_at": "2023-10-24T13:53:01+00:00"
},
"trace_id": "51cc7d2d72e98ed4eb63e2b0864b39e3"
}
}
}
},
"user_id": ""
}
],
"next_cursor": "None"
}{
"detail": "<unknown>"
}Overview
Diagnose user historical data unavailability through the User Resources Introspection API. This API offers detailed insights into all provider connections and collected historical resources of all users in your team, empowering you to perform an initial diagnosis of any user connection issue with ease.Please note that
user_limit is an upper bound and the endpoint can return data for fewer users.
This would be the case if any of the top selected users had no available resource information.Authorizations
Vital Team API Key
Query Parameters
Filter by user ID.
ℹ️ This enum is non-exhaustive.
Available options:
oura, fitbit, garmin, whoop, strava, renpho, peloton, wahoo, zwift, freestyle_libre, abbott_libreview, tandem_source, freestyle_libre_ble, eight_sleep, withings, apple_health_kit, manual, ihealth, google_fit, beurer_api, beurer_ble, omron, omron_ble, onetouch_ble, accuchek_ble, contour_ble, dexcom, dexcom_v3, hammerhead, my_fitness_pal, health_connect, samsung_health, polar, cronometer, kardia, whoop_v2, ultrahuman, my_fitness_pal_v2, map_my_fitness, runkeeper, google_health The cursor for fetching the next page, or null to fetch the first page.
Was this page helpful?