Walk15 Connect V1
FAQ and troubleshooting
Answers to common integration questions, grounded in the current Connect V1 behaviour.
Does the user need an existing Walk15 account?
Yes. Connect never creates accounts. The Walk15 app does not need to be installed on the device the user connects from.
Can we access data from before the user connected?
No. Access starts on the authorization day (history_from); earlier dates return 400 invalid_date_range. See Forward-only access.
Can a user's permissions be changed later?
Not in place. Disconnect, then authorize again with the new scopes. See Changing scopes.
How do we reconnect a user?
Start a normal authorization request. What happens depends on the previous connection:
| Previous connection | Result |
|---|---|
| Not disconnected — active, lapsed through inactivity, or credentials revoked — and the same scopes | New tokens and connection_version; same grant_id and history_from; old tokens stop working |
| Not disconnected, different scopes | The user cannot approve until the old connection is disconnected |
| Disconnected (by you, the user or Walk15) | Fresh consent; same grant_id; new history_from |
Why is a date missing from the response?
Walk15 has no record for it — not synced, nothing recorded, or deleted. A missing date is not a zero. Also check the date is on or after history_from and not later than tomorrow in UTC.
Why did our refresh token stop working?
It was already used (for example by two servers refreshing in parallel, which revokes the whole family), it went unused past the inactivity period, or the connection was disconnected, re-authorized or lost a scope from your allowance. The user needs to authorize again. See When refresh fails.
Why did a webhook arrive twice?
Delivery is at least once: if Walk15 did not get your 2xx in time, it retries with the same id. Deduplicate by id. Separate events for the same date have different IDs; re-fetching for each is harmless.
Can we use polling without webhooks?
Yes. Webhooks are optional.
Why are we rate-limited, and can limits be raised?
All your activity requests share one budget across users, endpoints and servers. Wait Retry-After seconds and lower your concurrency. Walk15 can raise your policy on request. See Rate limits.
Why do daily cycling totals differ from the sum of activities?
Daily totals include Walk15 support adjustments; individual activities do not. See Cycling totals versus activities.
What timezone are recorded cycling times in?
None Connect can certify — they are unzoned clock values. Do not convert them or append Z. See Timestamps.
What happens if our webhook endpoint is down?
Walk15 retries for roughly 10 minutes, then keeps a dead letter it can redeliver on request; you can also re-fetch the dates yourself. Return 503, not another 4xx, for temporary problems. See Delivery semantics.
Is there a sandbox or test environment?
There is no public sandbox. Walk15 provisions credentials per environment during onboarding.
Where do we get help?
Contact Walk15 through your onboarding contact or the Walk15 contact form. Include the time, endpoint, HTTP status, error code and X-Request-ID. Never send client secrets, tokens, authorization codes, state values or users' activity data.