Launch HN: Terra (YC W21) – API to easily connect wearables to apps
tryterra.co
tryterra.co
If you have a health app, there are so many wearables and sensors to connect to. Worse, every company has different tech (web-sockets, HTTP etc) and different data formats, even for the same kinds of data. Creating so many integrations with APIs, SDKs etc is resource draining, then you have to normalise data, and of course constantly do updates. And the documentation in this space is really bad.
I got hooked on wearables 10 years ago while serving in the Special Forces, when I needed to perform at my best, under the worst conditions. I wanted to use the old Polar HRM (heart rate monitor) to improve my performance. The data I was getting was so insightful, I started buying every wearable that came out over the coming years: Garmin, Polar, Suunto, Apple - you name it. I then became a fitness geek, and started learning more about nutrition, physiology etc. While discussing one day with my soon-to-be cofounder, who was also a gold medalist swimmer, we were asking ourselves - why can we not connect our data with an app like Spotify? Couldn’t song recommendations be better if they used your heart rate? Or Netflix movie recommendations, and so on? That's how it started.
We built an API, and a widget. Once you start speaking to our API, you can enable your users to connect Garmin, Fitbit, Oura, Peloton, Zwift, Withings, Training Peaks, Suunto, Apple, Polar and Wahoo to you. Then, you receive normalised data in your callback url whenever it is available. If you prefer, you can install our widget in your front end (https://docs.tryterra.co/widget), and it enables users to connect their wearables, without you building any additional layers.
Regarding the backend: We establish a PUSH connection with you, and whenever the data is generated, we send it to the callback url. It can be sleep data, activity data, body composition, and others (you can check the docs https://docs.tryterra.co). On your end, all you see is websockets. On our end, we deal with the providers' standards.Our customers built apps that improve your sleep, VR apps that offer gym experiences, even apps that generate music based on your heart rate. There are health dashboards that show your health data from different providers, apps that pay you to train, apps that use wearable data to improve training recovery, and apps that help corporations provide offerings for employees to work out.
We charge based on API usage, and we never store any of the health information that passes through. We’re both HIPAA and GDPR compliant. If you want to try it out, you can sign up here https://tryterra.co, receive keys, and access both the widget and the API.
Thanks a lot for reading this! Would love to hear your ideas on what you’d like to see from the API, and some interesting app ideas that can be built by using Terra !
Having spent nearly a decade trying to extract data from the various walled gardens in the fitness space, I think something like this has really only been possible in the last few years as some of those walls have come down just a bit. That said, there are still some enormous hurdles to overcome. From the documentation it's not clear how OAuth is implemented. The authentication standards for many of these platforms are very diverse and often unfriendly in terms of the API agreements, rate limits, and various OAuth standards.
I'm assuming since it would be a violation of most API terms to pass data to a 3rd party, that the consumer of Terra must first acquire their own API key and then Terra uses that on their behalf? Although, if that's the case, OAuth implementations must be very tricky, especially for APIs like Garmin's which uses OAuth1a.
Nevertheless this can only be good news for the cause of open data. If it's successful, hopefully it'll create some pressure for these companies to expand their capabilities and relax their terms of service.
a) there is no standard in data structure, and hence every wearable company uses their own.
b) The documentation quality is really lacking.
c) most of those companies are updating very often, with little communication. hence if you are a developer in this space, you really struggle.
d) more and more wearables are coming to the market
Hence we solve the above with robust docs, a standard data model, and a widget, to make it super easy. We of course are constantly learning, and improve the fastest way possible
- how's Terra's proposition different from Human API? (they started exactly the same as you do)
- are you compliant with any regulations related to storing/processing health records (i.e. HIPAA, etc.)? Asking as couldn't find anything mentioned about it on the website.
-----
I've tried to get into this stuff, but I've found it completely useless for making any sort of impact on my day-to-day. I could see it being useful for athletes looking to hit their peak, but as a dude that just wants to bike and ski for fun, I get all of the information I need by just asking: "How am I feeling and what contributed to this".
The metrics are all just noise. That basically come down to:
* Have I been eating well?
* What have I consumed that's "terrible" for me (drinking, unhealthy food, etc)?
* Have I exercised recently?
I'm not a web health app developer, I'm a wearable developer: I name "Open Smartwatch GPS" [1] (currently in development).
There's not a lot of data yet, but how could I (or, more importantly, future users of Open Smartwatch, or future users of phone and apps that would want to serve health and movement data) connect to your service? Can an end user upload/push raw data as JSON, CSV, or as MQTT messages, and access it from an arbitrary health app that uses your service?
> On our end, we deal with the providers' standards.
Ha! Wearable hardware "standards". Good joke! Do you integrate with GPSBabel [2] on the backend? But a commendable effort; there's a lot of wonky hardware out there, so thanks for unifying the multitude of providers.
Also, how does your service compare to Tapirik?
[1]: https://open-smartwatch.github.io/
We don't currently support end user's pushing raw data to us, what use case are you thinking, out of interest ?
Maps and workout journals are all I'm personally looking for, and I get those by emailing TCX files to <username>@smashrunimport.com.
Getting reliable GPS antenna performance is my current focus, though.
I'm honestly not sure what your customers' customers are using it for.
I stopped paying the monthly fee for whoop (which also big gripe just let me buy the device) because I didn't think their app did a good responding/recording data (nor super accurate, especially in reaction time for HR). Though maybe it's just the watch's underlying data.
Either way getting data out of whoop would be awesome.
We will speak to their team for a partnership
At a very high level, how do I get data from a device to you? Does that require eg. an iOS app specific to my service?
What's your business model? Couldn't find on your website.
EDIT: now I see that you charge per requests. Consider building "pricing" subpage.
What does the onboarding time look like? And also curious if Terra works with Webhooks or http?
Technically the onboarding takes 5 minutes - since we work with webhooks, and we just need a callback url from you ! You receive a PUSH whenever an activity is generated.
Why do you have this in your privacy policy?
> We may share Your personal information in the following situations:
> With Service Providers: We may share Your personal information with Service Providers to monitor and analyze the use of our Service, to contact You.
> For business transfers: We may share or transfer Your personal information in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of Our business to another company.
> With Affiliates: We may share Your information with Our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other subsidiaries, joint venture partners or other companies that We control or that are under common control with Us.
> With business partners: We may share Your information with Our business partners to offer You certain products, services or promotions.
> With other users: when You share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside.
Edit: Apologies if this comes across as a bit blunt. Your project looks really interesting and clearly has huge potential. Its just that personal data and how it gets used is increasingly important.
On one side, you have wearables, and on the other you have apps.
We are the API that enables the user to connect their wearable data to the apps.
Meaning that when the user gives their consent, the API facilitates the connection with the app. At the same time, we never see the data, and we don't store them.
With the user's consent, they give access to the app, and hence the app as long as they agree with the wearable supplier regulations and terms of use, they get access to the information. Each of the wearable supplier (eg Garmin, Fitbit etc) have their own rules, and all the apps need to comply with them!
We didn't know him before this so I can only conclude it was a genuinely kind act from someone looking to give back to the community.
All the best and good luck with Terra!