Is a privacy policy mandatory when creating/requesting a new app? I just started developing and dont have one yet. Ofc i could just generate a dummy privacy policy i that is sufficent.
No you don’t have to start with one. Your app will start only visible to yourself. When you want all users to be able to see it then you need to have a privacy policy in place.
Hi David,
Sorry for being impatient. I sent you an email 11 days ago about the app integration, did you already see it?
No I didn’t see anything. Please resend to [email protected] and I will sort it out right away.
done.
Hi David!
Can I ask a question re Scopes? If I want to read athlete data (get /api/v1/athlete/{id}) and gear data (get /api/v1/athlete/{id}/gear{ext}), what scope do I need?
I tried “ATHLETE:READ,GEAR:READ”, but neither exists.
Cheers,
Jan
These are the scopes: ACTIVITY, WELLNESS, CALENDAR, LIBRARY, SETTINGS
You need SETTINGS:READ for those.
Thanks, that helps!
I can read the athlete, but I get a 405 if I try reading gear.
Wait… that seems to be my app, because on the documentation site it works, with the same access-token.
I’ll try providing the athlete_id…
There isn’t an endpoint to get an individual bit of gear. You need to use the one that lists all gear for the athlete:
GET /api/v1/athlete/{id}/gear{ext}
You can pass 0 for the athlete id.
Ah!
And the documentation says that, too, urgh.
Thanks for your patience, David!
OAuth apps can now subscribe to webhooks for chat messages and so on. Note that groups are also chats so this support includes group messages.
Sample new message payload:
{
"secret": "...",
"events": [
{
"athlete_id": "2049151",
"type": "CHAT_UPDATE",
"timestamp": "2025-09-30T07:18:59.147+00:00",
"payload": {
"type": "MESSAGES",
"chat_id": 2741,
"new_message_count": 1,
"messages": [
{
"id": 2961313,
"athlete_id": "xxx",
"name": "xxx",
"created": "2025-09-30T07:18:59.063+00:00",
"type": "TEXT",
"content": "bar"
}
]
}
}
]
}
Sample new chat payload (another athlete has initiated a chat):
{
"secret": "...",
"events": [
{
"athlete_id": "2049151",
"type": "CHAT_UPDATE",
"timestamp": "2025-09-30T07:22:59.005+00:00",
"payload": {
"type": "CHATS",
"chats": [
{
"id": 1036589,
"type": "PRIVATE",
"updated": "2025-09-30T07:22:58.986+00:00",
"name": "John xxx",
"picture": "https://...",
"pub": false,
"hide_members": false,
"members_cannot_chat": false,
"other_athlete_id": "xxx",
"other_athlete_sex": "M",
"role": "ADMIN",
"new_message_count": 1,
"last_seen_message_id": 0
}
]
}
}
]
}
Combine this with the chat endpoints to build Intervals.icu chat into your applications.
Hi David - i’m building an OAuth integration for iOS and I continue to hit this error when trying to authenticate. I can confirm my details are correct when trying so, and i’m pretty stumped as to what is causing this. What is the ‘network error’ error raised for?
I don’t know what that is. Can you login from a normal Safari window?
Yes, I can and it works fine. I was wondering if this is a known issue for some reason on iOS.
Not that I am aware of. There are several IOS apps that connect with Intervals.icu. Maybe some settings in the web view are blocking network calls? The login is just a JSON POST to an Intervals.icu endpoint.
Ok thanks. I’ll investigate further and if i fix it i’ll post it back - just in case anyone else experiences it.
Looks like this is an cert issue as i’m on a corporate machine and network which intercepts SSL and was blocking it causing this error. Not sure there is a workaround to be had using this machine. I can verify once I get on a different machine/network
2 posts were merged into an existing topic: API access to Intervals.icu
Hi. Maybe I have missed it, but what does the OAuth API use per-access-token rate limits? and if yes this are the limits: From a post of August 2025 I found:
“The rate limits are currently 30/s for 1s and also 132/10s. So if you go with 10/s you shouldn’t have any issues. Tx.”
The rate limits are currently per IP address and approx 10/s with some bursting. If you use 9/s you should be fine.

