Hi,
I'm building an application using the Strava Webhook Events API and I'm running into an environment isolation issue.
The problem: Strava only allows one active webhook subscription per Client ID. This makes it impossible to run separate webhook callbacks for different environments (production, staging, development) simultaneously — registering a new subscription either fails with a 409 or overwrites the previous one.
Our setup:
- One Strava API application (single Client ID / Client Secret)
- Three environments: production, staging, local dev
- Each environment needs to receive webhook events independently
What we've tried:
- Using different callback URLs per environment → only one can be active at a time
- Registering/deleting subscriptions on deploy → creates race conditions and breaks other environments
What we'd like to know:
- Is there an official recommended pattern for handling multiple environments with the Strava webhook API?
- Is there a way to get multiple Client IDs for the same application (e.g. one per environment)?
- Is a "fan-out" proxy approach (one endpoint that dispatches to multiple environments) the intended workaround?
Any guidance from the team or community would be appreciated. Thanks!
