API access to Intervals.icu

I have tried a few different set ups and received this error.

:x: Error 404 while accessing /athlete-profile
Response: {“timestamp”:“2025-05-26T14:42:42.070+00:00”,“status”:404,“error”:“Not Found”,“path”:“/api/v1/athlete-profile”}
:no_entry_sign: Could not retrieve athlete profile.

Ran another script and received this error.

:x: Error 403 while accessing /athlete/i87631
Response: {“status”:403,“error”:“Access denied”}
:no_entry_sign: Could not retrieve athlete profile.

You almost certainly made the ‘usual’ error…
To acces the API, the username is the literal string ‘API_KEY’ (AND THUS NOT your api or athlete id) and the password is your personal Api-key.
If not, post some examples of your curl commands.
Should look like
curl.exe -u API_KEY:8765abcd3432s2u3h3tyhmnof https://intervals.icu/api/v1/athlete/i6789/wellness.csv?

The user name is ’API_KEY’ with basic auth.

Still getting the 404 error.

curl -u API_KEY:xxx https://intervals.icu/api/v1/athlete/i87631/fitness

this one doesn’t exist - have a look for available Endpoints here: Swagger UI - you can also Try them out directly …

Yes, received the 403 access denied.

are you sure your API Key and Athlete ID match?

Yes, coping them.

You already tried with the Swagger Tool?

https://intervals.icu/api/v1/docs/swagger-ui/index.html


and then try one of the Endpoints


I don’t think that endpoint exists. If you are looking for “fitness over time” call this endpoint.

I am trying to get my training plan using the Swagger Tool and I am receiving a 403 too. The cURL is the following one:

curl -X 'GET' \
  'https://intervals.icu/api/v1/athlete/i349268/training-plan' \
  -H 'accept: */*' \
  -H 'Authorization: Basic {Base64 encrypted API_KEY:myApiKey}'

And the response that I am obtaining is:

{
  "status": 403,
  "error": "Access denied"
}

PS: I have also done the Authorize step before trying this endpoint.

Works fine for me with the Swagger tool as per the instructions @Andreas_Schnederle-W posted above.

PS: I don’t have a plan and the response indicates ‘null’ without errors.

I have to grant any developer permissions in Intervals ICU to be able to access the API or I just only have to get the API Key from the settings page?

For own usage, this is fine and recommended.