Oura Ring & intervals.icu integration

I just checked and the Oura API v2 does support returning tags: Oura API (2.0) Documentation

I will add some myself (I have a Gen 2) and will see what comes back from the API. Maybe they could go into the wellness comments as you suggest.

Thanks for looking into it. I’m not sure the best implementation, or if it’s even worth it for Intervals. For me I add a lot of tags, and it would be nice to see how things such as medication, headaches, etc line up with the rides (and ride feel) at a glance on the calendar. On Oura, the tags can also have comments, so if the comments are returned in the API, maybe the tags could be added to the wellness comments separated by commas and the Oura comments in parenthesis. It would be sufficient, resulting in a calendar display something like this, as an idea.
image

It would be cool to have the integration but if it doesn’t line up well with what you have already I’ll be okay without it :wink:

I was looking at the Oura API a bit with some tags that I had made in the past. Looks like it returns a response of an array of data with the following info:

{
  day: string (YYYY-MM-DD),
  text: string,
  timestamp: string (UTC),
  tags: TagName[]
}

TagName

string

If you create two separate tags then it does not add to the tags array, just creates a new object entirely. However, if you tag one time with multiple tags, this is where there will be many for the same object. The text is from the “comments” field in the app. All the tag names as of now are “tag_generic_{tag-title}”. For example, here are a few responses:

        {
            "day": "2022-09-12",
            "text": "",
            "timestamp": "2022-09-12T20:55:00-06:00",
            "tags": [
                "tag_generic_magnesium"
            ]
        },
        {
            "day": "2022-09-13",
            "text": "",
            "timestamp": "2022-09-13T06:00:00-06:00",
            "tags": [
                "tag_generic_caffeine"
            ]
        },
        {
            "day": "2022-09-13",
            "text": "A bit later in the day than usual",
            "timestamp": "2022-09-13T14:00:00-06:00",
            "tags": [
                "tag_generic_caffeine"
            ]
        }

If you create a tag, but don’t select a pregenerated tag, then it just has the text added. For example,

{
    "day": "2022-09-12",
    "text": "Ring fell off overnight so don't have any good data. Felt OK. ",
    "timestamp": "2022-09-12T05:58:03.526000-06:00",
    "tags": []
},

My guess is that if they ever allow custom tagging where you can save your tags, it would be tag_custom_{custom-tag-name} or something similar instead of the tag_generic.

Just for fun I used the Intervals Wellness endpoint and made a quick query to modify and put into the wellness comments based on the tags. Of course there would be many ways to do this

image

Each tag comma separated, and then inside quotes the “text” from the resp.

Thats neat. Tx for all the info.

I suppose the neatest solution would be to add tagged, timestamp comments to the wellness data for each day.

1 Like

One more question before I will buy mine. Is membership (costs $5.99 monthly at oura) needed for import HRV and HR rest to intervals?

As far as I am aware if you don’t pay the subs apps like Intervals.icu cannot read your data. If you can see the data (not sure about that) then you could just manually capture.

If that’s all you care about, consider buying a Gen 2 rather than Gen 3. They go for around $100 in the US and don’t require a subscription

2 Likes

This answer comes from official page of oura:

  • Without membership, you cannot access the Oura API*
1 Like

So it’s basically a quite expensive ring, with at least 6 bucks/month otherwise you won’t get any data out of it?

So owning a Withings Sleep Tracker (everything is better than the Garmin for sleep), my Fenix and a Polar H10 with just about any HRV app it’s not really that useful?

@david Is it possible to add “sync” button for Oura? Intervals didn’t get mine data since yesterday and only one thing I can do is wait :slight_smile:

1 Like

The easiest way to do this is to disconnect Oura and re-authorize. It is possible the tokens have got out of date. They should be re-newed automatically but something might have gone wrong.

1 Like

Hi - Just to confirm on this… In order to get access to the API, a developer also needs to have an ongoing membership?

@david I noted that you have an oura ring, is an oura ring/membership needed to get access to the oura API to get the data from oura users? (I recently found out Whoop API needs an ongoing membership subscription - even for developers - to get access to the API)

Just tried it with my test account:

403 - message: „Subscription not valid“

so… basically BOTH developer AND users also needs an ongoing subscription to get the data from the API.

Correct?

I don’t know about the oauth stuff, but if a user has a membership and generates a personal token that’s enough to access the api