Endpoint
Copy
GET /api/v1/pulse/providers
Overview
Retrieve information about all health device providers available in the system, including their configuration status and capabilities.Request
Copy
curl http://localhost:18080/api/v1/pulse/providers
Response
Copy
{
"providers": [
{
"slug": "theta_garmin",
"name": "Garmin",
"description": "Garmin health data integration via OAuth",
"logo": "https://static.thetahealth.ai/res/garmin.png",
"supported": true,
"auth_type": "oauth1",
"status": "available"
},
{
"slug": "theta_whoop",
"name": "Whoop",
"description": "Whoop health data integration via OAuth",
"logo": "https://static.thetahealth.ai/res/whoop.png",
"supported": true,
"auth_type": "oauth2",
"status": "available"
}
]
}
Response Fields
Array of provider objects
Show Provider object
Show Provider object
Unique provider identifier (e.g.,
theta_garmin)Display name of the provider
Provider description and capabilities
URL to provider logo image
Whether the provider is currently supported
OAuth version:
oauth1 or oauth2Provider status:
available, unavailable, or maintenanceExample Usage
Copy
import aiohttp
async def list_providers():
async with aiohttp.ClientSession() as session:
async with session.get("http://localhost:18080/api/v1/pulse/providers") as resp:
providers = await resp.json()
return providers["providers"]
providers = await list_providers()
for provider in providers:
print(f"{provider['name']}: {provider['status']}")
Use the
slug field when linking providers or querying provider-specific data.