Documentation
Anonymized, k-anonymity-gated aggregates from a young-adult health panel: survey distributions, symptom radar, behavioral cohorts and AI signal reports, as plain JSON over HTTPS. Base URL: https://saviorofhealth.app/api/v1
No individual records. Slices under k=5 are suppressed server-side.
Keys issued per organization after manual review. Revocable any time.
Per-plan daily limits. Every call is logged.
Authentication
Every request needs your access key in the Authorization header. Keys look like hs_live_…, are shown exactly once at issuance, and are stored by us only as a SHA-256 hash. Each key carries scopes (e.g. insights:read). Calls outside your scopes return 403.
curl https://saviorofhealth.app/api/v1/insights \ -H "Authorization: Bearer hs_live_xxxxxxxxxxxxxxxxxxxx"
Plans & rate limits
Limits reset at 00:00 UTC. Exceeding them returns 429. Check consumption any time via /api/v1/meta/usage.
k-Anonymity
Every aggregate slice must contain at least k = 5 distinct respondents. Below that, the API suppresses the slice: distributions return empty with "suppressed": true, time-series points return "value": null. This is enforced server-side and cannot be bypassed by any key. Raw personal records are never exposed through any endpoint. Every response carries the license line: aggregate-only, no re-identification.
/api/v1/surveysinsights:readCatalog of every active survey question on the panel, with live response volume. Use the returned key with /insights/{key}.
curl https://saviorofhealth.app/api/v1/surveys \ -H "Authorization: Bearer $HS_KEY"
{
"surveys": [
{
"key": "survey-sleep",
"type": "survey",
"category": "sleep",
"question": "How many hours did you sleep last night?",
"options": ["Under 5", "5–6", "7–8", "8 or more"],
"predict": true,
"sponsor": "Longevity Research Collective",
"responses": 1204
}
]
}/api/v1/insightsinsights:readAnswer distributions + age-cohort splits for every survey that clears the k-anonymity gate.
curl https://saviorofhealth.app/api/v1/insights \ -H "Authorization: Bearer $HS_KEY"
{
"insights": [
{
"key": "survey-sleep",
"question": "How many hours did you sleep last night?",
"n": 1204,
"breakdown": [ { "option": "7–8", "n": 496, "pct": 41.2 } ],
"cohorts": [ { "cohort": "25–29", "topAnswer": "5–6", "pct": 39, "n": 402 } ]
}
]
}/api/v1/insights/{key}insights:readOne survey in depth: full distribution, cohort splits and a daily response trend.
keypathSurvey key from /surveys (e.g. survey-sleep)daysquery · int · default 30Trend window, max 365curl "https://saviorofhealth.app/api/v1/insights/survey-sleep?days=30" \ -H "Authorization: Bearer $HS_KEY"
{
"insight": {
"key": "survey-sleep",
"n": 1204,
"breakdown": [ { "option": "7–8", "n": 496, "pct": 41.2 } ],
"cohorts": [ { "cohort": "25–29", "topAnswer": "5–6", "pct": 39, "n": 402 } ],
"trend": [ { "date": "2026-07-01", "n": 88 } ]
}
}/api/v1/radarradar:readLive symptom prevalence across the panel with 3-day trend deltas. An early-warning signal for what young adults are feeling right now.
regionquery · string · optionalMacro-region filter (e.g. East Asia). Omit for Global.curl "https://saviorofhealth.app/api/v1/radar?region=East%20Asia" \ -H "Authorization: Bearer $HS_KEY"
{
"radar": {
"region": "East Asia",
"signals": [
{
"key": "symptom-today",
"question": "Anything bothering you today?",
"n": 861,
"items": [
{ "option": "Fatigue", "n": 292, "pct": 33.9, "deltaPct3d": +4.1 }
]
}
]
}
}/api/v1/cohortscohorts:readBehavioral averages from health logs, grouped by age cohort or region: sleep hours, water intake, mood, exercise, meditation.
metricquery · enumsleep | water | mood | exercise | meditationbyquery · enum · default ageage | regiondaysquery · int · default 30Aggregation window, max 365curl "https://saviorofhealth.app/api/v1/cohorts?metric=sleep&by=age&days=30" \ -H "Authorization: Bearer $HS_KEY"
{
"cohorts": {
"metric": "sleep",
"unit": "hours",
"groups": [
{ "group": "25–29", "avg": 6.4, "samples": 512, "n": 138 }
]
}
}/api/v1/trendstrends:readDaily time series for any metric. Days with fewer than k distinct users return value: null with suppressed: true.
metricquery · enum · default responsesresponses | sleep | water | mood | exercise | meditationdaysquery · int · default 30Window, max 365curl "https://saviorofhealth.app/api/v1/trends?metric=mood&days=30" \ -H "Authorization: Bearer $HS_KEY"
{
"trends": {
"metric": "mood",
"series": [
{ "date": "2026-07-01", "value": 3.6, "n": 74 },
{ "date": "2026-07-02", "value": null, "n": 3, "suppressed": true }
]
}
}/api/v1/demographicsdemographics:readPanel composition: how many respondents per age cohort and macro-region.
curl https://saviorofhealth.app/api/v1/demographics \ -H "Authorization: Bearer $HS_KEY"
{
"demographics": {
"panelSize": 4210,
"ageCohorts": [ { "group": "25–29", "n": 1382 } ],
"regions": [ { "group": "East Asia", "n": 2114 } ]
}
}/api/v1/panelpanel:readPanel health: total size, lifetime response volume, and a daily-active-users series.
daysquery · int · default 30DAU window, max 365curl "https://saviorofhealth.app/api/v1/panel?days=30" \ -H "Authorization: Bearer $HS_KEY"
{
"panel": {
"panelSize": 4210,
"totalResponses": 58211,
"dailyActive": [ { "date": "2026-07-01", "activeUsers": 311 } ]
}
}/api/v1/campaignscampaigns:readEvery live commissioned campaign with its questions and response volumes.
curl https://saviorofhealth.app/api/v1/campaigns \ -H "Authorization: Bearer $HS_KEY"
{
"campaigns": [
{
"key": "meridian-metabolic",
"org": "Meridian Metabolic Clinic",
"kind": "clinical",
"live": true,
"questions": [ { "key": "survey-metabolic", "responses": 412 } ]
}
]
}/api/v1/my/campaignscampaigns:readFull results for campaigns commissioned by YOUR organization (matched by org name). Powers the Partner Portal. Clinicians can also view this in a dashboard at /partner.
curl https://saviorofhealth.app/api/v1/my/campaigns \ -H "Authorization: Bearer $HS_KEY"
{
"org": "Meridian Metabolic Clinic",
"campaigns": [
{
"key": "meridian-metabolic",
"title": "Metabolic health & GLP-1 awareness (Q3)",
"results": [
{
"question": "Have you tried or considered a GLP-1 product?",
"n": 412,
"breakdown": [ { "option": "Considering it", "n": 178, "pct": 43.2 } ],
"cohorts": [ { "cohort": "25–29", "pct": 47, "n": 156 } ],
"trend": [ { "date": "2026-07-01", "n": 31 } ]
}
]
}
]
}/api/v1/reports/weeklyreports:readAn AI-written narrative signal report over the panel's recent data: bullet insights with numbers plus a "watch next week" line. Cached for 15 minutes.
curl https://saviorofhealth.app/api/v1/reports/weekly \ -H "Authorization: Bearer $HS_KEY"
{
"report": "• Fatigue mentions rose 4.1pp over 3 days, led by the 25–29 cohort…",
"cachedForMinutes": 15
}/api/v1/meta/usageinsights:readYour key's consumption: calls today, lifetime total, plan and daily limit.
curl https://saviorofhealth.app/api/v1/meta/usage \ -H "Authorization: Bearer $HS_KEY"
{
"usage": { "org": "Acme Research", "plan": "pro", "today": 412, "total": 12894, "dailyLimit": 10000 }
}Errors
401Missing / invalid / revoked / expired key403Key lacks the required scope, or client not approved404Unknown resource (e.g. survey key)429Daily rate limit exceeded. Retry after 00:00 UTC400Invalid parameter (message explains which)All errors are JSON: { "error": "…" }
View your survey results in a dashboard at the Partner Portal with the same key, no code needed. Programmatic access: /api/v1/my/campaigns.
Apply for an API key
We review within 2 business days and reply by email.