For the complete documentation index, see llms.txt. This page is also available as Markdown.

June Update 2026

Check out what we've been doing at Terra over the month of June 2026!

Backend 💾

Features

  • New integration: Runkeeper is out!

  • New payload resend endpoint — re-deliver any previously sent webhook payload by its event ID

  • Destinations set to FIT format now receive the provider's original FIT file (Garmin, Wahoo, Polar, Suunto, Zwift, Rouvy, Hammerhead)

  • Garmin menstruation (cycle tracking) data is now supported

  • Withings ECG recordings are now delivered in real time

  • New activity types: E-Biking, E-Mountain-Biking, Multisport and Physical Therapy, plus Strava's new sport types (Basketball, Cricket, Dance, Padel, Volleyball)

  • Added visceral fat level for InBody

  • Apple Watch laps now follow the user's real segment markers, with per-lap distance, calories, heart rate, power and speed

  • AI Health Context queries now accept a start_date / end_date window

  • Test data generation is now available to every developer

  • Late-logged meals are now picked up for MyFitnessPal, Cronometer and MacrosFirst

Bugs

  • Fixed a bug where Garmin activities went missing when Garmin did not send activity details

  • Fixed a bug where user edits to Garmin activities were not reflected in the delivered activity

  • Fixed a bug where Garmin sleep resting heart rate was attributed to the wrong day

  • Fixed a bug where historical data requests were skipped for Apple Health and Health Connect

  • Fixed a bug where Oura daytime heart rate was truncated on active days

  • Fixed a bug where Fitbit data was not delivered when the same user was connected through more than one app

  • Fixed a bug where Polar daily webhooks arriving before Polar's data was ready delivered nothing (now retried)

  • Fixed a bug where Wahoo planned-workout completions did not deliver in real time

  • Fixed a bug where Health Connect glucose timestamps were missing the timezone offset

  • Fixed a bug where auth_failure_redirect_url was ignored for username/password providers

  • Fixed a bug where same-day date ranges on data requests returned nothing

  • Fixed issues with the Supabase, Firestore and Azure Blob destinations

Changes

  • Destinations that fail continuously now receive warning emails at 8h and 16h, and are disabled after 24h — this applies to all destination types

  • Requesting data with to_webhook=true when no destination is configured now returns a 400

  • Peloton and Technogym integrations are deprecated; FreeStyle Libre has been removed

  • The Streaming API is now fully documented, including the WebSocket protocol


SDKs

iOS

  • Apple Watch laps are now built from the user's real segment markers (see above)

  • Planned-workout sync is now enabled by default for new installs

Android

  • Reworked Health Connect background delivery, and fixed Health Connect initialisation never completing for existing users

  • Fixed a crash on failed requests with an empty error response

React Native & Flutter

  • Updated to the latest iOS and Android SDKs


Dashboard

  • Score Sandbox now covers every score — tweak the inputs and watch each score change live

  • Realtime Streaming page is out — watch live device data from your users, or try it with an in-browser test user

  • Graph editor redesigned — live previews, overlay multiple metrics, and pre-built specialty graphs (sleep stages, AGP, macro breakdown). Embedded graphs have a fresh new look too

  • Rotate your API key from the credentials modal

  • Run a provider on your own OAuth app per end-user, where supported

  • Support hub is now the default support experience, with AI-assisted answers grounded in our docs


Landing Page

  • New Lab Testing product page: https://tryterra.co/products/lab-testing

  • Navigation redesigned, careers page rebuilt, and podcast episodes now have their own pages

  • New integration pages for Trailforks and Runkeeper


Blood Biomarkers 🩸

  • The lab_report webhook event is now stable, with a new lab_report.failed event for processing failures

  • Lab reports now deliver to every destination type

  • Uploads return an upload_id that links every report and webhook from that upload

Last updated

Was this helpful?