Connected health infrastructure

One API for every
health data source

Unified connected-health data infrastructure. Stop building and maintaining provider integrations. Connect once, receive normalised data from any wearable through one consistent API.

3 live · 8 onboarding

Provider integrations

Real-time

Webhook delivery (Strava live)

Unified

Data model

Supported providers

Apple HealthGarminOuraFitbitWHOOPPolarStravaSamsung HealthGoogle FitSuuntoUltrahuman

How it works

From zero to production in three steps

01

Create your account

Sign up in seconds. No credit card required to start. Your developer account gets you dashboard access and your first API key immediately.

02

Connect providers

Add provider OAuth credentials once. Your end-users then connect their devices via our hosted widget or mobile SDK — you get the data.

03

Consume normalised events

Subscribe to webhooks or pull data via REST. Every payload follows the same schema regardless of source device or provider.

04

Add nutrition & energy balance

Upload meal photos or log dishes manually, then fuse the consumed-side macros with wearable burn via /energy_balance for daily calorie deficit tracking — no extra service to integrate.

Platform capabilities

Everything you need. Nothing you don't.

Normalised data model

Every provider's schema — workouts, sleep, recovery, body metrics — unified into one stable internal model. Your code doesn't change when providers change their APIs.

Real-time webhooks

Create signed outbound endpoints and react to ingestion events as they land. Backed by Svix for reliable delivery, retries, and per-endpoint logs.

Native iOS & Android SDKs

Swift package and Kotlin/JVM client cover providers, connections, summaries, and meal-photo upload. Both shipped as source today; Maven Central + CocoaPods publishing in flight.

Health scores & energy balance

Resilience, readiness, and recovery scores plus a daily calories-in vs calories-out endpoint that fuses wearable burn with nutrition intake.

Photo-first nutrition logging

Upload a meal photo, get back per-item dishes, grams, and macros — verified against a curated food database. AI vision recognises Indian thalis as well as Western plates.

Compliance-ready audit log

Every privileged action lands in an append-only audit log; export your full history as NDJSON with one curl for SOC 2 and customer security questionnaires.

Operator dashboard

Full-featured control plane: manage users, inspect sync history, toggle provider settings, monitor ingestion, and configure webhooks without fragmented tooling.

Security by default

API key authentication with rotation, token-scoped JWT sessions, bcrypt-hashed credentials, and signed webhook payloads out of the box.

Nutrition

Photo in, macros out. AI vision tuned for the real world.

Most nutrition APIs are built around US-centric food databases and stumble on a thali, a masala dosa, or a paneer butter masala. Our vision pipeline is trained against a curated regional-dish database that covers Indian and South-Asian staples alongside Western foods — and a low-confidence safety net routes ambiguous photos to human review instead of guessing.

  • Multi-item plates — thalis and combo meals are split into per-dish rows automatically.
  • Macro database — every recognised dish carries calories, protein, carbs, fat, fibre, sugar, and sodium per gram, sourced from USDA + curated regional entries.
  • Privacy-first — EXIF GPS coordinates are stripped before the photo touches storage. Period.
  • Fuses with wearable data — pair with the energy-balance endpoint to expose calories-in vs calories-out per day.
  • User correction loop — every PATCH is captured as a webhook event, so you can build "your team's most-corrected dishes" insight or feed back into a fine-tune dataset.
# Upload a meal photo
curl -H "Authorization: Bearer $TOKEN" \
-F "file=@thali.jpg" -F "meal_type=lunch" \
https://wearlink.io/api/v1/nutrition/log/image?user_id=$U
# 202 — recognition runs in the background
{ "log_id": "...", "status": "pending" }
# 12s later, GET the same log:
{
"status": "recognized",
"confidence_score": 0.87,
"vision_model": "claude-opus-4-7",
"items": [
{ "dish_name": "biryani",
"quantity_grams": 280,
"calories_kcal": 560,
"protein_g": 17, "carbs_g": 84,
"fat_g": 19.6 },
{ "dish_name": "raita",
"quantity_grams": 120,
"calories_kcal": 78, "protein_g": 4,
"carbs_g": 6, "fat_g": 4 }
]
}

Pricing

Start free, scale when you're ready

Our free tier gives you full platform access for up to 3 users. Upgrade to Developer or Scale when your product grows.