curl --request GET \
--url https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status', 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.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get Garmin Backfill Status Endpoint
Get Garmin backfill status for backfill data types.
Deprecated. Backfill progress is reported through the provider-agnostic
sync run endpoints (/users/{user_id}/sync/runs, /users/{user_id}/sync/stream)
and the sync.started / sync.completed / sync.failed outgoing webhooks.
Per-type detail will move there as well; this endpoint will be removed once
that lands.
The backfill is webhook-based and auto-triggered after OAuth connection. Returns status for each data type independently. Max 30 days of history.
Response Fields:
overall_status: pending | in_progress | complete | retry_in_progresscurrent_window: Current window index (0-based)total_windows: Total number of 30-day windows (1)windows: Per-window-per-type matrix with done/pending/timed_out/failed statessummary: Per-type aggregated counts (done, timed_out, failed)in_progress: Whether backfill is currently running (true for in_progress or retry_in_progress)retry_phase: Whether the retry phase is currently activeretry_type: Data type currently being retried (null if not retrying)retry_window: Window index being retried (null if not retrying)
Window Cell States:
done: Data received via webhook or Garmin API error (treated as done)pending: Not yet processedtimed_out: No webhook received within timeout (warning)failed: Permanently failed after retry attempt (error)
curl --request GET \
--url https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status', 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.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/providers/garmin/users/{user_id}/backfill/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Path Parameters
Response
Successful Response
The response is of type Response Get Garmin Backfill Status Endpoint Api V1 Providers Garmin Users User Id Backfill Status Get · object.
Was this page helpful?

