July Update 2026
Check out what we've been doing at Terra over the month of July 2026!
Backend 💾
Features
Models API is live! List available models with
GET /v2/modelsand run one on any of your users withGET /v2/models/run. Two models are generally available: Sleep Window (a personalised sleep-schedule recommendation) and Health Terrain. Runs are metered from your plan's creditsSleep Window works with any device that records sleep — no per-provider restrictions
Strength training per set — activities now carry the sets performed, starting with Fitbod and Hevy
New integration: Sensor Bio is out (Biostrap's successor) — existing Biostrap connections keep working; Biostrap is now deprecated
Realtime streaming tokens are now reusable — one token covers the connection and any reconnects until it expires
Planned workouts created on the provider side (e.g. by a coach) now include full details — title, description, planned metrics and structured steps — plus
start_date/end_datequery paramsFitbit nutrition now arrives by webhook
Huawei: 12 additional read scopes, including body temperature, reproductive health, heart health and emotion data
New
trigger_methodfield on laps distinguishes automatic distance splits from manual lapsSynthetic users now produce their first payloads within seconds of creation, and can be shaped like a specific provider with up to 30 days of history
Google Health sleep now includes nightly temperature deviation
Bugs
Fixed a bug where Garmin daily step / distance / calorie totals could be overwritten with partial mid-day sums
Fixed a bug where Garmin activity details were not delivered to destinations configured for FIT format
Fixed a bug where Garmin sleep latency was delivered in milliseconds instead of seconds
Fixed a bug where speed/pace targets on planned workouts did not render on COROS watches
Fixed a bug where Pixel Watch activities from Fitbit were typed as "Other"
Fixed a bug where sleep efficiency was on a 0–100 scale instead of 0–1 for Huawei and Somnofy
Fixed a bug where Health Connect sleep undercounted asleep time
Fixed a bug where Clue cycle, period and phase lengths were off by one day
Fixed a bug where Ultrahuman and Google blood glucose values were missing from body payloads
Fixed a bug where Runkeeper activity start times were in the wrong timezone
Fixed a bug where TrainerRoad activities stopped being fetched after TrainerRoad retired an endpoint
Fixed a bug where MyFitnessPal edits and deletions did not propagate, and nutrition could be duplicated on day boundaries
Fixed a bug where Withings connections were dropped when Withings rate-limited our requests
Fixed a bug where MongoDB destinations did not receive authentication payloads
Fixed a bug where failed widget connect flows dead-ended instead of redirecting to the failure page
Changes
The
fitbit_v2provider is now namedgoogle_health; the old name is no longer acceptedVery large activities now deliver to object-store destinations (S3, GCS, Azure Blob, Supabase, SQL) without a size limit
Data requests to providers that are rate-limiting are now retried automatically instead of failing
Planned Workouts and the Streaming API are now self-serve add-ons — activate them from the dashboard; see pricing
Large-payload notifications to webhook, Kafka and SQS destinations now include the
payload_referenceID
SDKs
iOS
Background-delivered activities now respect the ignored-sources filter
Android
Health Connect sync no longer errors when the app holds only a subset of Health Connect permissions
Realtime Streaming SDKs (iOS, Android, React Native, Flutter)
Device connection status now streams to Terra, powering live connection status on the dashboard
Background streaming on Android now continues with the screen locked
Automatic websocket reconnection
⚠️
ACCELERATIONnow streams gravity-compensated linear acceleration in m/s² on both platforms (previously raw g readings on iOS)terra-rt-react no longer pulls in the full health SDK — apps that also use terra-react must now declare it themselves
Stability fixes for streams stopping unexpectedly and device scans getting stuck
React Native & Flutter
HealthKit permission screen control is now exposed in React Native
Flutter's Android init methods now return real success flags
Dashboard
Models is live for everyone — explore Sleep Window and Health Terrain, see how many of your users can run each model, and try them in the playground
Synthetic Users is out — create demo users that generate and send realistic data on a schedule
Status page is out — provider health at a glance, with email and Microsoft Teams notifications
Pair your own device for streaming — scan a QR code with the new Terra Grip app (App Store and Google Play) to stream live data from a real wearable
Set up your AI agent — install the Terra agent skill and docs MCP from the dashboard header
New What's new feed in the header
Planned Workouts joined Plans & Pricing as a self-serve add-on
Filter payload history by destination, provider and data type, and search webhook history by summary ID
Landing Page
Streaming API and Planned Workouts pricing published on https://tryterra.co/pricing
New clinical privacy notice and US consents & disclosures pages for the lab-testing product
Example apps added to the navbar
Blood Biomarkers 🩸
Lab-report results now have a structured shape —
source/biomarker/measurement/interpretation— with panels modelled at report levelInterpretation flags are now coded and normalised, even when the report doesn't print one
Improved extraction quality for dense or scanned reports
Lab Reports endpoints and the
lab_reportwebhook event are now in the public OpenAPI spec
Last updated
Was this helpful?