Get Providers
curl --request GET \
--url https://api.example.com/api/v1/oauth/providersimport requests
url = "https://api.example.com/api/v1/oauth/providers"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/oauth/providers', 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/oauth/providers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/oauth/providers"
req, _ := http.NewRequest("GET", url, nil)
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/oauth/providers")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/oauth/providers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"provider": "<string>",
"name": "<string>",
"has_cloud_api": true,
"is_enabled": true,
"icon_url": "<string>",
"live_sync_mode": "pull",
"live_sync_configurable": false,
"data_granularity": "daily"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Providers
Get Providers
Get providers with their configuration and metadata.
Query params:
- enabled_only: Filter to only enabled providers (default: False, returns all)
- cloud_only: Filter to only providers with cloud OAuth API (default: False)
Returns full provider details including name, icon_url, has_cloud_api, is_enabled.
GET
/
api
/
v1
/
oauth
/
providers
Get Providers
curl --request GET \
--url https://api.example.com/api/v1/oauth/providersimport requests
url = "https://api.example.com/api/v1/oauth/providers"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/oauth/providers', 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/oauth/providers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/oauth/providers"
req, _ := http.NewRequest("GET", url, nil)
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/oauth/providers")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/oauth/providers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"provider": "<string>",
"name": "<string>",
"has_cloud_api": true,
"is_enabled": true,
"icon_url": "<string>",
"live_sync_mode": "pull",
"live_sync_configurable": false,
"data_granularity": "daily"
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Query Parameters
Return only enabled providers
Return only cloud (OAuth) providers
Response
Successful Response
Provider identifier (e.g., 'apple', 'garmin')
Display name (e.g., 'Apple Health', 'Garmin')
Whether provider uses cloud OAuth API
Whether provider is enabled by admin
Relative URL to provider icon (e.g., '/static/provider-icons/garmin.svg'). Resolve against the API base URL.
Current live sync mode ('pull' or 'webhook'). Null for SDK-only providers.
Available options:
pull, webhook Whether the admin can switch live_sync_mode for this provider.
How finely 24/7 data is stored ('daily', 'hourly', 'raw'). Null = provider default.
Available options:
daily, hourly, raw 
