Product Updates
June 2026 product update: Graphs, health insights in the dashboard, and a rebuilt Streaming API
June 2026: build a chart in the dashboard and embed it in your product, run health insights over a user's data, and a rebuilt Streaming API with a test mode.
TL;DR: Graphs arrived in June: you build a chart of your users' health data in the Terra dashboard, choosing the metric, the chart type and the colours, and then embed it in your product by its id. Nothing about the chart's design lives in your codebase, so changing it is a dashboard edit rather than a release. The same month brought a health insights page to the dashboard, a rebuilt Streaming API with a synthetic test mode, and the Teams API for squad-level analytics.
Graphs: build a chart in the dashboard, embed it in your product
Sleep stages need a completely different visual treatment from a step count, glucose requires an ambulatory glucose profile rather than a line, that heart rate streams from a workout with thousands of points need sensible downsampling: Usually, that every one of these decisions has to be re-made for every metric you add.
Graphs moves that work into the dashboard: You go to Graphs, pick a metric by searching for it, choose whether to plot it over time or zoom into the most recent session, style it, and get back an id. Your app renders that graph for whichever user is looking at it. There are also specialty charts for the layouts that are genuinely hard, including sleep stages, macronutrient breakdowns and ambulatory glucose profiles.
The property that makes this more than a convenience is that the design does not live in your code. Change the metric, the chart type or the colours in the dashboard and every embed updates, with no deploy and no app store review. For a mobile product that is the difference between iterating on a chart in an afternoon and iterating on it in a fortnight.
The build and embed walkthrough is in the Graphs documentation.
Health insights, now available from the dashboard
June added a health insights page to the dashboard. You choose an insight and a connected user, run it, and see what comes back, so you can get a feel for the output before building anything against it.
An insight sits a little differently from a score. A score is computed as data arrives and travels with the payload it belongs to. An insight is something you ask for over a window of a user's history, and what returns is an interpretation rather than a number, such as a suggested sleep schedule. As with the scores, each one is a wellness indicator rather than a medical or diagnostic tool, and that distinction is worth carrying into your own product copy. The full set is listed in the Terra documentation.
Streaming API got an upgrade
The Streaming API is the real-time half of Terra. Rather than receiving a summary after a workout finishes, you receive heart rate, cadence, power and distance live from a Bluetooth or ANT+ sensor while the session is happening, over a websocket. It is what you need for live class feedback, remote monitoring, or anything where a number on a screen has to move.
This June, we rebuilt it on Terra's current platform, which brought proper observability, multi-consumer support so more than one system can read the same stream, a status and presence view in the dashboard so you can see which sessions are live, and ephemeral synthetic test users. That last one is the practical highlight: you can develop and test a streaming feature with generated sensor data, without owning the hardware.
The protocol and the SDK guides for iOS, Android, React Native, Flutter and Wear OS are in the Streaming API documentation.
Terra tells you when your endpoint stops answering
Delivery already survives the ordinary case. If your endpoint returns an error, Terra retries it. What June added is the part that comes after the retries: if a destination keeps refusing, Terra now tells you, by name.
You get an email identifying the destination, showing the errors it is returning, and Terra stands that destination down if the condition persists, so your endpoint is not held under load while you are mid-deploy. A configuration change that breaks an endpoint on a Friday afternoon becomes something you hear about on Friday afternoon, from us, rather than something you go looking for on Monday.
The Teams API, for squad and group analytics
The Teams API covers the case where the unit of analysis is a group rather than a person: a squad across a season, a cohort in a study, a corporate wellness population. It was rebuilt as a standalone service in June and is documented at the Teams API getting started guide.
Also in June
- Runkeeper joined the source catalogue.
- Per-user OAuth apps became switchable per provider rather than account-wide, so you can enable it for one integration without changing the others.
- Garmin: menstrual cycle logging is now received by webhook.
- Apple Health: laps are now derived from the underlying workout event stream, so an interval session recorded on an Apple Watch arrives with its intervals intact.
- The Integration Partners section was published, for health platforms who want their own API available to everyone building on Terra. It is at integration partners.
- Source support questions in the dashboard now search the live documentation, so the answer is always the current one.